From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 46/47] x86emul: support AVX512{F, _VBMI2} compress/expand insns Date: Mon, 19 Nov 2018 03:40:52 -0700 Message-ID: <5BF2933402000078001FD628@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@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 1gOgzB-0004xk-MU for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:40:57 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjU6IE5l dy4KLS0tClRCRDogRXF1aXZhbGVudCBieXRlL3dvcmQgZWxlbWVudCBzaXplIHRlc3RzIHdvdWxk IGJlIG5pY2UsIGJ1dCBJIGRpZG4ndAogICAgIGRhcmUgdG8gY29kZSB0aGVtIHVwIHdpdGhvdXQg YWN0dWFsbHkgYmVpbmcgYWJsZSB0byB0ZXN0IHRoZSByZXN1bHQuCgotLS0gYS90b29scy90ZXN0 cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9ldmV4LWRpc3A4LmMKQEAgLTEwOSw2ICsxMDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRl c3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5TTl9GUChjbXAsICAgICAgICAgICAgIDBmLCBjMiks CiAgICAgSU5TTihjb21pc2QsICAgICAgIDY2LCAgIDBmLCAyZiwgICAgZWwsICAgICAgcSwgZWwp LAogICAgIElOU04oY29taXNzLCAgICAgICAgICwgICAwZiwgMmYsICAgIGVsLCAgICAgIGQsIGVs KSwKKyAgICBJTlNOKGNvbXByZXNzLCAgICAgNjYsIDBmMzgsIDhhLCAgICB2bCwgICAgIHNkLCBl bCksCiAgICAgSU5TTihjdnRkcTJwZCwgICAgIGYzLCAgIDBmLCBlNiwgICAgdmxfMiwgICAgZCwg dmwpLAogICAgIElOU04oY3Z0ZHEycHMsICAgICAgICwgICAwZiwgNWIsICAgIHZsLCAgICAgIGQs IHZsKSwKICAgICBJTlNOKGN2dHBkMmRxLCAgICAgZjIsICAgMGYsIGU2LCAgICB2bCwgICAgICBx LCB2bCksCkBAIC0xNDAsNiArMTQxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUx MmZfYWxsW10gPQogICAgIElOU04oY3Z0dXNpMnNkLCAgICBmMiwgICAwZiwgN2IsICAgIGVsLCAg IGRxNjQsIGVsKSwKICAgICBJTlNOKGN2dHVzaTJzcywgICAgZjMsICAgMGYsIDdiLCAgICBlbCwg ICBkcTY0LCBlbCksCiAgICAgSU5TTl9GUChkaXYsICAgICAgICAgICAgIDBmLCA1ZSksCisgICAg SU5TTihleHBhbmQsICAgICAgIDY2LCAwZjM4LCA4OCwgICAgdmwsICAgICBzZCwgZWwpLAogICAg IElOU04oZml4dXBpbW0sICAgICA2NiwgMGYzYSwgNTQsICAgIHZsLCAgICAgc2QsIHZsKSwKICAg ICBJTlNOKGZpeHVwaW1tLCAgICAgNjYsIDBmM2EsIDU1LCAgICBlbCwgICAgIHNkLCBlbCksCiAg ICAgSU5TTihmbWFkZDEzMiwgICAgIDY2LCAwZjM4LCA5OCwgICAgdmwsICAgICBzZCwgdmwpLApA QCAtMjEzLDYgKzIxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtd ID0KICAgICBJTlNOKHBjbXBndGQsICAgICAgNjYsICAgMGYsIDY2LCAgICB2bCwgICAgICBkLCB2 bCksCiAgICAgSU5TTihwY21wZ3RxLCAgICAgIDY2LCAwZjM4LCAzNywgICAgdmwsICAgICAgcSwg dmwpLAogICAgIElOU04ocGNtcHUsICAgICAgICA2NiwgMGYzYSwgMWUsICAgIHZsLCAgICAgZHEs IHZsKSwKKyAgICBJTlNOKHBjb21wcmVzcywgICAgNjYsIDBmMzgsIDhiLCAgICB2bCwgICAgIGRx LCBlbCksCiAgICAgSU5TTihwZXJtaTIsICAgICAgIDY2LCAwZjM4LCA3NiwgICAgdmwsICAgICBk cSwgdmwpLAogICAgIElOU04ocGVybWkyLCAgICAgICA2NiwgMGYzOCwgNzcsICAgIHZsLCAgICAg c2QsIHZsKSwKICAgICBJTlNOKHBlcm1pbHBkLCAgICAgNjYsIDBmMzgsIDBkLCAgICB2bCwgICAg ICBxLCB2bCksCkBAIC0yMjEsNiArMjI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmZfYWxsW10gPQogICAgIElOU04ocGVybWlscHMsICAgICA2NiwgMGYzYSwgMDQsICAgIHZs LCAgICAgIGQsIHZsKSwKICAgICBJTlNOKHBlcm10MiwgICAgICAgNjYsIDBmMzgsIDdlLCAgICB2 bCwgICAgIGRxLCB2bCksCiAgICAgSU5TTihwZXJtdDIsICAgICAgIDY2LCAwZjM4LCA3ZiwgICAg dmwsICAgICBzZCwgdmwpLAorICAgIElOU04ocGV4cGFuZCwgICAgICA2NiwgMGYzOCwgODksICAg IHZsLCAgICAgZHEsIGVsKSwKICAgICBJTlNOKHBtYXhzLCAgICAgICAgNjYsIDBmMzgsIDNkLCAg ICB2bCwgICAgIGRxLCB2bCksCiAgICAgSU5TTihwbWF4dSwgICAgICAgIDY2LCAwZjM4LCAzZiwg ICAgdmwsICAgICBkcSwgdmwpLAogICAgIElOU04ocG1pbnMsICAgICAgICA2NiwgMGYzOCwgMzks ICAgIHZsLCAgICAgZHEsIHZsKSwKQEAgLTUxMCw2ICs1MTQsMTEgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB0ZXN0IGF2eDUxMl92Ym1pX2FsbAogICAgIElOU04ocGVybXQyYiwgICAgICAgNjYsIDBm MzgsIDdkLCB2bCwgYiwgdmwpLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUx Ml92Ym1pMl9hbGxbXSA9IHsKKyAgICBJTlNOKHBjb21wcmVzcywgNjYsIDBmMzgsIDYzLCB2bCwg YncsIGVsKSwKKyAgICBJTlNOKHBleHBhbmQsICAgNjYsIDBmMzgsIDYyLCB2bCwgYncsIGVsKSwK K307CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHZsX2FsbFtdID0geyBWTF81MTIsIFZM XzEyOCwgVkxfMjU2IH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB2bF8xMjhbXSA9IHsg VkxfMTI4IH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB2bF9ubzEyOFtdID0geyBWTF81 MTIsIFZMXzI1NiB9OwpAQCAtODUzLDQgKzg2Miw1IEBAIHZvaWQgZXZleF9kaXNwOF90ZXN0KHZv aWQgKmluc3RyLCBzdHJ1Y3QKICAgICBSVU4oYXZ4NTEyZHEsIDUxMik7CiAgICAgUlVOKGF2eDUx MmVyLCA1MTIpOwogICAgIFJVTihhdng1MTJfdmJtaSwgYWxsKTsKKyAgICBSVU4oYXZ4NTEyX3Zi bWkyLCBhbGwpOwogfQotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11 bGF0b3IuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3Iu YwpAQCAtMzk2Niw2ICszOTY2LDExMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAgICAgZWxzZQogICAgICAgICBwcmludGYoInNraXBwZWRcbiIpOwogCisgICAgLyoKKyAgICAg KiBUaGUgZm9sbG93aW5nIGNvbXByZXNzL2V4cGFuZCB0ZXN0cyBhcmUgbm90IG9ubHkgbWFraW5n IHN1cmUgdGhlCisgICAgICogYWNjZXNzZWQgZGF0YSBpcyBjb3JyZWN0LCBidXQgdGhleSBhbHNv IHZlcmlmeSAoYnkgcGxhY2luZyBvcGVyYW5kcworICAgICAqIG9uIHRoZSBtYXBwaW5nIGJvdW5k YXJpZXMpIHRoYXQgZWxlbWVudHMgY29udHJvbGxlZCBieSBjbGVhciBtYXNrCisgICAgICogYml0 cyBkb24ndCBnZXQgYWNjZXNzZWQuCisgICAgICovCisgICAgaWYgKCBzdGFja19leGVjICYmIGNw dV9oYXNfYXZ4NTEyZiApCisgICAgeworICAgICAgICBkZWNsX2luc24odnBjb21wcmVzc2QpOwor ICAgICAgICBkZWNsX2luc24odnBjb21wcmVzc3EpOworICAgICAgICBkZWNsX2luc24odnBleHBh bmRkKTsKKyAgICAgICAgZGVjbF9pbnNuKHZwZXhwYW5kcSk7CisgICAgICAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgeworICAgICAgICAgICAgdW5zaWduZWQgaW50IGRbMTZdOworICAgICAgICB9IGRz cmMgPSB7IHsgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0 LCAxNSB9IH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeworICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBsb25nIHFbOF07CisgICAgICAgIH0gcXNyYyA9IHsgeyAwLCAxLCAyLCAzLCA0 LCA1LCA2LCA3IH0gfTsKKyAgICAgICAgdW5zaWduZWQgaW50ICpwdHIgPSByZXMgKyBNTUFQX1Na IC8gc2l6ZW9mKCpyZXMpIC0gMzI7CisKKyAgICAgICAgcHJpbnRmKCIlLTQwcyIsICJUZXN0aW5n IHZwY29tcHJlc3NkICV6bW0xLDI0KjQoJWVjeCl7JWsyfS4uLiIpOworICAgICAgICBhc20gdm9s YXRpbGUgKCAia21vdncgJTEsICUlazJcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAidm1v dmRxdTMyICUyLCAlJXptbTFcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgcHV0X2luc24odnBj b21wcmVzc2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2cGNvbXByZXNzZCAl JXptbTEsIDI0KjQoJTApJXslJWsyJX0iKQorICAgICAgICAgICAgICAgICAgICAgICA6OiAiYyIg KE5VTEwpLCAiciIgKDB4NTVhYSksICJtIiAoZHNyYykgKTsKKworICAgICAgICBtZW1zZXQocHRy LCAweGRiLCAzMiAqIDQpOworICAgICAgICBzZXRfaW5zbih2cGNvbXByZXNzZCk7CisgICAgICAg IHJlZ3MuZWN4ID0gKHVuc2lnbmVkIGxvbmcpcHRyOworICAgICAgICByYyA9IHg4Nl9lbXVsYXRl KCZjdHh0LCAmZW11bG9wcyk7CisgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZIHx8ICFj aGVja19laXAodnBjb21wcmVzc2QpIHx8CisgICAgICAgICAgICAgbWVtY21wKHB0ciwgcHRyICsg OCwgMTYgKiA0KSApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgNDsgKytpICkKKyAgICAgICAgICAgIGlmICggcHRyWzI0ICsgaV0gIT0gMiAqIGkgKyAx ICkKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGZvciAoIDsgaSA8IDg7ICsr aSApCisgICAgICAgICAgICBpZiAoIHB0clsyNCArIGldICE9IDIgKiBpICkKKyAgICAgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgIHByaW50Zigib2theVxuIik7CisKKyAgICAgICAgcHJp bnRmKCIlLTQwcyIsICJUZXN0aW5nIHZwZXhwYW5kZCA4KjQoJWVkeCksJXptbTN7JWsyfXt6fS4u LiIpOworICAgICAgICBhc20gdm9sYXRpbGUgKCAidnB0ZXJubG9nZCAkMHg4MSwgJSV6bW0zLCAl JXptbTMsICUlem1tM1xuIgorICAgICAgICAgICAgICAgICAgICAgICBwdXRfaW5zbih2cGV4cGFu ZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2cGV4cGFuZGQgOCo0KCUwKSwg JSV6bW0zJXslJWsyJX0le3olfSIpCisgICAgICAgICAgICAgICAgICAgICAgIDo6ICJkIiAoTlVM TCkgKTsKKyAgICAgICAgc2V0X2luc24odnBleHBhbmRkKTsKKyAgICAgICAgcmVncy5lZHggPSAo dW5zaWduZWQgbG9uZykocHRyICsgMTYpOworICAgICAgICByYyA9IHg4Nl9lbXVsYXRlKCZjdHh0 LCAmZW11bG9wcyk7CisgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZIHx8ICFjaGVja19l aXAodnBleHBhbmRkKSApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGFzbSAoICJ2 bW92ZHFhMzIgJSV6bW0xLCAlJXptbTIleyUlazIlfSV7eiV9XG5cdCIKKyAgICAgICAgICAgICAg InZwY21wZXFkICUlem1tMiwgJSV6bW0zLCAlJWswXG5cdCIKKyAgICAgICAgICAgICAgImttb3Z3 ICUlazAsICUwIgorICAgICAgICAgICAgICA6ICI9ciIgKHJjKSApOworICAgICAgICBpZiAoIHJj ICE9IDB4ZmZmZiApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIHByaW50Zigib2th eVxuIik7CisKKyAgICAgICAgcHJpbnRmKCIlLTQwcyIsICJUZXN0aW5nIHZwY29tcHJlc3NxICV6 bW00LDEyKjgoJWVkeCl7JWszfS4uLiIpOworICAgICAgICBhc20gdm9sYXRpbGUgKCAia21vdncg JTEsICUlazNcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAidm1vdmRxdTY0ICUyLCAlJXpt bTRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgcHV0X2luc24odnBjb21wcmVzc3EsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2cGNvbXByZXNzcSAlJXptbTQsIDEyKjgoJTAp JXslJWszJX0iKQorICAgICAgICAgICAgICAgICAgICAgICA6OiAiZCIgKE5VTEwpLCAiciIgKDB4 NWEpLCAibSIgKHFzcmMpICk7CisKKyAgICAgICAgbWVtc2V0KHB0ciwgMHhkYiwgMzIgKiA0KTsK KyAgICAgICAgc2V0X2luc24odnBjb21wcmVzc3EpOworICAgICAgICByZWdzLmVkeCA9ICh1bnNp Z25lZCBsb25nKXB0cjsKKyAgICAgICAgcmMgPSB4ODZfZW11bGF0ZSgmY3R4dCwgJmVtdWxvcHMp OworICAgICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSB8fCAhY2hlY2tfZWlwKHZwY29tcHJl c3NxKSB8fAorICAgICAgICAgICAgIG1lbWNtcChwdHIsIHB0ciArIDgsIDggKiA4KSApCisgICAg ICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgMjsgKytpICkKKyAg ICAgICAgeworICAgICAgICAgICAgaWYgKCBwdHJbKDEyICsgaSkgKiAyXSAhPSAyICogaSArIDEg fHwKKyAgICAgICAgICAgICAgICAgcHRyWygxMiArIGkpICogMiArIDFdICkKKyAgICAgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKyAgICAgICAgZm9yICggOyBpIDwgNDsgKytpICkK KyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBwdHJbKDEyICsgaSkgKiAyXSAhPSAyICogaSB8 fAorICAgICAgICAgICAgICAgICBwdHJbKDEyICsgaSkgKiAyICsgMV0gKQorICAgICAgICAgICAg ICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorICAgICAgICBwcmludGYoIm9rYXlcbiIpOworCisg ICAgICAgIHByaW50ZigiJS00MHMiLCAiVGVzdGluZyB2cGV4cGFuZHEgNCo4KCVlY3gpLCV6bW01 eyVrM317en0uLi4iKTsKKyAgICAgICAgYXNtIHZvbGF0aWxlICggInZwdGVybmxvZ3EgJDB4ODEs ICUlem1tNSwgJSV6bW01LCAlJXptbTVcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgcHV0X2lu c24odnBleHBhbmRxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidnBleHBhbmRx IDQqOCglMCksICUlem1tNSV7JSVrMyV9JXt6JX0iKQorICAgICAgICAgICAgICAgICAgICAgICA6 OiAiYyIgKE5VTEwpICk7CisgICAgICAgIHNldF9pbnNuKHZwZXhwYW5kcSk7CisgICAgICAgIHJl Z3MuZWN4ID0gKHVuc2lnbmVkIGxvbmcpKHB0ciArIDE2KTsKKyAgICAgICAgcmMgPSB4ODZfZW11 bGF0ZSgmY3R4dCwgJmVtdWxvcHMpOworICAgICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSB8 fCAhY2hlY2tfZWlwKHZwZXhwYW5kcSkgKQorICAgICAgICAgICAgZ290byBmYWlsOworICAgICAg ICBhc20gKCAidm1vdmRxYTY0ICUlem1tNCwgJSV6bW02JXslJWszJX0le3olfVxuXHQiCisgICAg ICAgICAgICAgICJ2cGNtcGVxcSAlJXptbTUsICUlem1tNiwgJSVrMFxuXHQiCisgICAgICAgICAg ICAgICJrbW92dyAlJWswLCAlMCIKKyAgICAgICAgICAgICAgOiAiPXIiIChyYykgKTsKKyAgICAg ICAgaWYgKCByYyAhPSAweGZmICkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgcHJp bnRmKCJva2F5XG4iKTsKKyAgICB9CisKICN1bmRlZiBkZWNsX2luc24KICN1bmRlZiBwdXRfaW5z bgogI3VuZGVmIHNldF9pbnNuCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11 bGF0ZS5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5oCkBAIC01 OSw2ICs1OSw5IEBACiAgICAgKHR5cGUgKikoKGNoYXIgKiltcHRyX18gLSBvZmZzZXRvZih0eXBl LCBtZW1iZXIpKTsgXAogfSkKIAorI2RlZmluZSBod2VpZ2h0MzIgX19idWlsdGluX3BvcGNvdW50 CisjZGVmaW5lIGh3ZWlnaHQ2NCBfX2J1aWx0aW5fcG9wY291bnRsbAorCiAjZGVmaW5lIGlzX2Nh bm9uaWNhbF9hZGRyZXNzKHgpICgoKGludDY0X3QpKHgpID4+IDQ3KSA9PSAoKGludDY0X3QpKHgp ID4+IDYzKSkKIAogZXh0ZXJuIHVpbnQzMl90IG14Y3NyX21hc2s7CkBAIC0xMzgsNiArMTQxLDcg QEAgc3RhdGljIGlubGluZSBib29sIHhjcjBfbWFzayh1aW50NjRfdCBtYQogI2RlZmluZSBjcHVf aGFzX2F2eDUxMmJ3ICAoY3AuZmVhdC5hdng1MTJidyAmJiB4Y3IwX21hc2soMHhlNikpCiAjZGVm aW5lIGNwdV9oYXNfYXZ4NTEydmwgIChjcC5mZWF0LmF2eDUxMnZsICYmIHhjcjBfbWFzaygweGU2 KSkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdmJtaSAoY3AuZmVhdC5hdng1MTJfdmJtaSAmJiB4 Y3IwX21hc2soMHhlNikpCisjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZibWkyIChjcC5mZWF0LmF2 eDUxMl92Ym1pMiAmJiB4Y3IwX21hc2soMHhlNikpCiAKICNkZWZpbmUgY3B1X2hhc194Z2V0YnYx ICAgKGNwdV9oYXNfeHNhdmUgJiYgY3AueHN0YXRlLnhnZXRidjEpCiAKLS0tIGEveGVuL2FyY2gv eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTQ4Miw2ICs0ODIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGV4dDBmMzhfdGFibGUgewogICAgIFsweDU5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIs IC50d29fb3AgPSAxLCAuZDhzID0gMyB9LAogICAgIFsweDVhXSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfMTI4LCAudHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKICAgICBbMHg1Yl0gPSB7IC5zaW1kX3Np emUgPSBzaW1kXzI1NiwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxfYnlfMiB9LAorICAgIFsw eDYyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEsIC5kOHMg PSBkOHNfYncgfSwKKyAgICBbMHg2M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQs IC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c19idyB9LAogICAgIFsweDc1IC4u LiAweDc2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9 LAogICAgIFsweDc3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhz X3ZsIH0sCiAgICAgWzB4NzhdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9 IDEgfSwKQEAgLTQ4OSw2ICs0OTEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjM4X3Rh YmxlIHsKICAgICBbMHg3YSAuLi4gMHg3Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25vbmUsIC50 d29fb3AgPSAxIH0sCiAgICAgWzB4N2QgLi4uIDB4N2VdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4N2ZdID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfZnAsIC5kOHMgPSBkOHNfdmwgfSwKKyAgICBbMHg4OF0gPSB7IC5zaW1kX3Np emUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfZHEgfSwKKyAgICBb MHg4OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxLCAuZDhz ID0gZDhzX2RxIH0sCisgICAgWzB4OGFdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAs IC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c19kcSB9LAorICAgIFsweDhiXSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAx LCAuZDhzID0gZDhzX2RxIH0sCiAgICAgWzB4OGNdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNr ZWRfaW50IH0sCiAgICAgWzB4OGRdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAu ZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4OGVdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50LCAudG9fbWVtID0gMSB9LApAQCAtMTkwMSw2ICsxOTA3LDcgQEAgc3RhdGljIGJvb2wgdmNw dV9oYXMoCiAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMmJ3KCkgICAgdmNwdV9oYXMoICAgICAgICAg NywgRUJYLCAzMCwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19hdng1MTJ2bCgpICAgIHZj cHVfaGFzKCAgICAgICAgIDcsIEVCWCwgMzEsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNf YXZ4NTEyX3ZibWkoKSB2Y3B1X2hhcyggICAgICAgICA3LCBFQ1gsICAxLCBjdHh0LCBvcHMpCisj ZGVmaW5lIHZjcHVfaGFzX2F2eDUxMl92Ym1pMigpIHZjcHVfaGFzKCAgICAgICAgNywgRUNYLCAg NiwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19yZHBpZCgpICAgICAgIHZjcHVfaGFzKCAg ICAgICAgIDcsIEVDWCwgMjIsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNfY2x6ZXJvKCkg ICAgICB2Y3B1X2hhcygweDgwMDAwMDA4LCBFQlgsICAwLCBjdHh0LCBvcHMpCiAKQEAgLTg4NDAs NiArODg0NywzNiBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lm KGVhLnR5cGUgIT0gT1BfTUVNIHx8ICF2ZXgubCB8fCB2ZXgudywgRVhDX1VEKTsKICAgICAgICAg Z290byBzaW1kXzBmX2F2eDI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4 LCAweDYyKTogLyogdnBleHBhbmR7Yix3fSBbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg2Myk6IC8qIHZwY29tcHJlc3N7Yix3 fSBbeHl6XW1tLFt4eXpdbW0vbWVte2t9ICovCisgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9o YXZlKGF2eDUxMl92Ym1pMik7CisgICAgICAgIGVsZW1fYnl0ZXMgPSAxIDw8IGV2ZXgudzsKKyAg ICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4 MGYzOCwgMHg4OCk6IC8qIHZleHBhbmRwe2Qsc30gW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4ODkpOiAvKiB2cGV4cGFuZHtk LHF9IFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDhhKTogLyogdmNvbXByZXNzcHtkLHN9IFt4eXpdbW0sW3h5el1tbS9tZW17 a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDhiKTogLyogdnBj b21wcmVzc3tkLHF9IFt4eXpdbW0sW3h5el1tbS9tZW17a30gKi8KKyAgICAgICAgaG9zdF9hbmRf dmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihl dmV4LmJyLCBFWENfVUQpOworICAgICAgICBhdng1MTJfdmxlbl9jaGVjayhmYWxzZSk7CisgICAg ICAgIC8qCisgICAgICAgICAqIEZvciB0aGUgcmVzcGVjdGl2ZSBjb2RlIGJlbG93IHRoZSBtYWlu IHN3aXRjaCgpIHRvIHdvcmsgd2UgbmVlZCB0bworICAgICAgICAgKiBjb21wYWN0IG9wX21hc2sg aGVyZTogTWVtb3J5IGFjY2Vzc2VzIGFyZSBub24tc3BhcnNlIGV2ZW4gaWYgdGhlCisgICAgICAg ICAqIG1hc2sgcmVnaXN0ZXIgaGFzIHNwYXJzZWx5IHNldCBiaXRzLgorICAgICAgICAgKi8KKyAg ICAgICAgaWYgKCBsaWtlbHkoZmF1bHRfc3VwcHJlc3Npb24pICkKKyAgICAgICAgeworICAgICAg ICAgICAgbiA9IDEgPDwgKChiICYgOCA/IDIgOiA0KSArIGV2ZXgubHIgLSBldmV4LncpOworICAg ICAgICAgICAgSU1QT1NTSUJMRShlbGVtX2J5dGVzIDw9IDApOworICAgICAgICAgICAgQVNTRVJU KG9wX2J5dGVzID09IG4gKiBlbGVtX2J5dGVzKTsKKyAgICAgICAgICAgIG9wX21hc2sgJj0gfjBV TEwgPj4gKDY0IC0gbik7CisgICAgICAgICAgICBuID0gaHdlaWdodDY0KG9wX21hc2spOworICAg ICAgICAgICAgb3BfYnl0ZXMgPSBuICogZWxlbV9ieXRlczsKKyAgICAgICAgICAgIGlmICggbiAp CisgICAgICAgICAgICAgICAgb3BfbWFzayA9IH4wVUxMID4+ICg2NCAtIG4pOworICAgICAgICB9 CisgICAgICAgIGdvdG8gc2ltZF96bW07CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYo MHgwZjM4LCAweDc1KTogLyogdnBlcm1pMntiLHd9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1t bXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4N2QpOiAvKiB2 cGVybXQye2Isd30gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg4ZCk6IC8qIHZwZXJte2Isd30gW3h5el1tbS9t ZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVh dHVyZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0xMTAsNiAr MTEwLDcgQEAKIAogLyogQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVjeCAqLwogI2RlZmluZSBj cHVfaGFzX2F2eDUxMl92Ym1pICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyX1ZC TUkpCisjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZibWkyICAgIGJvb3RfY3B1X2hhcyhYODZfRkVB VFVSRV9BVlg1MTJfVkJNSTIpCiAKIC8qIENQVUlEIGxldmVsIDB4ODAwMDAwMDcuZWR4ICovCiAj ZGVmaW5lIGNwdV9oYXNfaXRzYyAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9J VFNDKQotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKQEAgLTIyOCw2 ICsyMjgsNyBAQCBYRU5fQ1BVRkVBVFVSRShBVlg1MTJfVkJNSSwgICA2KjMyKyAxKSAvCiBYRU5f Q1BVRkVBVFVSRShVTUlQLCAgICAgICAgICA2KjMyKyAyKSAvKlMgIFVzZXIgTW9kZSBJbnN0cnVj dGlvbiBQcmV2ZW50aW9uICovCiBYRU5fQ1BVRkVBVFVSRShQS1UsICAgICAgICAgICA2KjMyKyAz KSAvKkggIFByb3RlY3Rpb24gS2V5cyBmb3IgVXNlcnNwYWNlICovCiBYRU5fQ1BVRkVBVFVSRShP U1BLRSwgICAgICAgICA2KjMyKyA0KSAvKiEgIE9TIFByb3RlY3Rpb24gS2V5cyBFbmFibGUgKi8K K1hFTl9DUFVGRUFUVVJFKEFWWDUxMl9WQk1JMiwgIDYqMzIrIDYpIC8qQSAgQWRkaXRpb25hbCBB VlgtNTEyIFZlY3RvciBCeXRlIE1hbmlwdWxhdGlvbiBJbnN0cnMgKi8KIFhFTl9DUFVGRUFUVVJF KEFWWDUxMl9WUE9QQ05URFEsIDYqMzIrMTQpIC8qQSAgUE9QQ05UIGZvciB2ZWN0b3JzIG9mIERX L1FXICovCiBYRU5fQ1BVRkVBVFVSRShSRFBJRCwgICAgICAgICA2KjMyKzIyKSAvKkEgIFJEUElE IGluc3RydWN0aW9uICovCiAKLS0tIGEveGVuL3Rvb2xzL2dlbi1jcHVpZC5weQorKysgYi94ZW4v dG9vbHMvZ2VuLWNwdWlkLnB5CkBAIC0yNjYsMTAgKzI2NiwxMCBAQCBkZWYgY3J1bmNoX251bWJl cnMoc3RhdGUpOgogICAgICAgICAgICAgICAgICAgQVZYNTEyQlcsIEFWWDUxMlZMLCBBVlg1MTJf NFZOTklXLCBBVlg1MTJfNEZNQVBTLAogICAgICAgICAgICAgICAgICAgQVZYNTEyX1ZQT1BDTlRE UV0sCiAKLSAgICAgICAgIyBBVlg1MTIgZXh0ZW5zaW9ucyBhY3Rpbmcgc29sZWx5IG9uIHZlY3Rv cnMgb2YgYnl0ZXMvd29yZHMgYXJlIG1hZGUKKyAgICAgICAgIyBBVlg1MTIgZXh0ZW5zaW9ucyBh Y3RpbmcgKHNvbGVseSkgb24gdmVjdG9ycyBvZiBieXRlcy93b3JkcyBhcmUgbWFkZQogICAgICAg ICAjIGRlcGVuZGVudHMgb2YgQVZYNTEyQlcgKGFzIHRvIHJlcXVpcmluZyB3aWRlciB0aGFuIDE2 LWJpdCBtYXNrCiAgICAgICAgICMgcmVnaXN0ZXJzKSwgZGVzcGl0ZSB0aGUgU0RNIG5vdCBmb3Jt YWxseSBtYWtpbmcgdGhpcyBjb25uZWN0aW9uLgotICAgICAgICBBVlg1MTJCVzogW0FWWDUxMl9W Qk1JXSwKKyAgICAgICAgQVZYNTEyQlc6IFtBVlg1MTJfVkJNSSwgQVZYNTEyX1ZCTUkyXSwKIAog ICAgICAgICAjIFRoZSBmZWF0dXJlczoKICAgICAgICAgIyAgICogU2luZ2xlIFRocmVhZCBJbmRp cmVjdCBCcmFuY2ggUHJlZGljdG9ycwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA==