From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 21/44] x86emul: support AVX512{F, BW} shift/rotate insns Date: Tue, 25 Sep 2018 07:39:44 -0600 Message-ID: <5BAA3AA002000078001EBAB1@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g4nZ8-0007Ct-U3 for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:39:50 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@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 List-Id: xen-devel@lists.xenproject.org Tm90ZSB0aGF0IHNpbWRfcGFja2VkX2ZwIGZvciB0aGUgb3Bjb2RlIHNwYWNlIDBmMzggbWFqb3Ig b3Bjb2RlcyAxNCBhbmQKMTUgaXMgbm90IHJlYWxseSBjb3JyZWN0LCBidXQgc3VmZmljaWVudCBm b3IgdGhlIHB1cnBvc2VzIGhlcmUuIEZ1cnRoZXIKYWRqdXN0bWVudHMgbWF5IGxhdGVyIGJlIG5l ZWRlZCBmb3IgdGhlIGRvd24gY29udmVyc2lvbiB1bnNpZ25lZApzYXR1cmF0aW5nIFZQTU9WKiBp bnNucywgZmlyc3QgYW5kIGZvcmVtb3N0IGZvciB0aGUgZGlmZmVyZW50IERpc3A4CnNjYWxpbmcg dGhvc2Ugb25lcyB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci0tLQp2MzogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgt ZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0x NjcsNiArMTY3LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtdID0K ICAgICBJTlNOKHBtdWxsZCwgICAgICAgNjYsIDBmMzgsIDQwLCAgICB2bCwgICAgICBkLCB2bCks CiAgICAgSU5TTihwbXVsdWRxLCAgICAgIDY2LCAgIDBmLCBmNCwgICAgdmwsICAgICAgcSwgdmwp LAogICAgIElOU04ocG9yLCAgICAgICAgICA2NiwgICAwZiwgZWIsICAgIHZsLCAgICAgZHEsIHZs KSwKKyAgICBJTlNOWChwcm9sLCAgICAgICAgNjYsICAgMGYsIDcyLCAxLCB2bCwgICAgIGRxLCB2 bCksCisgICAgSU5TTihwcm9sdiwgICAgICAgIDY2LCAwZjM4LCAxNSwgICAgdmwsICAgICBkcSwg dmwpLAorICAgIElOU05YKHByb3IsICAgICAgICA2NiwgICAwZiwgNzIsIDAsIHZsLCAgICAgZHEs IHZsKSwKKyAgICBJTlNOKHByb3J2LCAgICAgICAgNjYsIDBmMzgsIDE0LCAgICB2bCwgICAgIGRx LCB2bCksCisgICAgSU5TTihwc2xsZCwgICAgICAgIDY2LCAgIDBmLCBmMiwgICAgZWxfNCwgICAg ZCwgdmwpLAorICAgIElOU05YKHBzbGxkLCAgICAgICA2NiwgICAwZiwgNzIsIDYsIHZsLCAgICAg IGQsIHZsKSwKKyAgICBJTlNOKHBzbGxxLCAgICAgICAgNjYsICAgMGYsIGYzLCAgICBlbF8yLCAg ICBxLCB2bCksCisgICAgSU5TTlgocHNsbHEsICAgICAgIDY2LCAgIDBmLCA3MywgNiwgdmwsICAg ICAgcSwgdmwpLAorICAgIElOU04ocHNsbHYsICAgICAgICA2NiwgMGYzOCwgNDcsICAgIHZsLCAg ICAgZHEsIHZsKSwKKyAgICBJTlNOWChwc3JhLCAgICAgICAgNjYsICAgMGYsIDcyLCA0LCB2bCwg ICAgIGRxLCB2bCksCisgICAgSU5TTihwc3JhZCwgICAgICAgIDY2LCAgIDBmLCBlMiwgICAgZWxf NCwgICAgZCwgdmwpLAorICAgIElOU04ocHNyYXEsICAgICAgICA2NiwgICAwZiwgZTIsICAgIGVs XzIsICAgIHEsIHZsKSwKKyAgICBJTlNOKHBzcmF2LCAgICAgICAgNjYsIDBmMzgsIDQ2LCAgICB2 bCwgICAgIGRxLCB2bCksCisgICAgSU5TTihwc3JsZCwgICAgICAgIDY2LCAgIDBmLCBkMiwgICAg ZWxfNCwgICAgZCwgdmwpLAorICAgIElOU05YKHBzcmxkLCAgICAgICA2NiwgICAwZiwgNzIsIDIs IHZsLCAgICAgIGQsIHZsKSwKKyAgICBJTlNOKHBzcmxxLCAgICAgICAgNjYsICAgMGYsIGQzLCAg ICBlbF8yLCAgICBxLCB2bCksCisgICAgSU5TTlgocHNybHEsICAgICAgIDY2LCAgIDBmLCA3Mywg MiwgdmwsICAgICAgcSwgdmwpLAorICAgIElOU04ocHNybHYsICAgICAgICA2NiwgMGYzOCwgNDUs ICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBzdWJkLCAgICAgICAgNjYsICAgMGYsIGZh LCAgICB2bCwgICAgICBkLCB2bCksCiAgICAgSU5TTihwc3VicSwgICAgICAgIDY2LCAgIDBmLCBm YiwgICAgdmwsICAgICAgcSwgdmwpLAogICAgIElOU04ocHRlcm5sb2csICAgICA2NiwgMGYzYSwg MjUsICAgIHZsLCAgICAgZHEsIHZsKSwKQEAgLTIzMCw2ICsyNDgsMTcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3X2FsbFtdCiAgICAgSU5TTihwbXVsaHcsICAgICAgNjYsICAg MGYsIGU1LCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocG11bGx3LCAgICAgIDY2LCAgIDBm LCBkNSwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBzYWRidywgICAgICA2NiwgICAwZiwg ZjYsICAgIHZsLCAgICBiLCB2bCksCisgICAgSU5TTlgocHNsbGRxLCAgICAgNjYsICAgMGYsIDcz LCA3LCB2bCwgICAgYiwgdmwpLAorICAgIElOU04ocHNsbHZ3LCAgICAgIDY2LCAwZjM4LCAxMiwg ICAgdmwsICAgIHcsIHZsKSwKKyAgICBJTlNOKHBzbGx3LCAgICAgICA2NiwgICAwZiwgZjEsICAg IGVsXzgsICB3LCB2bCksCisgICAgSU5TTlgocHNsbHcsICAgICAgNjYsICAgMGYsIDcxLCA2LCB2 bCwgICAgdywgdmwpLAorICAgIElOU04ocHNyYXZ3LCAgICAgIDY2LCAwZjM4LCAxMSwgICAgdmws ICAgIHcsIHZsKSwKKyAgICBJTlNOKHBzcmF3LCAgICAgICA2NiwgICAwZiwgZTEsICAgIGVsXzgs ICB3LCB2bCksCisgICAgSU5TTlgocHNyYXcsICAgICAgNjYsICAgMGYsIDcxLCA0LCB2bCwgICAg dywgdmwpLAorICAgIElOU05YKHBzcmxkcSwgICAgIDY2LCAgIDBmLCA3MywgMywgdmwsICAgIGIs IHZsKSwKKyAgICBJTlNOKHBzcmx2dywgICAgICA2NiwgMGYzOCwgMTAsICAgIHZsLCAgICB3LCB2 bCksCisgICAgSU5TTihwc3JsdywgICAgICAgNjYsICAgMGYsIGQxLCAgICBlbF84LCAgdywgdmwp LAorICAgIElOU05YKHBzcmx3LCAgICAgIDY2LCAgIDBmLCA3MSwgMiwgdmwsICAgIHcsIHZsKSwK ICAgICBJTlNOKHBzdWJiLCAgICAgICA2NiwgICAwZiwgZjgsICAgIHZsLCAgICBiLCB2bCksCiAg ICAgSU5TTihwc3Vic2IsICAgICAgNjYsICAgMGYsIGU4LCAgICB2bCwgICAgYiwgdmwpLAogICAg IElOU04ocHN1YnN3LCAgICAgIDY2LCAgIDBmLCBlOSwgICAgdmwsICAgIHcsIHZsKSwKLS0tIGEv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2 L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTMxOSw3ICszMTksNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHR3b2J5dGVfdGFibGUgewogICAgIFsweDZlXSA9IHsgRHN0SW1wbGljaXR8U3Jj TWVtfE1vZFJNfE1vdiwgc2ltZF9ub25lLCBkOHNfZHE2NCB9LAogICAgIFsweDZmXSA9IHsgRHN0 SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAg ICBbMHg3MF0gPSB7IFNyY0ltbUJ5dGV8TW9kUk18VHdvT3AsIHNpbWRfb3RoZXIgfSwKLSAgICBb MHg3MSAuLi4gMHg3M10gPSB7IERzdEltcGxpY2l0fFNyY0ltbUJ5dGV8TW9kUk0gfSwKKyAgICBb MHg3MSAuLi4gMHg3M10gPSB7IERzdEltcGxpY2l0fFNyY0ltbUJ5dGV8TW9kUk0sIHNpbWRfbm9u ZSwgZDhzX3ZsIH0sCiAgICAgWzB4NzQgLi4uIDB4NzZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18 TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCiAgICAgWzB4NzddID0geyBEc3RJbXBs aWNpdHxTcmNOb25lIH0sCiAgICAgWzB4NzhdID0geyBJbXBsaWNpdE9wc3xNb2RSTSB9LApAQCAt MzY2LDE5ICszNjYsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0d29ieXRlX3RhYmxlIHsKICAg ICBbMHhjN10gPSB7IEltcGxpY2l0T3BzfE1vZFJNIH0sCiAgICAgWzB4YzggLi4uIDB4Y2ZdID0g eyBJbXBsaWNpdE9wcyB9LAogICAgIFsweGQwXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJN LCBzaW1kX290aGVyIH0sCi0gICAgWzB4ZDEgLi4uIDB4ZDNdID0geyBEc3RJbXBsaWNpdHxTcmNN ZW18TW9kUk0sIHNpbWRfMTI4IH0sCisgICAgWzB4ZDEgLi4uIDB4ZDNdID0geyBEc3RJbXBsaWNp dHxTcmNNZW18TW9kUk0sIHNpbWRfMTI4LCA0IH0sCiAgICAgWzB4ZDQgLi4uIDB4ZDVdID0geyBE c3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCiAgICAg WzB4ZDZdID0geyBEc3RNZW18U3JjSW1wbGljaXR8TW9kUk18TW92LCBzaW1kX290aGVyLCAzIH0s CiAgICAgWzB4ZDddID0geyBEc3RSZWd8U3JjSW1wbGljaXR8TW9kUk18TW92IH0sCiAgICAgWzB4 ZDggLi4uIDB4ZGZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfcGFja2VkX2lu dCwgZDhzX3ZsIH0sCiAgICAgWzB4ZTBdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNp bWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCi0gICAgWzB4ZTEgLi4uIDB4ZTJdID0geyBEc3RJbXBs aWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfMTI4IH0sCisgICAgWzB4ZTEgLi4uIDB4ZTJdID0geyBE c3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfMTI4LCA0IH0sCiAgICAgWzB4ZTMgLi4uIDB4 ZTVdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgZDhzX3Zs IH0sCiAgICAgWzB4ZTZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk18TW92LCBzaW1kX290 aGVyIH0sCiAgICAgWzB4ZTddID0geyBEc3RNZW18U3JjSW1wbGljaXR8TW9kUk18TW92LCBzaW1k X3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweGU4IC4uLiAweGVmXSA9IHsgRHN0SW1wbGlj aXR8U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweGYwXSA9 IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9vdGhlciB9LAotICAgIFsweGYx IC4uLiAweGYzXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kXzEyOCB9LAorICAg IFsweGYxIC4uLiAweGYzXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kXzEyOCwg NCB9LAogICAgIFsweGY0IC4uLiAweGY2XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBz aW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweGY3XSA9IHsgRHN0TWVtfFNyY01lbXxN b2RSTXxNb3YsIHNpbWRfcGFja2VkX2ludCB9LAogICAgIFsweGY4IC4uLiAweGZlXSA9IHsgRHN0 SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LApAQCAtNDM0 LDkgKzQzNCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiB9IGV4dDBm MzhfdGFibGVbMjU2XSA9IHsKICAgICBbMHgwMCAuLi4gMHgwYl0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX3BhY2tlZF9pbnQgfSwKICAgICBbMHgwYyAuLi4gMHgwZl0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX3BhY2tlZF9mcCB9LAotICAgIFsweDEwXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ludCB9LAorICAgIFsweDEwIC4uLiAweDEyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDEzXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf b3RoZXIsIC50d29fb3AgPSAxIH0sCi0gICAgWzB4MTQgLi4uIDB4MTZdID0geyAuc2ltZF9zaXpl ID0gc2ltZF9wYWNrZWRfZnAgfSwKKyAgICBbMHgxNCAuLi4gMHgxNl0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3BhY2tlZF9mcCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDE3XSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKICAgICBbMHgxOF0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3NjYWxhcl9vcGMsIC50d29fb3AgPSAxLCAuZDhzID0gMiB9LAogICAg IFsweDE5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX29wYywgLnR3b19vcCA9IDEsIC5k OHMgPSAzIH0sCkBAIC00NTMsNyArNDUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjM4 X3RhYmxlIHsKICAgICBbMHgzNiAuLi4gMHgzZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tl ZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg0MF0gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg0MV0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCi0gICAgWzB4NDUgLi4uIDB4NDddID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4NDUgLi4uIDB4NDddID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4 NTggLi4uIDB4NTldID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwK ICAgICBbMHg1YV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwgLnR3b19vcCA9IDEgfSwKICAg ICBbMHg3OCAuLi4gMHg3OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdvX29wID0g MSB9LApAQCAtNTk3MSwxMCArNTk3MSwxNSBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhkZik6IC8qIHZwYW5kbntkLHF9IFt4eXpdbW0vbWVtLFt4 eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAw eGViKTogLyogdnBvcntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGVmKTogLyogdnB4b3J7ZCxxfSBbeHl6 XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDE0KTogLyogdnByb3J2e2QscX0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6 XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgxNSk6IC8q IHZwcm9sdntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MzkpOiAvKiB2cG1pbnN7ZCxxfSBbeHl6XW1t L21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYo MHgwZjM4LCAweDNiKTogLyogdnBtaW51e2QscX0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1t e2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgzZCk6IC8qIHZw bWF4c3tkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4M2YpOiAvKiB2cG1heHV7ZCxxfSBbeHl6XW1tL21l bSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjM4LCAweDQ1KTogLyogdnBzcmx2e2QscX0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9 ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg0Nik6IC8qIHZwc3Jh dntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmMzgsIDB4NDcpOiAvKiB2cHNsbHZ7ZCxxfSBbeHl6XW1tL21lbSxb eHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBhdng1MTJmX25vX3NhZToKICAgICAgICAgaG9zdF9h bmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9p ZihlYS50eXBlICE9IE9QX01FTSAmJiBldmV4LmJyLCBFWENfVUQpOwpAQCAtNjU5Miw2ICs2NTk3 LDkgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGdldF9mcHUoWDg2RU1VTF9GUFVfbW14KTsKICAg ICAgICAgZ290byBzaW1kXzBmX2NvbW1vbjsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmLCAweGQxKTogLyogdnBzcmx3IHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGUxKTogLyogdnBzcmF3IHhtbS9t MTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82Nigw eDBmLCAweGYxKTogLyogdnBzbGx3IHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGY1KTogLyogdnBtYWRkd2QgW3h5el1t bS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYsIDB4ZjYpOiAvKiB2cHNhZGJ3IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAq LwogICAgICAgICBmYXVsdF9zdXBwcmVzc2lvbiA9IGZhbHNlOwpAQCAtNjg5MSw2ICs2ODk5LDM3 IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBBU1NFUlQoIXN0YXRlLT5zaW1kX3NpemUpOwogICAg ICAgICBicmVhazsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweDcxKTog LyogR3JwMTIgKi8KKyAgICAgICAgc3dpdGNoICggbW9kcm1fcmVnICYgNyApCisgICAgICAgIHsK KyAgICAgICAgY2FzZSAyOiAvKiB2cHNybHcgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAq LworICAgICAgICBjYXNlIDQ6IC8qIHZwc3JhdyAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9 ICovCisgICAgICAgIGNhc2UgNjogLyogdnBzbGx3ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17 a30gKi8KKyAgICAgICAgYXZ4NTEyYndfc2hpZnRfaW1tOgorICAgICAgICAgICAgZmF1bHRfc3Vw cHJlc3Npb24gPSBmYWxzZTsKKyAgICAgICAgICAgIG9wX2J5dGVzID0gMTYgPDwgZXZleC5scjsK KyAgICAgICAgICAgIHN0YXRlLT5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQ7CisgICAgICAg ICAgICBnb3RvIGF2eDUxMmJ3X2ltbTsKKyAgICAgICAgfQorICAgICAgICBnb3RvIHVucmVjb2du aXplZF9pbnNuOworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4NzIpOiAv KiBHcnAxMyAqLworICAgICAgICBzd2l0Y2ggKCBtb2RybV9yZWcgJiA3ICkKKyAgICAgICAgewor ICAgICAgICBjYXNlIDI6IC8qIHZwc3JsZCAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICov CisgICAgICAgIGNhc2UgNjogLyogdnBzbGxkICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30g Ki8KKyAgICAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LncsIEVYQ19VRCk7Cisg ICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSAwOiAvKiB2cHJvcntk LHF9ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgY2FzZSAxOiAvKiB2 cHJvbHtkLHF9ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgY2FzZSA0 OiAvKiB2cHNyYXtkLHF9ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAg YXZ4NTEyZl9zaGlmdF9pbW06CisgICAgICAgICAgICBvcF9ieXRlcyA9IDE2IDw8IGV2ZXgubHI7 CisgICAgICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50OworICAgICAg ICAgICAgZ290byBhdng1MTJmX2ltbV9ub19zYWU7CisgICAgICAgIH0KKyAgICAgICAgZ290byB1 bnJlY29nbml6ZWRfaW5zbjsKKwogICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgwZiwgMHg3Myk6ICAg ICAgICAvKiBHcnAxNCAqLwogICAgICAgICBzd2l0Y2ggKCBtb2RybV9yZWcgJiA3ICkKICAgICAg ICAgewpAQCAtNjkxNiw2ICs2OTU1LDE5IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICB9CiAgICAg ICAgIGdvdG8gdW5yZWNvZ25pemVkX2luc247CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZiwgMHg3Myk6IC8qIEdycDE0ICovCisgICAgICAgIHN3aXRjaCAoIG1vZHJtX3JlZyAm IDcgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgMjogLyogdnBzcmxxICRpbW04LFt4eXpdbW0v bWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgY2FzZSA2OiAvKiB2cHNsbHEgJGltbTgsW3h5el1t bS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCFl dmV4LncsIEVYQ19VRCk7CisgICAgICAgICAgICBnb3RvIGF2eDUxMmZfc2hpZnRfaW1tOworICAg ICAgICBjYXNlIDM6IC8qIHZwc3JsZHEgJGltbTgse3gseX1tbSx7eCx5fW1tICovCisgICAgICAg IGNhc2UgNzogLyogdnBzbGxkcSAkaW1tOCx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgICAg IGdvdG8gYXZ4NTEyYndfc2hpZnRfaW1tOworICAgICAgICB9CisgICAgICAgIGdvdG8gdW5yZWNv Z25pemVkX2luc247CisKICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4NzcpOiAgICAgICAg LyogZW1tcyAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYKDB4MGYsIDB4NzcpOiAgICAvKiB2 emVyb3thbGwsdXBwZXJ9ICovCiAgICAgICAgIGlmICggdmV4Lm9wY3ggIT0gdmV4X25vbmUgKQpA QCAtNzg1Myw2ICs3OTA1LDE2IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICB9CiAgICAgICAgIGJy ZWFrOwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZDIpOiAvKiB2cHNy bGQgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19F VkVYXzY2KDB4MGYsIDB4ZDMpOiAvKiB2cHNybHEgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9 ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZTIpOiAvKiB2cHNyYXtk LHF9IHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmLCAweGYyKTogLyogdnBzbGxkIHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtr fSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGYzKTogLyogdnBzbGxx IHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBnZW5lcmF0ZV9leGNlcHRp b25faWYoZXZleC5iciwgRVhDX1VEKTsKKyAgICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxz ZTsKKyAgICAgICAgaWYgKCBiID09IDB4ZTIgKQorICAgICAgICAgICAgZ290byBhdng1MTJmX25v X3NhZTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19F VkVYXzY2KDB4MGYsIDB4ZmEpOiAvKiB2cHN1YmQgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1t e2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZmIpOiAvKiB2cHN1 YnEgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYsIDB4ZmUpOiAvKiB2cGFkZGQgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6 XW1te2t9ICovCkBAIC04MDkzLDYgKzgxNTUsMTQgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGRz dC50eXBlID0gT1BfTk9ORTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjM4LCAweDEwKTogLyogdnBzcmx2dyBbeHl6XW1tL21lbSxbeHl6XW1tLFt4 eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDExKTog LyogdnBzcmF2dyBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDEyKTogLyogdnBzbGx2dyBbeHl6XW1tL21lbSxb eHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4 NTEyYncpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5iciwgRVhDX1VEKTsK KyAgICAgICAgZWxlbV9ieXRlcyA9IDEgPDwgZXZleC53OworICAgICAgICBnb3RvIGF2eDUxMmZf bm9fc2FlOworCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgxOCk6IC8q IHZicm9hZGNhc3RzcyB4bW0vbTMyLFt4eXpdbW17a30gKi8KICAgICAgICAgZ2VuZXJhdGVfZXhj ZXB0aW9uX2lmKGV2ZXgudyB8fCBldmV4LmJyLCBFWENfVUQpOwogICAgIGF2eDUxMl9icm9hZGNh c3Q6CkBAIC04ODQ5LDYgKzg5MTksNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVf ZXhjZXB0aW9uX2lmKCFldmV4LnIgfHwgIWV2ZXguUiB8fCBldmV4LnosIEVYQ19VRCk7CiAgICAg ICAgIGlmICggIShiICYgMHgyMCkgKQogICAgICAgICAgICAgZ290byBhdng1MTJmX2ltbV9ub19z YWU7CisgICAgYXZ4NTEyYndfaW1tOgogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShh dng1MTJidyk7CiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmJyLCBFWENfVUQp OwogICAgICAgICBlbGVtX2J5dGVzID0gMSA8PCBldmV4Lnc7CgoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs