From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 06/49] x86emul: support AVX512{F, BW, DQ} integer broadcast insns Date: Wed, 19 Dec 2018 07:38:20 -0700 Message-ID: <5C1A57DC02000078002078AD@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gZczU-0002CG-Up for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:38:28 +0000 In-Reply-To: <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Tm90ZSB0aGF0IHRoZSBwYnJvYWRjYXN0dyB0YWJsZSBlbnRyeSBpbiBldmV4LWRpc3A4LmMgaXMg c2xpZ2h0bHkKZGlmZmVyZW50IGZyb20gd2hhdCBvbmUgd291bGQgZXhwZWN0LCBkdWUgdG8gaXQg cmVxdWlyaW5nIEVWRVguVyB0byBiZQp6ZXJvLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgotLS0Kdjc6IFVzZSBkdW1teSBvdXRwdXQgaW4gaW52b2tlX3N0 dWIoKS4gUmUtYmFzZS4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9l dmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwpA QCAtMTY0LDYgKzE2NCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtd ID0KICAgICBJTlNOKHBhZGRxLCAgICAgICAgNjYsICAgMGYsIGQ0LCAgICB2bCwgICAgICBxLCB2 bCksCiAgICAgSU5TTihwYW5kLCAgICAgICAgIDY2LCAgIDBmLCBkYiwgICAgdmwsICAgICBkcSwg dmwpLAogICAgIElOU04ocGFuZG4sICAgICAgICA2NiwgICAwZiwgZGYsICAgIHZsLCAgICAgZHEs IHZsKSwKKy8vICAgICAgIHBicm9hZGNhc3QsICAgNjYsIDBmMzgsIDdjLCAgICAgICAgICBkcTY0 CisgICAgSU5TTihwYnJvYWRjYXN0ZCwgIDY2LCAwZjM4LCA1OCwgICAgZWwsICAgICAgZCwgZWwp LAorICAgIElOU04ocGJyb2FkY2FzdHEsICA2NiwgMGYzOCwgNTksICAgIGVsLCAgICAgIHEsIGVs KSwKICAgICBJTlNOKHBjbXAsICAgICAgICAgNjYsIDBmM2EsIDFmLCAgICB2bCwgICAgIGRxLCB2 bCksCiAgICAgSU5TTihwY21wZXFkLCAgICAgIDY2LCAgIDBmLCA3NiwgICAgdmwsICAgICAgZCwg dmwpLAogICAgIElOU04ocGNtcGVxcSwgICAgICA2NiwgMGYzOCwgMjksICAgIHZsLCAgICAgIHEs IHZsKSwKQEAgLTIyMiw2ICsyMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEy Zl8xMjhbXSA9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX25vMTI4W10gPSB7 CiAgICAgSU5TTihicm9hZGNhc3RmMzJ4NCwgNjYsIDBmMzgsIDFhLCBlbF80LCAgZCwgdmwpLAor ICAgIElOU04oYnJvYWRjYXN0aTMyeDQsIDY2LCAwZjM4LCA1YSwgZWxfNCwgIGQsIHZsKSwKICAg ICBJTlNOKGJyb2FkY2FzdHNkLCAgICA2NiwgMGYzOCwgMTksIGVsLCAgICBxLCBlbCksCiAgICAg SU5TTihleHRyYWN0ZjMyeDQsICAgNjYsIDBmM2EsIDE5LCBlbF80LCAgZCwgdmwpLAogICAgIElO U04oZXh0cmFjdGkzMng0LCAgIDY2LCAwZjNhLCAzOSwgZWxfNCwgIGQsIHZsKSwKQEAgLTIzMSw2 ICsyMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdCiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmXzUxMltdID0gewogICAgIElOU04oYnJvYWRj YXN0ZjY0eDQsIDY2LCAwZjM4LCAxYiwgZWxfNCwgcSwgdmwpLAorICAgIElOU04oYnJvYWRjYXN0 aTY0eDQsIDY2LCAwZjM4LCA1YiwgZWxfNCwgcSwgdmwpLAogICAgIElOU04oZXh0cmFjdGY2NHg0 LCAgIDY2LCAwZjNhLCAxYiwgZWxfNCwgcSwgdmwpLAogICAgIElOU04oZXh0cmFjdGk2NHg0LCAg IDY2LCAwZjNhLCAzYiwgZWxfNCwgcSwgdmwpLAogICAgIElOU04oaW5zZXJ0ZjY0eDQsICAgIDY2 LCAwZjNhLCAxYSwgZWxfNCwgcSwgdmwpLApAQCAtMjUwLDYgKzI1NSwxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfYWxsW10KICAgICBJTlNOKHBhZGR3LCAgICAgICA2Niwg ICAwZiwgZmQsICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwYXZnYiwgICAgICAgNjYsICAg MGYsIGUwLCAgICB2bCwgICAgYiwgdmwpLAogICAgIElOU04ocGF2Z3csICAgICAgIDY2LCAgIDBm LCBlMywgICAgdmwsICAgIHcsIHZsKSwKKyAgICBJTlNOKHBicm9hZGNhc3RiLCA2NiwgMGYzOCwg NzgsICAgIGVsLCAgICBiLCBlbCksCisvLyAgICAgICBwYnJvYWRjYXN0YiwgNjYsIDBmMzgsIDdh LCAgICAgICAgICAgYgorICAgIElOU04ocGJyb2FkY2FzdHcsIDY2LCAwZjM4LCA3OSwgICAgZWxf MiwgIGIsIHZsKSwKKy8vICAgICAgIHBicm9hZGNhc3R3LCA2NiwgMGYzOCwgN2IsICAgICAgICAg ICBiCiAgICAgSU5TTihwY21wLCAgICAgICAgNjYsIDBmM2EsIDNmLCAgICB2bCwgICBidywgdmwp LAogICAgIElOU04ocGNtcGVxYiwgICAgIDY2LCAgIDBmLCA3NCwgICAgdmwsICAgIGIsIHZsKSwK ICAgICBJTlNOKHBjbXBlcXcsICAgICA2NiwgICAwZiwgNzUsICAgIHZsLCAgICB3LCB2bCksCkBA IC0zMDEsNiArMzEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3XzEyOFtd CiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfYWxsW10gPSB7CiAgICAgSU5TTl9Q RlAoYW5kLCAgICAgICAgICAgICAgMGYsIDU0KSwKICAgICBJTlNOX1BGUChhbmRuLCAgICAgICAg ICAgICAwZiwgNTUpLAorICAgIElOU04oYnJvYWRjYXN0aTMyeDIsIDY2LCAwZjM4LCA1OSwgZWxf MiwgIGQsIHZsKSwKICAgICBJTlNOX1BGUChvciwgICAgICAgICAgICAgICAwZiwgNTYpLAogICAg IElOU04ocG11bGxxLCAgICAgICAgIDY2LCAwZjM4LCA0MCwgICB2bCwgIHEsIHZsKSwKICAgICBJ TlNOX1BGUCh4b3IsICAgICAgICAgICAgICAwZiwgNTcpLApAQCAtMzE0LDYgKzMyNCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV8xMjhbXQogc3RhdGljIGNvbnN0IHN0cnVj dCB0ZXN0IGF2eDUxMmRxX25vMTI4W10gPSB7CiAgICAgSU5TTihicm9hZGNhc3RmMzJ4MiwgNjYs IDBmMzgsIDE5LCBlbF8yLCBkLCB2bCksCiAgICAgSU5TTihicm9hZGNhc3RmNjR4MiwgNjYsIDBm MzgsIDFhLCBlbF8yLCBxLCB2bCksCisgICAgSU5TTihicm9hZGNhc3RpNjR4MiwgNjYsIDBmMzgs IDVhLCBlbF8yLCBxLCB2bCksCiAgICAgSU5TTihleHRyYWN0ZjY0eDIsICAgNjYsIDBmM2EsIDE5 LCBlbF8yLCBxLCB2bCksCiAgICAgSU5TTihleHRyYWN0aTY0eDIsICAgNjYsIDBmM2EsIDM5LCBl bF8yLCBxLCB2bCksCiAgICAgSU5TTihpbnNlcnRmNjR4MiwgICAgNjYsIDBmM2EsIDE4LCBlbF8y LCBxLCB2bCksCkBAIC0zMjIsNiArMzMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmRxX25vMTI4WwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfNTEyW10g PSB7CiAgICAgSU5TTihicm9hZGNhc3RmMzJ4OCwgNjYsIDBmMzgsIDFiLCBlbF84LCBkLCB2bCks CisgICAgSU5TTihicm9hZGNhc3RpMzJ4OCwgNjYsIDBmMzgsIDViLCBlbF84LCBkLCB2bCksCiAg ICAgSU5TTihleHRyYWN0ZjMyeDgsICAgNjYsIDBmM2EsIDFiLCBlbF84LCBkLCB2bCksCiAgICAg SU5TTihleHRyYWN0aTMyeDgsICAgNjYsIDBmM2EsIDNiLCBlbF84LCBkLCB2bCksCiAgICAgSU5T TihpbnNlcnRmMzJ4OCwgICAgNjYsIDBmM2EsIDFhLCBlbF84LCBkLCB2bCksCi0tLSBhL3Rvb2xz L3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3NpbWQuYwpAQCAtMjc4LDkgKzI3OCwzMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2wo Ynl0ZV92ZWNfdCBiCiAjaWYgKElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpFID09IDQgfHwgSU5U X1NJWkUgPT0gOCB8fCBVSU5UX1NJWkUgPT0gOCkgJiYgXAogICAgICBkZWZpbmVkKF9fQVZYNTEy Rl9fKSAmJiAoVkVDX1NJWkUgPT0gNjQgfHwgZGVmaW5lZChfX0FWWDUxMlZMX18pKQogIyBpZiBJ TlRfU0laRSA9PSA0IHx8IFVJTlRfU0laRSA9PSA0CisjICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7 IFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICIle2V2ZXglfSB2cGJyb2FkY2FzdGQgJTEs ICUwIiBcCisgICAgICAgICAgOiAiPXYiICh0XykgOiAibSIgKCooaW50WzFdKXsgeCB9KSApOyBc CisgICAgdF87IFwKK30pCisjICBkZWZpbmUgYnJvYWRjYXN0Mih4KSAoeyBcCisgICAgdmVjX3Qg dF87IFwKKyAgICBhc20gKCAidnBicm9hZGNhc3RkICVrMSwgJTAiIDogIj12IiAodF8pIDogInIi ICh4KSApOyBcCisgICAgdF87IFwKK30pCiAjICBkZWZpbmUgbWl4KHgsIHkpICgodmVjX3QpQiht b3ZkcWEzMl8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAxMDEwMTAxICYgKCgxIDw8IEVMRU1fQ09VTlQp IC0gMSkpKSkKICMgZWxpZiBJTlRfU0laRSA9PSA4IHx8IFVJTlRfU0laRSA9PSA4CisjICBkZWZp bmUgYnJvYWRjYXN0KHgpICh7IFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICIle2V2ZXgl fSB2cGJyb2FkY2FzdHEgJTEsICUwIiBcCisgICAgICAgICAgOiAiPXYiICh0XykgOiAibSIgKCoo bG9uZyBsb25nWzFdKXsgeCB9KSApOyBcCisgICAgdF87IFwKK30pCisjICBpZmRlZiBfX3g4Nl82 NF9fCisjICAgZGVmaW5lIGJyb2FkY2FzdDIoeCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAg YXNtICggInZwYnJvYWRjYXN0cSAlMSwgJTAiIDogIj12IiAodF8pIDogInIiICgoeCkgKyAwVUxM KSApOyBcCisgICAgdF87IFwKK30pCisjICBlbmRpZgogIyAgZGVmaW5lIG1peCh4LCB5KSAoKHZl Y190KUIobW92ZHFhNjRfLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgMGIwMTAxMDEw MSkpCiAjIGVuZGlmCiAjIGlmIElOVF9TSVpFID09IDQKQEAgLTk3NywxMCArMTAwMSwxNCBAQCBp bnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgaWYgKCAhZXEoc3dhcDIoc3JjKSwgaW52KSApIHJldHVy biBfX0xJTkVfXzsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChicm9hZGNhc3QpCisjaWZkZWYgYnJv YWRjYXN0CiAgICAgaWYgKCAhZXEoYnJvYWRjYXN0KEVMRU1fQ09VTlQgKyAxKSwgc3JjICsgaW52 KSApIHJldHVybiBfX0xJTkVfXzsKICNlbmRpZgogCisjaWZkZWYgYnJvYWRjYXN0MgorICAgIGlm ICggIWVxKGJyb2FkY2FzdDIoRUxFTV9DT1VOVCArIDEpLCBzcmMgKyBpbnYpICkgcmV0dXJuIF9f TElORV9fOworI2VuZGlmCisKICNpZiBkZWZpbmVkKGludGVybGVhdmVfbG8pICYmIGRlZmluZWQo aW50ZXJsZWF2ZV9oaSkKICAgICB0b3VjaChzcmMpOwogICAgIHggPSBpbnRlcmxlYXZlX2xvKGlu diwgc3JjKTsKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysr IGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTQ1NCw5ICs0NTQs MTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjM4X3RhYmxlIHsKICAgICBbMHg0MF0gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg0 MV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCiAgICAg WzB4NDUgLi4uIDB4NDddID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0g ZDhzX3ZsIH0sCi0gICAgWzB4NTggLi4uIDB4NTldID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhl ciwgLnR3b19vcCA9IDEgfSwKLSAgICBbMHg1YV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwg LnR3b19vcCA9IDEgfSwKLSAgICBbMHg3OCAuLi4gMHg3OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1k X290aGVyLCAudHdvX29wID0gMSB9LAorICAgIFsweDU4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf b3RoZXIsIC50d29fb3AgPSAxLCAuZDhzID0gMiB9LAorICAgIFsweDU5XSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfb3RoZXIsIC50d29fb3AgPSAxLCAuZDhzID0gMyB9LAorICAgIFsweDVhXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKKyAgICBbMHg1 Yl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzI1NiwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxf YnlfMiB9LAorICAgIFsweDc4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3Ag PSAxIH0sCisgICAgWzB4NzldID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9 IDEsIC5kOHMgPSAxIH0sCisgICAgWzB4N2EgLi4uIDB4N2NdID0geyAuc2ltZF9zaXplID0gc2lt ZF9ub25lLCAudHdvX29wID0gMSB9LAogICAgIFsweDhjXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCB9LAogICAgIFsweDhlXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2lu dCwgLnRvX21lbSA9IDEgfSwKICAgICBbMHg5MCAuLi4gMHg5M10gPSB7IC5zaW1kX3NpemUgPSBz aW1kX290aGVyLCAudnNpYiA9IDEgfSwKQEAgLTI2MzYsNiArMjY0MCwxMSBAQCB4ODZfZGVjb2Rl XzBmMzgoCiAgICAgICAgIGN0eHQtPm9wY29kZSB8PSBNQVNLX0lOU1IodmV4LnBmeCwgWDg2RU1V TF9PUENfUEZYX01BU0spOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigwLCAweDdhKTogLyogdnBicm9hZGNhc3RiICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDAsIDB4N2IpOiAvKiB2cGJyb2FkY2FzdHcgKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfNjYoMCwgMHg3Yyk6IC8qIHZwYnJvYWRjYXN0e2QscX0gKi8KKyAgICAgICAgYnJl YWs7CisKICAgICBjYXNlIDB4ZjA6IC8qIG1vdmJlIC8gY3JjMzIgKi8KICAgICAgICAgc3RhdGUt PmRlc2MgfD0gcmVwbmVfcHJlZml4KCkgPyBCeXRlT3AgOiBNb3Y7CiAgICAgICAgIGlmICggcmVw X3ByZWZpeCgpICkKQEAgLTgyMjEsNiArODIzMCw4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBn b3RvIGF2eDUxMmZfbm9fc2FlOwogCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYz OCwgMHgxOCk6IC8qIHZicm9hZGNhc3RzcyB4bW0vbTMyLFt4eXpdbW17a30gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDU4KTogLyogdnBicm9hZGNhc3RkIHhtbS9t MzIsW3h5el1tbXtrfSAqLworICAgICAgICBvcF9ieXRlcyA9IGVsZW1fYnl0ZXM7CiAgICAgICAg IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LncgfHwgZXZleC5icnMsIEVYQ19VRCk7CiAgICAg YXZ4NTEyX2Jyb2FkY2FzdDoKICAgICAgICAgLyoKQEAgLTgyNDAsMTcgKzgyNTEsMjcgQEAgeDg2 X2VtdWxhdGUoCiAKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDFiKTog LyogdmJyb2FkY2FzdGYzMng4IG0yNTYsem1te2t9ICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIHZicm9hZGNhc3RmNjR4NCBtMjU2LHptbXtrfSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NWIpOiAvKiB2YnJvYWRjYXN0 aTMyeDggbTI1Nix6bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogdmJyb2FkY2FzdGk2NHg0IG0yNTYsem1te2t9ICovCiAgICAgICAgIGdlbmVy YXRlX2V4Y2VwdGlvbl9pZihlYS50eXBlICE9IE9QX01FTSB8fCBldmV4LmxyICE9IDIsIEVYQ19V RCk7CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZF WF82NigweDBmMzgsIDB4MTkpOiAvKiB2YnJvYWRjYXN0c2QgeG1tL202NCx7eSx6fW1te2t9ICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZicm9hZGNh c3RmMzJ4MiB4bW0vbTY0LHt5LHp9bW17a30gKi8KLSAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9u X2lmKCFldmV4LmxyIHx8IGV2ZXguYnJzLCBFWENfVUQpOworICAgICAgICBnZW5lcmF0ZV9leGNl cHRpb25faWYoIWV2ZXgubHIsIEVYQ19VRCk7CisgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NTkpOiAvKiB2cGJyb2FkY2Fz dHEgeG1tL202NCxbeHl6XW1te2t9ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHZicm9hZGNhc3RpMzJ4MiB4bW0vbTY0LFt4eXpdbW17a30gKi8KKyAg ICAgICAgaWYgKCBiID09IDB4NTkgKQorICAgICAgICAgICAgb3BfYnl0ZXMgPSA4OworICAgICAg ICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5icnMsIEVYQ19VRCk7CiAgICAgICAgIGlmICgg IWV2ZXgudyApCiAgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7 CiAgICAgICAgIGdvdG8gYXZ4NTEyX2Jyb2FkY2FzdDsKIAogICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmMzgsIDB4MWEpOiAvKiB2YnJvYWRjYXN0ZjMyeDQgbTEyOCx7eSx6fW1te2t9 ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZicm9h ZGNhc3RmNjR4MiBtMTI4LHt5LHp9bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDVhKTogLyogdmJyb2FkY2FzdGkzMng0IG0xMjgse3ksen1tbXtrfSAqLwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2YnJvYWRjYXN0 aTY0eDIgbTEyOCx7eSx6fW1te2t9ICovCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihl YS50eXBlICE9IE9QX01FTSB8fCAhZXZleC5sciB8fCBldmV4LmJycywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVYQ19VRCk7CiAgICAgICAgIGlmICggZXZleC53ICkKQEAgLTg0NDQs NiArODQ2NSw0NSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lm KGVhLnR5cGUgIT0gT1BfTUVNIHx8ICF2ZXgubCB8fCB2ZXgudywgRVhDX1VEKTsKICAgICAgICAg Z290byBzaW1kXzBmX2F2eDI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4 LCAweDc4KTogLyogdnBicm9hZGNhc3RiIHhtbS9tOCxbeHl6XW1te2t9ICovCisgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg3OSk6IC8qIHZwYnJvYWRjYXN0dyB4bW0vbTE2 LFt4eXpdbW17a30gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyYncp OworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC53IHx8IGV2ZXguYnJzLCBFWENf VUQpOworICAgICAgICBvcF9ieXRlcyA9IGVsZW1fYnl0ZXMgPSAxIDw8IChiICYgMSk7CisgICAg ICAgIC8qIFNlZSB0aGUgY29tbWVudCBhdCB0aGUgYXZ4NTEyX2Jyb2FkY2FzdCBsYWJlbC4gKi8K KyAgICAgICAgb3BfbWFzayB8PSAhKGIgJiAxID8gISh1aW50MzJfdClvcF9tYXNrIDogIW9wX21h c2spOworICAgICAgICBnb3RvIGF2eDUxMmZfbm9fc2FlOworCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzOCwgMHg3YSk6IC8qIHZwYnJvYWRjYXN0YiByMzIsW3h5el1tbXtrfSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4N2IpOiAvKiB2cGJyb2Fk Y2FzdHcgcjMyLFt4eXpdbW17a30gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUo YXZ4NTEyYncpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC53LCBFWENfVUQp OworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDdjKTogLyogdnBicm9hZGNhc3R7ZCxxfSByZWcsW3h5el1tbXtrfSAqLwor ICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoKGVhLnR5cGUgIT0gT1BfUkVHIHx8IGV2ZXgu YnJzIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZleC5yZWcgIT0gMHhmIHx8 ICFldmV4LlJYKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ19VRCk7CisgICAg ICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOworICAgICAgICBhdng1MTJfdmxl bl9jaGVjayhmYWxzZSk7CisgICAgICAgIGdldF9mcHUoWDg2RU1VTF9GUFVfem1tKTsKKworICAg ICAgICBvcGMgPSBpbml0X2V2ZXgoc3R1Yik7CisgICAgICAgIG9wY1swXSA9IGI7CisgICAgICAg IC8qIENvbnZlcnQgR1BSIHNvdXJjZSB0byAlckFYLiAqLworICAgICAgICBldmV4LmIgPSAxOwor ICAgICAgICBpZiAoICFtb2RlXzY0Yml0KCkgKQorICAgICAgICAgICAgZXZleC53ID0gMDsKKyAg ICAgICAgb3BjWzFdID0gbW9kcm0gJiAweGY4OworICAgICAgICBpbnNuX2J5dGVzID0gRVZFWF9Q RlhfQllURVMgKyAyOworICAgICAgICBvcGNbMl0gPSAweGMzOworCisgICAgICAgIGNvcHlfRVZF WChvcGMsIGV2ZXgpOworICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIsICI9ZyIgKGR1bW15KSA6 ICJhIiAoc3JjLnZhbCkpOworCisgICAgICAgIHB1dF9zdHViKHN0dWIpOworICAgICAgICBBU1NF UlQoIXN0YXRlLT5zaW1kX3NpemUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgWDg2RU1V TF9PUENfVkVYXzY2KDB4MGYzOCwgMHg4Yyk6IC8qIHZwbWFza21vdntkLHF9IG1lbSx7eCx5fW1t LHt4LHl9bW0gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmMzgsIDB4OGUpOiAv KiB2cG1hc2ttb3Z7ZCxxfSB7eCx5fW1tLHt4LHl9bW0sbWVtICovCiAgICAgICAgIGdlbmVyYXRl X2V4Y2VwdGlvbl9pZihlYS50eXBlICE9IE9QX01FTSwgRVhDX1VEKTsKCgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=