From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 27564 invoked from network); 11 Jan 2022 08:29:39 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 11 Jan 2022 08:29:39 -0000 Content-Type: multipart/mixed; boundary="===============1039710784586424682==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5BWIP=5D_New_package=3A_openjdk17-17=2E0=2E1+12?= To: ml@inbox.vuxu.org From: classabbyamp Reply-to: ml@inbox.vuxu.org Message-ID: Date: Tue, 11 Jan 2022 09:29:39 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1039710784586424682== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGNsYXNzYWJieWFtcCBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vY2xh c3NhYmJ5YW1wL3ZvaWQtcGFja2FnZXMgb3BlbmpkazE3Cmh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDk4OQoKW1dJUF0gTmV3IHBhY2thZ2U6IG9wZW5q ZGsxNy0xNy4wLjErMTIKPCEtLSBVbmNvbW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0 ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRo ZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqWUVTKip8Kipi cmllZmx5Kip8KipOTyoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFj a2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFs aXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0 aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBbc2tp cCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21h c3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbikNCmFuZCB0ZXN0IGF0 IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBj cm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBp bmcgQ0kuDQotLT4NCjwhLS0gDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0 aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQot IEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBw b3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0K ICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0OTg5LnBhdGNoIGlzIGF0dGFjaGVk --===============1039710784586424682== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34989.patch" RnJvbSBkNjQxNmZmMzZhY2ExZjIzNDJhM2Y3ZjkxNWEzZThiNzhjYzUzODNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDI6NTY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvN10gc2h1dGlsczog aW50cm9kdWNlIFhCUFNfT1JJR19NQUtFSk9CUyB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKU29tZSBwYWNrYWdlcyBjb3VsZG4ndCB3b3JrIHdlbGwgd2l0aCBYQlBT X01BS0VKT0JTLAp0aHVzIHdlIGRpc2FibGUgcGFyYWxsZWwgYnVpbGQgZm9yIHRob3NlIHBhY2th Z2VzLgoKT24gdGhlIG90aGVyIGhhbmQsIHNvbWUgcGFja2FnZXMgaW5jbHVkaW5nIGJ1dCBub3Qg bGltaXRlZCB0byBvcGVuamRrCnVzZSBhbiBpbnRlcm5hbCBtZWNoYW5pc20gdG8gYnVpbGQgdGhl bXNlbHZlcyBpbiBwYXJhbGxlbC4KCkxldCdzIGludmVudCBhbm90aGVyIHZhcmlhYmxlIGZvciB0 aG9zZSBwYWNrYWdlcy4KCihtZXNzYWdlIGJ5IHNnbikKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4g VHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0KIGNvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2NvbW1vbi5zaCB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0 aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCAx NzM5MTI0MDUwZjcuLjQ3ZmYzNjVlOWZmMiAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtNDY1LDcgKzQ2NSw5IEBAIHNldHVwX3BrZygpIHsKICAgICBERVNURElSPSRYQlBTX0RFU1RE SVIvJFhCUFNfQ1JPU1NfVFJJUExFVC8ke3NvdXJjZXBrZ30tJHt2ZXJzaW9ufQogICAgIFBLR0RF U1RESVI9JFhCUFNfREVTVERJUi8kWEJQU19DUk9TU19UUklQTEVULyR7cGtnfS0ke3ZlcnNpb259 CiAKLSAgICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgLW8gLXogIiRYQlBTX01B S0VKT0JTIiBdOyB0aGVuCisgICAgOiAke1hCUFNfTUFLRUpPQlM6PTF9CisgICAgZXhwb3J0IFhC UFNfT1JJR19NQUtFSk9CUz0ke1hCUFNfT1JJR19NQUtFSk9CUzo9JFhCUFNfTUFLRUpPQlN9Cisg ICAgaWYgWyAtbiAiJGRpc2FibGVfcGFyYWxsZWxfYnVpbGQiIF07IHRoZW4KICAgICAgICAgWEJQ U19NQUtFSk9CUz0xCiAgICAgZmkKICAgICBtYWtlam9icz0iLWokWEJQU19NQUtFSk9CUyIKCkZy b20gOTBhMTI0ZDkzNmEyZWFlMmU2MWM3N2M5YzgxMzViZmNjOGJhNzI4NiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBUdWUsIDEx IEphbiAyMDIyIDAzOjEyOjM0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzddIE5ldyBwYWNrYWdl OiBvcGVuamRrMTItYm9vdHN0cmFwLTEyLjAuMisxMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKQ28tYXV0aG9yZWQtYnk6IMSQb8OgbiBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBUYWkgQ2hpIE1pbmggUmFscGggRWFzdHdv b2QgPHRjbXJlYXN0d29vZEBnbWFpbC5jb20+Ci0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9h YXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYXJt LnBhdGNoICAgICAgICAgICAgICB8ICAyNCArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWls ZC5wYXRjaCAgICAgICAgICAgIHwgMzg3ICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211 c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgICAgICAgICAgIHwgIDQ1ICsrCiAuLi4vZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaCAgICAgICAgICAgICAgfCAxMzAgKysrKysrCiBzcmNwa2dzL29w ZW5qZGsxMi1ib290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAxMTcgKysrKysrCiA2IGZpbGVz IGNoYW5nZWQsIDcxMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0 Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisgIyBp bmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0 Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5Cisg I2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5hZGM0NTI2NjBkZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCww ICsxLDI0IEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2Fy bS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNw cAorQEAgLTcxLDkgKzcxLDIwIEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBv bGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5o PgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBv cmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBv c19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVm b3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8v CisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8g dGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNk ZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERv bid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZl IHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVp bGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ZTIzOWJm ZTc4NjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzg3IEBACitkaWZmIC0tZ2l0 IGEvbWFrZS9SZWxlYXNlRmlsZS5nbWsgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworLS0tIGEvbWFr ZS9SZWxlYXNlRmlsZS5nbWsKKysrKyBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAtNTMsNiAr NTMsNyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmlsZQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVt LCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJTSU9OX0RBVEUpIikKKyAgICQoY2FsbCBpbmZv LWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQorICAgJChj YWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIsICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIp CisrICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJMSUJDIiwgIm11c2wiKQorIGVuZGVmCisgCisg IyBQYXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0CitkaWZmIC0t Z2l0IGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtayBiL21ha2UvaG90c3BvdC9saWIv Q29tcGlsZUp2bS5nbWsKKy0tLSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysr KyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03MSw2ICs3MSw3IEBAIENG TEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJO QU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8p IicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAor KyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKK2RpZmYgLS1naXQgYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtayBiL21ha2UvbGliL0Nv cmVMaWJyYXJpZXMuZ21rCistLS0gYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysrIGIv bWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTQsNiArMTk0LDcgQEAgaWZlcSAoJChP UEVOSkRLX1RBUkdFVF9PUyksIHdpbmRvd3MpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9 ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBp Zm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMg Kz0gXAorZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcCBiL3Ny Yy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGlu dXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAK K0BAIC05OSw3ICs5OSw2IEBACisgIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5 c2NhbGwuaD4KKyAjIGluY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGli Yy12ZXJzaW9uLmg+CisgIyBpbmNsdWRlIDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2ht Lmg+CisgIyBpbmNsdWRlIDxsaW5rLmg+CitAQCAtNTE5LDYgKzUxOCwxMSBAQCB2b2lkIG9zOjpM aW51eDo6aG90c3BvdF9zaWdtYXNrKFRocmVhZCogdGhyZWFkKSB7CisgLy8gZGV0ZWN0aW5nIHB0 aHJlYWQgbGlicmFyeQorIAorIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7Cisr I2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhh cmQgY29kZSBBbHBpbmUgTGludXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncwor KyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGlu dXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBn bGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVf TElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJT SU9OKQorQEAgLTUzNiw2ICs1NDAsNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0 KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25mc3Ry KF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4OjpzZXRf bGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCitAQCAtMjg1NSwyMCArMjg2MCwzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0 Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51 bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBu dW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2 YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNp b24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUs IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5 bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZh bHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZz eW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXpl ZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2 b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYg IT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4g ZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBs aWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2Fk IHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGli bnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYg PSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwp IHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysg IHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7 CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lv biAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5v dCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6 bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJl dHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZz eW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJv b2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3g4Ni9vc19saW51eF94ODYuY3BwCistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf eDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYv b3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgor ICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFN RDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2 NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFy ZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9z aGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3No YXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hh cmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgSGVhcFdvcmQq IEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBz dGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoq cHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0g MDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2Ny YXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipz bWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAq cHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3Vy LCAianVzdCBjaGVja2luZyIpOworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRp bWUvdm1fdmVyc2lvbi5jcHAgYi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24u Y3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCisrKysg Yi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCitAQCAtMjcwLDcgKzI3 MCw3IEBAIGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9f c3RyaW5nKCkgeworICAgI2VuZGlmCisgCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VG RklYIFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRf QVJDSF9TVFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBM SUJDIFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBf X0RBVEVfXyAiICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJ TERfVVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorIAorZGlmZiAtLWdpdCBh L3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwIGIv c3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKKy0t LSBhL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBw CisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2Nj LmhwcAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsg cmV0dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBp bnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVk KExJTlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihm bG9hdCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0 ICBmKSB7IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikg eyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1z cGVjaWZpYyBkZWZpbml0aW9uIGhlcmUiCitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS9saW51 eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2 ZS9saWJuZXQvbGludXhfY2xvc2UuYworLS0tIGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUv bGlibmV0L2xpbnV4X2Nsb3NlLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xp Ym5ldC9saW51eF9jbG9zZS5jCitAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Cisg LyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dh a2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisrc3RhdGljIGludCBzaWdXYWtldXA7CisgCisgLyoK KyAgKiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRyeSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBh IGNlcnRhaW4KK0BAIC0xNDksNiArMTQ5LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNv bnN0cnVjdG9yKSkgaW5pdCgpIHsKKyAgICAgLyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBo YW5kbGVyCisgICAgICAqLworKyAgICBzaWdXYWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNh LnNhX2hhbmRsZXIgPSBzaWdfd2FrZXVwOworICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAg c2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUv bGliamF2YS9jaGlsZHByb2MuYworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq YXZhL2NoaWxkcHJvYy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv Y2hpbGRwcm9jLmMKK0BAIC0yMzQsNyArMjM0LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBj b25zdCBjaGFyICpmaWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikg ZW52cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3Yp OworLSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0 aGUgZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAv LyBsaWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3Ig dGhhdCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93 IHdoaWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3Zl X3dpdGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgewor KyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZp bGUgPT0gJ1wwJykgeworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9qZGtfdXRpbF9tZC5oIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtf dXRpbF9tZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0 aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQor ICNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorICNp bmNsdWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikgaXNuYW5mKGYpCisrI2RlZmluZSBJ U05BTkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRl ZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJh c2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jIGIvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKy0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNSw2ICsyMzUsMzkg QEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxs cCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lm ZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5k aWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgor KyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFU SCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUg ZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAg ICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhh dCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0 IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2 aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0 aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxv YWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkg dGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3Qg anVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAg ICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwg aWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2 YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8g YSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhl IG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVu dCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAg ICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBs b25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUg YWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2Fu ZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBs aWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllf UEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0 dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBX ZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24n dCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKK2RpZmYgLS1naXQg YS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYyBiL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCistLS0gYS9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworKysrIGIv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0z Niw3ICszNiw3IEBACisgI2lmZGVmIF9fbGludXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4K KyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJ TlRFUlJVUFRfU0lHTkFMIChfX1NJR1JUTUFYIC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJ R05BTCAoU0lHUlRNQVggLSAyKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAgICNpbmNsdWRlIDxw dGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2FpeF9jbG9zZS5jICovCitkaWZm IC0tZ2l0IGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hU b29sa2l0LmMgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3Qv WFRvb2xraXQuYworLS0tIGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3 dC94YXd0L1hUb29sa2l0LmMKKysrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGli YXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAorICNpbmNsdWRlIDxY MTEvWHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRlIDxYMTEvWGF0b20u aD4KKy0jaWZkZWYgX19saW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CistI2VuZGlmCisg CisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03OTEsMjYgKzc4OCw2 IEBAIEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9n ZXRFbnYKKyAgICAgcmV0dXJuIHJldDsKKyB9CisgCistI2lmZGVmIF9fbGludXhfXworLXZvaWQg cHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBzaXplX3Qgc2l6 ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXplID0gYmFja3Ry YWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwg c2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVz LlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnBy aW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7 CistfQorLSNlbmRpZgorLQorIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52 KSB7CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOworICAgc3RhdGlj IGptZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CitkaWZmIC0tZ2l0IGEvc3Jj L2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaCBiL3NyYy9qZGsuamR3 cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKy0tLSBhL3NyYy9qZGsuamR3cC5h Z2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKysrKyBiL3NyYy9qZGsuamR3cC5hZ2Vu dC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKK0BAIC0zNSwxNSArMzUsMTUgQEAKKyAjaWZk ZWYgREVCVUcKKyAgICAgLyogSnVzdCB0byBtYWtlIHN1cmUgdGhlc2UgaW50ZXJmYWNlcyBhcmUg bm90IHVzZWQgaGVyZS4gKi8KKyAgICAgI3VuZGVmIGZyZWUKKy0gICAgI2RlZmluZSBmcmVlKHAp IERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgZnJlZSBkb19ub3RfdXNl X3RoaXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAgI3VuZGVmIG1hbGxvYworLSAgICAjZGVmaW5lIG1h bGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIG1hbGxvYyBk b19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxvYworICAgICAjdW5kZWYgY2FsbG9jCistICAg ICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZp bmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfY2FsbG9jCisgICAgICN1bmRlZiBy ZWFsbG9jCistICAgICNkZWZpbmUgcmVhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNl LgorKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9yZWFsbG9j CisgICAgICN1bmRlZiBzdHJkdXAKKy0gICAgI2RlZmluZSBzdHJkdXAocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9zdHJkdXAKKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAibG9nX21lc3NhZ2VzLmgiCitkaWZm IC0tZ2l0IGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWlu dm9rZS5jIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWlu dm9rZS5jCistLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMv ZXhlaW52b2tlLmMKKysrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQ YWdlcy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcgQEAKKyAKKyAjaW5jbHVkZSA8YXNzZXJ0 Lmg+CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8YWxs b2NhLmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4KK0BAIC05 MSw2ICs5MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigpIHsKKyAgIH0KKyB9CisgCisr aW50IGdldF9qYXZhX3N0YWNrc2l6ZSAoKSB7CisrICBzaXplX3Qgc3RhY2tzaXplOworKyAgcHRo cmVhZF9hdHRyX3QgYXR0cjsKKysgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOworKworKyAgamRr X2FyZ3MudmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKKysgIEpOSV9HZXREZWZhdWx0SmF2YVZN SW5pdEFyZ3MoJmpka19hcmdzKTsKKysgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXplIDw9IDAp IHsKKysgICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2 YWx1ZSBmb3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7CisrICAgIGV4aXQoNyk7CisrICB9 CisrICByZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKKyt9CisrCisgdm9pZCAqcnVuX2ph dmFfb3ZlcmZsb3cgKHZvaWQgKnApIHsKKyAgIEpOSUVudiAqZW52OworICAgamNsYXNzIGNsYXNz X2lkOworQEAgLTI1NCwxMyArMjY5LDE5IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hh cioqIGFyZ3YpIHsKKyAgICAgZXhpdCg3KTsKKyAgIH0KKyAKKysgIGludCBzdGFja19zaXplID0g Z2V0X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFkX3QgdGhyOworKyAgcHRocmVhZF9hdHRy X3QgdGhyZWFkX2F0dHI7CisrCisrICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0dHIpOwor KyAgcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3NpemUpOwor IAorICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292ZXJmbG93 IikgPT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4iKTsKKyAK KyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhl ciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFf b3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9h dHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBO VUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3Vy IGZvciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjczLDcgKzI5NCw3IEBAIGludCBtYWluIChp bnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgTkFU SVZFX09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBh Z2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAo JnRociwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisrICAgIHB0aHJlYWRfY3Jl YXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworICAg ICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFj ayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0 Y2ggYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRi OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMvcHBjLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK1BhdGNoZXMgZm9yIG11c2wg dGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9y dHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCist LS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorKysrIG5l dy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKK0BAIC00Nyw2ICs0 Nyw4IEBACisgI2luY2x1ZGUgIm9wdG8vaW50cmluc2ljbm9kZS5ocHAiCisgI2VuZGlmCisgCisr I2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaWZkZWYgUFJPRFVDVAorICNkZWZpbmUgQkxP Q0tfQ09NTUVOVChzdHIpIC8vIG5vdGhpbmcKKyAjZWxzZQorLS0tIG9sZC9zcmMvaG90c3BvdC9j cHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL3Zt X3ZlcnNpb25fcHBjLmNwcAorQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFZNX1ZlcnNpb246OmRl dGVybWluZV9mZWF0dXJlcygpIHsKKyAgIHVuc2lnbmVkIGxvbmcgYXV4diA9IGdldGF1eHZhbChB VF9IV0NBUDIpOworIAorICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNX05PU0MpIHsKKy0g ICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAgICBpZiAoYXV4diAmIFBQ Q19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjggYW5kIFBPV0VSOSBpbiBj b21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgorICAgICAgIC8vIFRNIG9u IFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKVk0g KFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZldyBpc3N1ZXMgdGhhdCBu ZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51 eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf cHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC03NSw3ICs3NSw3IEBACisgIyBpbmNsdWRlIDxwd2Qu aD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistCisrIyBp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2lu dGVyKCkgeworICAgaW50cHRyX3QqIGNzcDsKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitAQCAtMjMsNiArMjMsOCBAQAorICAqCisg ICovCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaW5jbHVkZSAicHJlY29tcGls ZWQuaHBwIgorICNpbmNsdWRlICJydW50aW1lL2ZyYW1lLmlubGluZS5ocHAiCisgI2luY2x1ZGUg InJ1bnRpbWUvdGhyZWFkLmhwcCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTItYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApAQCAt MCwwICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDog aHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5 YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEyNiBAQAorICNkZWZpbmUg U1BFTExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysvLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBzb3VyY2U6IGh0dHBzOi8v c291cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1zeXNkZXBzL3g4Ni9mcHVf Y29udHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2JhNmJlNTg5ZTI0ZDtoYj0z YzAzYmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9sIHdvcmQgYml0cy4gIHg4 NiB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgorKyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAg IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2RlZmluZSBfRlBVX0NPTlRS T0xfSAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9uIHg4Ni02NCBvbmx5IHRo ZSB4ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0UgdW5pdC4gICovCisrCisr LyogSGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3IHRocm91Z2ggdGhlIGNv bnRyb2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAgICAgMTUtMTMgICAgMTIg IDExLTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAgICAxICAgIDAKKysgKiB8 IHJlc2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0gfCBVTSB8IE9NIHwgWk0g fCBETSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24gbWFzaworKyAqIERNOiBE ZW5vcm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2aWRlIG1hc2sKKysgKiBP TTogT3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZsb3cgbWFzaworKyAqIFBNOiBQcmVjaXNp b24gKGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJpdCBpcyAxIG1lYW5zIG5v IGludGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJvbAorKyAqIDExIC0gcm91 bmQgdG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0byBkb3VibGUgcHJlY2lz aW9uCisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisrICoKKysgKiBSQzogUm91 bmRpbmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVzdAorKyAqIDAxIC0gcm91 bmRpbmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSByb3VuZGluZyB1cCAodG93 YXJkICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGluZyB0b3dhcmQgemVybworKyAqCisrICog SUM6IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3IGFuZCA4MDI4NyBvbmx5 LgorKyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdmIHdoaWNoIHdlIHVzZS4K KysgKi8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBtYXNraW5nIG9mIGludGVy cnVwdHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNkZWZpbmUgX0ZQVV9NQVNL X0RNICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysjZGVmaW5lIF9GUFVfTUFT S19PTSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisrI2RlZmluZSBfRlBVX01B U0tfUE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9F WFRFTkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRlbmRlZCBwcmVjaXNpb24u ICAqLworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZpbmUgX0ZQVV9TSU5HTEUg ICAweDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICovCisrI2RlZmluZSBfRlBVX1JDX05FQVJF U1QgMHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2RlZmluZSBfRlBVX1JDX0RPV04gICAgMHg0 MDAKKysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZpbmUgX0ZQVV9SQ19aRVJP ICAgIDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBDMCAgLyogUmVzZXJ2ZWQg Yml0cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxpYm0gY29kZSByZXF1aXJlcyBzdHJpY3Qg SUVFRSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5kIG5vIGludGVycnVwdHMg Zm9yIGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLworKworKyNkZWZpbmUgX0ZQ VV9ERUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBhYm92ZS4gICovCisrI2Rl ZmluZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2YgdGhlIGNvbnRyb2wgd29y ZC4gICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xfdCBfX2F0dHJpYnV0ZV9f ICgoX19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUg aGFyZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisrICAgd29yayBhcm91bmQg YSBidWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGlsZV9fIGlzIHVzZWQKKysg ICB0byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNvbnRyb2wgcmVnaXN0ZXIg YW5kIHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0aWxlX18sIHRoZSBvbGQg dmFsdWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVuZGVyIGNvbXBpbGVyIG9w dGltaXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtYWNyb3MgaXMg bm90IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhhcmR3YXJlIG5vciBvbiB4 ODYtNjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlCisrICAgZXhlY3V0ZWQg aW4gdGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBvd24gY29udHJvbCBhbmQK KysgICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9HRVRDVyhjdykgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykpCisrI2RlZmluZSBfRlBV X1NFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0iICgqJmN3 KSkKKysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3RhcnR1cC4gICovCisrZXh0 ZXJuIGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsKKysKKysjZW5kaWYJLyogZnB1X2NvbnRy b2wuaCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor Ky8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKwor IGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAjaWZkZWYgU1BBUkNfV09S S1MKKyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjMxYWU4NDE1YjE1MQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZQpA QCAtMCwwICsxLDExNyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazEyLWJvb3RzdHJh cCcKK19qYXZhX3Zlcj0xMgorX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTIKK19qZGtf dXBkYXRlPTEwCitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitf YmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192 ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxMi1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVy c2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVy fXUtamRrLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVf YXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNU RElSfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGltaXRlZC1j cnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdp dGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lz dGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9 CisgLS13aXRoLWpvYnM9JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZlbmRvci1uYW1l PVZvaWQKKyAtLXdpdGgtdmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRo LXZlbmRvci1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvaXNzdWVzCisgLS13aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGli L2p2bS9vcGVuamRrMTEiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFy Z2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0 b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJl c3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFrZS1jYSBvcGVuamRrMTEiCittYWtlZGVwZW5kcz0ibGli WHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAor IGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2 ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2 ZWwiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50aW1l LSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQg KGJvb3RzdHJhcCB2ZXJzaW9uIDEyKSIKK21haW50YWluZXI9ImNsYXNzYWJieWFtcCA8ZGV2QGti Ni5lZT4iCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkgV0lUSCBDbGFzc3BhdGgtZXhjZXB0aW9uLTIu MCIKK2hvbWVwYWdlPSJodHRwczovL29wZW5qZGsuamF2YS5uZXQiCitkaXN0ZmlsZXM9Imh0dHBz Oi8vaGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hp dmUvamRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YjJiY2FkMzU2NTZiMDA5Mjg2ODM0 MTZmMzQ4MGFkMDAzNjNiMDA5OTNlYjcxMWMzZTE4ODZlNGZlNzdlZWZlYgorbGliMzJkaXNhYmxl ZD15ZXMKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24n dCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJ VCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsK KwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07 IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIg LS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6 VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQorCitwb3N0X2V4dHJhY3QoKSB7CisJ Y2htb2QgK3ggY29uZmlndXJlCisKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3Bh dGNoKCkgeworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZv ciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9y bWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgor CQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9G T1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNF PTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2 MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwkjIGNvbXBh dGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1l LWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKworCWNvbmZp Z3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1cL3Vzclwv W2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCisJ CWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUNDPSIvdXNyL2Jpbi9j YyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3VyZV9hcmdzfSBc CisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWN4eGZs YWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZMQUdTIiBcCisJ CVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0gXAorCQlPQkpEVU1Q PSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxsKCkgeworCW12ICR7 REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259LWludGVybmFsICR7 REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmluCisJcm0g LWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNlIEFTU0VNQkxZX0VY Q0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KCkZyb20gMGI0MDBhMDE1NDQ5NTg0MjdjMzI2 MTQyMmVjY2EyMGE3ZGQwNjVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2xhc3Nh YmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBUdWUsIDExIEphbiAyMDIyIDAzOjEzOjIzIC0wNTAw ClN1YmplY3Q6IFtQQVRDSCAzLzddIE5ldyBwYWNrYWdlOiBvcGVuamRrMTMtYm9vdHN0cmFwLTEz LjAuNS4xKzEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkNvLWF1dGhvcmVkLWJ5 OiDEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgpDby1hdXRo b3JlZC1ieTogVGFpIENoaSBNaW5oIFJhbHBoIEVhc3R3b29kIDx0Y21yZWFzdHdvb2RAZ21haWwu Y29tPgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8 ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAgICAgICAgfCAg MjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM4 NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAg ICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAg ICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBs YXRlICAgICAgICAgIHwgMTE3ICsrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA3MTMgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv b3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMy1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAsMCArMSwxMCBA QAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2 NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2Fh cmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNs dWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2Nv bnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xSIDMwCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2Fy bS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv YXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWRjNDUy NjYwZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03MSw5ICs3MSwyMCBAQAor ICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29u dGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBj b21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTog ZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lm IE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCAo Yml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5H UkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4CisrCisgI2Rl ZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQRUxMX1JFR19G UCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMg c3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsx My1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGUyMzliZmU3ODYzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaApAQCAtMCwwICsxLDM4NyBAQAorZGlmZiAtLWdpdCBhL21ha2UvUmVsZWFzZUZpbGUuZ21r IGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21rCisrKysg Yi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1p bmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwg IiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwg IiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9T X0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1p dGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNv bnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorZGlmZiAtLWdpdCBhL21ha2UvaG90c3BvdC9saWIv Q29tcGlsZUp2bS5nbWsgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCistLS0gYS9t YWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0Nv bXBpbGVKdm0uZ21rCitAQCAtNzEsNiArNzEsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisg ICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BP VF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9Q RU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVzbCInIFwK KyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEvbWFrZS9s aWIvQ29yZUxpYnJhcmllcy5nbWsgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworLS0tIGEv bWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVMaWJyYXJpZXMu Z21rCitAQCAtMTk0LDYgKzE5NCw3IEBAIGlmZXEgKCQoT1BFTkpES19UQVJHRVRfT1MpLCB3aW5k b3dzKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpM SV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJ QlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKK2RpZmYgLS1naXQgYS9zcmMv aG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19s aW51eC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorKysrIGIv c3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtOTksNyArOTksNiBAQAorICMg aW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxz eXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVk ZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGluay5o PgorQEAgLTUxOSw2ICs1MTgsMTEgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhU aHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lk IG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18p ICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1 cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIG9zOjpMaW51eDo6c2V0X2dsaWJj X3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJz aW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJlYWQgdmVyc2lv biBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikgfHwgXAorICAg ICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC01MzYsNiArNTQwLDcg QEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKyAgIHN0ciA9IChjaGFyICop bWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0cihfQ1NfR05VX0xJQlBUSFJFQURfVkVS U0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIp OworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTI4NTUsMjAgKzI4 NjAsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgeworIGV4dGVybiAi QyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4p IHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkg eyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBj b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQq ICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25z dCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5j OworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlh bGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExE X05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAg aWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhh bmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1 cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7Cisr fQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAx LjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNp b24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxl LCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwg ImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5k bGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWls YWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBIYW5kbGUgcmVx dWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisg Ly8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRp Y3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCog aGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFt ZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUs IG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9p bml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcCBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNw cAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisr KysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03 NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAj IGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2Nv bnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdf UlNQCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3Rl ZEhlYXAuY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAu Y3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5j cHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNw cAorQEAgLTExNDgsNyArMTE0OCw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxv Y2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVt b3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBib29sIGZp cnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0 aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0 ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNt YWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1 cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKK2Rp ZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qv c2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVu dGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3MCw3ICsyNzAsNyBAQCBjb25zdCBjaGFyKiBBYnN0 cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgor IAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCist ICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAi IGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAgIiBKUkUg KCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwK KyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQ T1RfQlVJTERfQ09NUElMRVIKKyAKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS91dGls aXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcCBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxp dGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS91 dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hh cmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQsNyArMjA0LDcg QEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQoZik7IH0KKyAj ZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsg cmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChfQUxM QlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFu ZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW4oZik7 IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9Cisg I2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbiBoZXJl IgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMK Ky0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCisr KysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworQEAg LTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFsIHRvIHVuYmxv Y2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIp OworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUg ZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0 OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGluaXQoKSB7Cisg ICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8KKysgICAg c2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2lnX3dha2V1 cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNr KTsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRw cm9jLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKy0t LSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM0LDcg KzIzNCwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7Cisg ICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAg ICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysg ICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3Qg cmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBs ZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAg ICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQg ZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgor KyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47Cisr ICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKK2RpZmYgLS1n aXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaCBiL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCistLS0gYS9zcmMv amF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3 IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhf XykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2Rl ZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUg PG1hdGguaD4KK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9q YXZhX21kX3NvbGludXguYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFf bWRfc29saW51eC5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2 YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0 IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpw OyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBM SUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAo TElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJy YXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAg ICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBo YXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBk aWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxp Ymp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVk IGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxl c3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJh cnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAg ICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxv bmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRo ZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIu Li9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJq dm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4K KysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1l bnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBw YXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9h ZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNv Ii4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBw YXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAg ICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIg d2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYg aXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9h ZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFp bCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQor KyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRo ZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLwor ICAgICByZXR1cm4gSk5JX1RSVUU7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRp dmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBf X2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4g bmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdS VE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAj ZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBk ZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmRlc2t0 b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jIGIvc3JjL2phdmEuZGVz a3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKy0tLSBhL3NyYy9q YXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysg Yi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQu YworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUg PFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXwor LSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAj aW5jbHVkZSA8am5pLmg+CitAQCAtNzkxLDI2ICs3ODgsNiBAQCBKTklFWFBPUlQganN0cmluZyBK TklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7 CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCistewor LSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsK Ky0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0 cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAo c3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9y IChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBz dHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5k b3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBj bGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJv b3RXaW5kb3cgPSBOVUxMOworZGlmZiAtLWdpdCBhL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9u YXRpdmUvbGliamR3cC91dGlsLmggYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xp Ympkd3AvdXRpbC5oCistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpk d3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3Av dXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3Qg dG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAg ICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJm YWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisg ICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBu b3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3Ro aXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJl YWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9j IGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCist ICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNk ZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisg CisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorZGlmZiAtLWdpdCBhL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYyBiL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworLS0tIGEvdGVzdC9ob3Rz cG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisrKysgYi90ZXN0 L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0z Myw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4K KysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWdu YWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAgdm9pZCBzZXRf c2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9zdGFja3NpemUg KCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisrICBK REsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24gPSBKTklfVkVS U0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtfYXJncyk7Cisr ICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmludGYoc3RkZXJy LCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0 YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpka19hcmdzLmph dmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2b2lkICpwKSB7 CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTQsMTMgKzI2OSwx OSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIGV4aXQo Nyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOwor ICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRyOworKworKyAg cHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFj a3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdjID4gMSAmJiBz dHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRm KCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBz dGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRo cmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKysKKysg ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFfb3ZlcmZsb3cs IE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50Zigi VGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIp OworQEAgLTI3Myw3ICsyOTQsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBh cmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xuIik7CisgCisg ICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIg dGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVf b3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRy LCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5V TEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIg Zm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTMt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApA QCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4 OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0 YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUv cHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9t YWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRv L2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3Ro aW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04 NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7Cisg ICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChh dXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRV UkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAg ICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBw b3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVt ZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VS OSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2Fy ZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitA QCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+ CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgor IAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBj c3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3Bw Yy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhf cHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVu dGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2 NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMg Zm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4 Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2Uy NGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2 LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNl bmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJv bSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1n bGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2Nzli Mjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1 M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1E NjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmln aHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBP bGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBf RlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhh dCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QK KysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBh cnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJl Z2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAg IDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwg UEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06 IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFz aworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBV TTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFz aworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQ QzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lv bgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8g c2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAt IHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGlu ZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDEx IC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisr ICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2Fy ZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZl YXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBV X01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQ VV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9G UFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJl Y2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSBy ZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9V QkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcg Y29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRF RCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQ ICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUg X0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysv KiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBh cml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGlu ZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisr LyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAz N2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWdu ZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7 CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4g ICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25z IG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlv biBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFj ay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciBy ZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90 ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUg d2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBw b2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVz IHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAg Ki8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3 ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3Zv bGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250 cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1 X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8g QU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0 YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICpl c3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUgYi9z cmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4wZWNhODY4NDI4NDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTcgQEAKKyMgVGVt cGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMy1ib290c3RyYXAnCitfamF2YV92ZXI9MTMKK19qYXZh X21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj01CitfamF2YV9wYXRjaF92ZXI9MQorX2pka191cGRh dGU9MQorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2Vf dmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfS4k e19qYXZhX3BhdGNoX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazEzLWJvb3RzdHJhcAordmVyc2lv bj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0i amRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVm aXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFi bGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVn PXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAt LXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lvbi1idWls ZD0kX2phdmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUworIC0td2l0aC12 ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgub3Jn LworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290LWpk az0vdXNyL2xpYi9qdm0vb3BlbmpkazEyIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCittYWtl X2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0 ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazEyLWJvb3RzdHJh cCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2 ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vw cy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwg emxpYi1kZXZlbCBsY21zMi1kZXZlbCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVy c2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBK YXZhIERldmVsb3BtZW50IEtpdCAoYm9vdHN0cmFwIHZlcnNpb24gMTMpIgorbWFpbnRhaW5lcj0i Y2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENs YXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vb3Blbmpkay5qYXZhLm5l dC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vaGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBkYXRlcy9q ZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09 YzhmZjZjZWRhNzFlYzc1YWVlZGE2ZDAzNzIwNWY2MmZiNWE1ZjRjNTlhNTcyNDA4MjAxYjRiZTlm MDBiZGEwMworbGliMzJkaXNhYmxlZD15ZXMKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3Rp bGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15 ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lm IFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwi CisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgt Ym9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQor Citwb3N0X2V4dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFS R0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50 CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBh dGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlw YXRjaCAtTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlD RkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFH Uy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3Qg aW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlD RkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7 CisJZXNhYworCisJIyBjb21wYXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZj b21tb24gLWZuby1saWZldGltZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZl dGltZS1kc2UiCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0 b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBT X0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJ ZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUg JHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJ CS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZs YWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAg Tk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3Rf aW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92 ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElS fS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2 bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGEy NGIyMTdkZDc5MjEyNGYyNjViYzdjNmRjMzE1ZTQ5NzZhMGVlYzMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVHVlLCAxMSBKYW4g MjAyMiAwMzoxMzo0NCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggNC83XSBOZXcgcGFja2FnZTogb3Bl bmpkazE0LWJvb3RzdHJhcC0xNC4wLjIrMTIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhA Z21haWwuY29tPgpDby1hdXRob3JlZC1ieTogVGFpIENoaSBNaW5oIFJhbHBoIEVhc3R3b29kIDx0 Y21yZWFzdHdvb2RAZ21haWwuY29tPgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRj aCAgICAgICAgICAgICAgfCAgMjEgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aCAgICAgICAgICAgIHwgMzcyICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy9wcGMucGF0Y2ggICAgICAgICAgICAgIHwgIDQ1ICsrKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRr MTQtYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTE1ICsrKysrKwogNiBmaWxlcyBjaGFu Z2VkLCA2OTMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv YXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290 c3RyYXAvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAv ZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNC1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0 Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNo NjQvb3NfbGludXhfYWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9h YXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAorICMgaW5jbHVk ZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgor LSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAyOQorICNkZWZp bmUgUkVHX0xSIDMwCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVu amRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwy MSBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3Bw CisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BA IC03Myw2ICs3MywxOCBAQAorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKyAjIGluY2x1ZGUgPGFz bS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRv ZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDox MTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysv LyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBp cyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lm ZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4Cisr CisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQRUxM X1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMg bWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjBkZmRlYzMwYWJjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9i dWlsZC5wYXRjaApAQCAtMCwwICsxLDM3MiBAQAorLS0tIGEvbWFrZS9SZWxlYXNlRmlsZS5nbWsK KysrKyBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAtNTMsNiArNTMsNyBAQCBkZWZpbmUgY3Jl YXRlLWluZm8tZmlsZQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiSkFWQV9WRVJTSU9OX0RB VEUiLCAiJChWRVJTSU9OX0RBVEUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX05B TUUiLCAiJChSRUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVt LCAiT1NfQVJDSCIsICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIpCisrICAkKGNhbGwgaW5mby1m aWxlLWl0ZW0sICJMSUJDIiwgIm11c2wiKQorIGVuZGVmCisgCisgIyBQYXJhbSAxIC0gVGhlIGZp bGUgY29udGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0CistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0Nv bXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAt NzMsNiArNzMsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlM RF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhP VFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9W TV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVzbCInIFwKKyAgICAgIworIAorICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCistLS0gYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysr IGIvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTAsNiArMTkwLDcgQEAgaWZlcSAo JChjYWxsIGlzVGFyZ2V0T3MsIHdpbmRvd3MpLCB0cnVlKQorIGVuZGlmCisgCisgTElCSkxJX0NG TEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwi CisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJB X0ZJTEVTICs9IFwKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorKysr IGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtMTAyLDcgKzEwMiw2IEBA CisgIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5c2NhbGwuaD4KKyAjIGluY2x1 ZGUgPHN5cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+CisgIyBp bmNsdWRlIDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2htLmg+CisgIyBpbmNsdWRlIDxs aW5rLmg+CitAQCAtNTk3LDYgKzU5NiwxMiBAQCB2b2lkIG9zOjpMaW51eDo6aG90c3BvdF9zaWdt YXNrKFRocmVhZCogdGhyZWFkKSB7CisgLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQorIAor IHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhhcmQgY29kZSBBbHBpbmUgTGlu dXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncworKyAgLy8gc2duOiBOUFRMIGlz IGNvcnJlY3QsIGRvbid0IGtub3cgYWJvdXQgZ2xpYmMgMi45LCBhbHBpbmUncyB0aGluZz8KKysg IG9zOjpMaW51eDo6c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4 OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xp YmMgYW5kIHB0aHJlYWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJ QkNfVkVSU0lPTikgfHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lP TikKK0BAIC02MTQsNiArNjE5LDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKyAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0cihf Q1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0X2xp YnB0aHJlYWRfdmVyc2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLworQEAgLTMxMTcsMjAgKzMxMjMsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNw dV9pbml0KCkgeworIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1i ZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVt YV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFp bGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9u KSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBj b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1f ZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxz ZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3lt X2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQg PSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9p ZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9 IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRs c3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGli bnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBz eW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51 bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0g ZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7 CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICBy ZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOwor IH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24g MS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3Qg ZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6Omxp Ym51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1 cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3lt X2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29s IG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgeworLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf eDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2Qu aD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRl ZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYg QU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9n Yy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2dj L3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorQEAgLTExMTYsNyArMTExNiw3IEBAIEhlYXBX b3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUs Cisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9j ayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6 ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0g IFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2Nr ICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3Vy ID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09 IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUv YWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUv YWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzQsNyArMjc0LDcgQEAgY29uc3QgY2hhciog QWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19zdHJpbmcoKSB7CisgICAjZW5k aWYKKyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZGSVggVk1fUkVMRUFTRSAiKSIg XAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBcCisrICAgICAg ICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJQkMgXAorICAgICAgICAgICIg SlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9fREFURV9fICIgIiBfX1RJTUVf XyBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlMRF9VU0VSKSAiIHdpdGggIiBI T1RTUE9UX0JVSUxEX0NPTVBJTEVSCisgCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRp ZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvdXRp bGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQsNyArMjA0LDcgQEAgaW5s aW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQoZik7IH0KKyAjZWxpZiBk ZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJu IGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChfQUxMQlNEX1NP VVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuZihmKTsg fQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyBp bmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2Vsc2UK KyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbiBoZXJlIgorLS0t IGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCitAQCAtNjAs NyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgLyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0 aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisr c3RhdGljIGludCBzaWdXYWtldXA7CisgCisgLyoKKyAgKiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRy eSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4KK0BAIC0xNDksNiArMTQ5LDcg QEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNvbnN0cnVjdG9yKSkgaW5pdCgpIHsKKyAgICAg LyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCisgICAgICAqLworKyAgICBzaWdX YWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNhLnNhX2hhbmRsZXIgPSBzaWdfd2FrZXVwOwor ICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOwor LS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCisrKysg Yi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKK0BAIC0yMzUs NyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25zdCBjaGFyICpmaWxlLAorIHsK KyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52cCA9PSBlbnZpcm9uKSB7Cisg ICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOworLSAgICAgICAgcmV0dXJuOwor KyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5v dCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGlt cGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCisr ICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhh dCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2su CisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgeworKyAgICAgICAgICAgIHJldHVybjsK KysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZpbGUgPT0gJ1wwJykgeworLS0tIGEv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKKysrKyBiL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCitAQCAtMzcsNyAr MzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfX2xp bnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0j ZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVmaW5lIElTTkFORihmKSBpc25hbihmKQor ICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICNpbmNs dWRlIDxtYXRoLmg+CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2 YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzYsNiArMjM2LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0 IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpw OyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBM SUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAo TElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJy YXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAg ICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBo YXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBk aWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxp Ymp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVk IGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxl c3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJh cnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAg ICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxv bmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRo ZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIu Li9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJq dm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4K KysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1l bnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBw YXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9h ZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNv Ii4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBw YXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAg ICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIg d2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYg aXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9h ZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFp bCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQor KyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRo ZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLwor ICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp Ym5pby9jaC9OYXRpdmVUaHJlYWQuYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0zNiw3ICszNiw3IEBACisgI2lmZGVmIF9fbGlu dXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQv bGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChfX1NJR1JUTUFY IC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoU0lHUlRNQVggLSAyKQorICNlbGlm IGRlZmluZWQoX0FJWCkKKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmlu ZWQgaW4gbmV0L2FpeF9jbG9zZS5jICovCistLS0gYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0 aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIGIvc3JjL2phdmEuZGVza3RvcC91 bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKK0BAIC0yNyw5ICsyNyw2IEBA CisgI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRlIDxYMTEvWG9zLmg+CisgI2luY2x1 ZGUgPFgxMS9YYXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18KKy0jaW5jbHVkZSA8ZXhlY2luZm8u aD4KKy0jZW5kaWYKKyAKKyAjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGpuaS5oPgorQEAg LTc4MCwyNiArNzc3LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5JQ0FMTCBKYXZhX3N1bl9hd3Rf WDExX1hUb29sa2l0X2dldEVudgorICAgICByZXR1cm4gcmV0OworIH0KKyAKKy0jaWZkZWYgX19s aW51eF9fCistdm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsKKy0gIHZvaWQgKmFycmF5WzEwXTsK Ky0gIHNpemVfdCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7CistICBzaXplX3QgaTsKKy0KKy0g IHNpemUgPSBiYWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBzdHJpbmdzID0gYmFja3RyYWNlX3N5 bWJvbHMgKGFycmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVkICV6 ZCBzdGFjayBmcmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZvciAoaSA9IDA7IGkgPCBzaXplOyBp KyspCistICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7CistCistICBm cmVlIChzdHJpbmdzKTsKKy19CistI2VuZGlmCistCisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hl bGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5V TEw7CisgICBzdGF0aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290V2luZG93ID0gTlVMTDsKKy0t LSBhL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKysrKyBi L3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKK0BAIC0zNSwx NSArMzUsMTUgQEAKKyAjaWZkZWYgREVCVUcKKyAgICAgLyogSnVzdCB0byBtYWtlIHN1cmUgdGhl c2UgaW50ZXJmYWNlcyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KKyAgICAgI3VuZGVmIGZyZWUKKy0g ICAgI2RlZmluZSBmcmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZp bmUgZnJlZSBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAgI3VuZGVmIG1hbGxv YworLSAgICAjZGVmaW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAg ICAjZGVmaW5lIG1hbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxvYworICAgICAj dW5kZWYgY2FsbG9jCistICAgICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfY2Fs bG9jCisgICAgICN1bmRlZiByZWFsbG9jCistICAgICNkZWZpbmUgcmVhbGxvYyhwKSBEbyBub3Qg dXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90X3VzZV90aGlz X2ludGVyZmFjZV9yZWFsbG9jCisgICAgICN1bmRlZiBzdHJkdXAKKy0gICAgI2RlZmluZSBzdHJk dXAocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBzdHJkdXAgZG9f bm90X3VzZV90aGlzX2ludGVyZmFjZV9zdHJkdXAKKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAibG9n X21lc3NhZ2VzLmgiCistLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJk UGFnZXMvZXhlaW52b2tlLmMKKysrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNr R3VhcmRQYWdlcy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcgQEAKKyAKKyAjaW5jbHVkZSA8 YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVk ZSA8YWxsb2NhLmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4K K0BAIC05MSw2ICs5MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigpIHsKKyAgIH0KKyB9 CisgCisraW50IGdldF9qYXZhX3N0YWNrc2l6ZSAoKSB7CisrICBzaXplX3Qgc3RhY2tzaXplOwor KyAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKysgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOworKwor KyAgamRrX2FyZ3MudmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKKysgIEpOSV9HZXREZWZhdWx0 SmF2YVZNSW5pdEFyZ3MoJmpka19hcmdzKTsKKysgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXpl IDw9IDApIHsKKysgICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2 YWxpZCB2YWx1ZSBmb3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7CisrICAgIGV4aXQoNyk7 CisrICB9CisrICByZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKKyt9CisrCisgdm9pZCAq cnVuX2phdmFfb3ZlcmZsb3cgKHZvaWQgKnApIHsKKyAgIEpOSUVudiAqZW52OworICAgamNsYXNz IGNsYXNzX2lkOworQEAgLTI1OCwxMyArMjczLDE5IEBAIGludCBtYWluIChpbnQgYXJnYywgY29u c3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgZXhpdCg3KTsKKyAgIH0KKyAKKysgIGludCBzdGFja19z aXplID0gZ2V0X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFkX3QgdGhyOworKyAgcHRocmVh ZF9hdHRyX3QgdGhyZWFkX2F0dHI7CisrCisrICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0 dHIpOworKyAgcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3Np emUpOworIAorICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292 ZXJmbG93IikgPT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4i KTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZv ciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVu X2phdmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRo cmVhZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAo dGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVo YXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjc3LDcgKzI5OCw3IEBAIGludCBt YWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgcHJpbnRmKCJcblRlc3Rp bmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1 YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2Ny ZWF0ZSAoJnRociwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisrICAgIHB0aHJl YWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwp OworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGlu ZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9w cGMucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMDZk NTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK1BhdGNoZXMgZm9y IG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9y Zy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2 MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAor KysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKK0BAIC00 Nyw2ICs0Nyw4IEBACisgI2luY2x1ZGUgIm9wdG8vaW50cmluc2ljbm9kZS5ocHAiCisgI2VuZGlm CisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaWZkZWYgUFJPRFVDVAorICNkZWZp bmUgQkxPQ0tfQ09NTUVOVChzdHIpIC8vIG5vdGhpbmcKKyAjZWxzZQorLS0tIG9sZC9zcmMvaG90 c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUv cHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFZNX1ZlcnNp b246OmRldGVybWluZV9mZWF0dXJlcygpIHsKKyAgIHVuc2lnbmVkIGxvbmcgYXV4diA9IGdldGF1 eHZhbChBVF9IV0NBUDIpOworIAorICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNX05PU0Mp IHsKKy0gICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAgICBpZiAoYXV4 diAmIFBQQ19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjggYW5kIFBPV0VS OSBpbiBjb21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgorICAgICAgIC8v IFRNIG9uIFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRo ZSBKVk0gKFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZldyBpc3N1ZXMg dGhhdCBuZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC03NSw3ICs3NSw3IEBACisgIyBpbmNsdWRl IDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+Cist CisrIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFj a19wb2ludGVyKCkgeworICAgaW50cHRyX3QqIGNzcDsKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitAQCAtMjMsNiArMjMsOCBAQAor ICAqCisgICovCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaW5jbHVkZSAicHJl Y29tcGlsZWQuaHBwIgorICNpbmNsdWRlICJydW50aW1lL2ZyYW1lLmlubGluZS5ocHAiCisgI2lu Y2x1ZGUgInJ1bnRpbWUvdGhyZWFkLmhwcCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0 LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVuamRr MTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRj aApAQCAtMCwwICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBs aW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFl MTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEyNiBAQAorICNk ZWZpbmUgU1BFTExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBzb3VyY2U6IGh0 dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1zeXNkZXBzL3g4 Ni9mcHVfY29udHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2JhNmJlNTg5ZTI0 ZDtoYj0zYzAzYmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisrLy8gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9sIHdvcmQgYml0 cy4gIHg4NiB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBM aWJyYXJ5LgorKyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGgg dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2RlZmluZSBfRlBV X0NPTlRST0xfSAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9uIHg4Ni02NCBv bmx5IHRoZSB4ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0UgdW5pdC4gICov CisrCisrLyogSGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3IHRocm91Z2gg dGhlIGNvbnRyb2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAgICAgMTUtMTMg ICAgMTIgIDExLTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAgICAxICAgIDAK KysgKiB8IHJlc2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0gfCBVTSB8IE9N IHwgWk0gfCBETSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24gbWFzaworKyAq IERNOiBEZW5vcm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2aWRlIG1hc2sK KysgKiBPTTogT3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZsb3cgbWFzaworKyAqIFBNOiBQ cmVjaXNpb24gKGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJpdCBpcyAxIG1l YW5zIG5vIGludGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJvbAorKyAqIDEx IC0gcm91bmQgdG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0byBkb3VibGUg cHJlY2lzaW9uCisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisrICoKKysgKiBS QzogUm91bmRpbmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVzdAorKyAqIDAx IC0gcm91bmRpbmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSByb3VuZGluZyB1 cCAodG93YXJkICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGluZyB0b3dhcmQgemVybworKyAq CisrICogSUM6IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3IGFuZCA4MDI4 NyBvbmx5LgorKyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdmIHdoaWNoIHdl IHVzZS4KKysgKi8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBtYXNraW5nIG9m IGludGVycnVwdHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNkZWZpbmUgX0ZQ VV9NQVNLX0RNICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysjZGVmaW5lIF9G UFVfTUFTS19PTSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisrI2RlZmluZSBf RlBVX01BU0tfUE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29udHJvbCAqLworKyNkZWZpbmUg X0ZQVV9FWFRFTkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRlbmRlZCBwcmVj aXNpb24uICAqLworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZpbmUgX0ZQVV9T SU5HTEUgICAweDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICovCisrI2RlZmluZSBfRlBVX1JD X05FQVJFU1QgMHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2RlZmluZSBfRlBVX1JDX0RPV04g ICAgMHg0MDAKKysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZpbmUgX0ZQVV9S Q19aRVJPICAgIDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBDMCAgLyogUmVz ZXJ2ZWQgYml0cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxpYm0gY29kZSByZXF1aXJlcyBz dHJpY3QgSUVFRSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5kIG5vIGludGVy cnVwdHMgZm9yIGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLworKworKyNkZWZp bmUgX0ZQVV9ERUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBhYm92ZS4gICov CisrI2RlZmluZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2YgdGhlIGNvbnRy b2wgd29yZC4gICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xfdCBfX2F0dHJp YnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9yIGFjY2Vzc2lu ZyB0aGUgaGFyZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisrICAgd29yayBh cm91bmQgYSBidWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGlsZV9fIGlzIHVz ZWQKKysgICB0byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNvbnRyb2wgcmVn aXN0ZXIgYW5kIHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0aWxlX18sIHRo ZSBvbGQgdmFsdWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVuZGVyIGNvbXBp bGVyIG9wdGltaXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtYWNy b3MgaXMgbm90IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhhcmR3YXJlIG5v ciBvbiB4ODYtNjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlCisrICAgZXhl Y3V0ZWQgaW4gdGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBvd24gY29udHJv bCBhbmQKKysgICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9HRVRDVyhjdykg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykpCisrI2RlZmlu ZSBfRlBVX1NFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0i ICgqJmN3KSkKKysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3RhcnR1cC4gICov CisrZXh0ZXJuIGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsKKysKKysjZW5kaWYJLyogZnB1 X2NvbnRyb2wuaCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKworIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAjaWZkZWYgU1BB UkNfV09SS1MKKyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90 ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI2ZDUwZjg3 ODIwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1w bGF0ZQpAQCAtMCwwICsxLDExNSBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazE0LWJv b3RzdHJhcCcKK19qYXZhX3Zlcj0xNAorX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTIK K19qZGtfdXBkYXRlPTEyCitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zl cn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZh X3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNC1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jh c2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2ph dmFfdmVyfXUtamRrLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25m aWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQ U19ERVNURElSfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGlt aXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0K KyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxj bXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JF9qYXZh X3ZlcgorIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVuZG9yLW5h bWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdp dGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vzci9s aWIvanZtL29wZW5qZGsxMyIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9jaGVja190 YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBh dXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGli cmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIG9wZW5qZGsxMy1ib290c3RyYXAiCittYWtl ZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhy YW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwg ZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2 ZWwgbGNtczItZGV2ZWwgb3BlbmpkazEzLWJvb3RzdHJhcCIKK3Byb3ZpZGVzPSJqYXZhLWVudmly b25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVz Yz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtpdCAoYm9vdHN0cmFwIHZlcnNpb24gMTQpIgor bWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAt b25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVu amRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pk ay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oi CitjaGVja3N1bT1kZmIzNjA3ZjFiNjc1NDU4ZjI5YTE4NWE0MGYxZGJiZjg5NjQzOWNmMzNiM2Fh MGYzZDg5ZGYyOTdlNjA0OTM1Citub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFs bGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMg bm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K KwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIk X3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZp Z3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJH RVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRr LWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkKKworcG9zdF9l eHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJD IiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9 CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07 IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8K KwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLU5w MSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZMQUdTPSR7 Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9S VElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNhc2UK KwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZMQUdTKz0i IC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7OworCWVzYWMK KworCSMgY29tcGF0aWJpbGl0eSB3aXRoIEdDQyAxMC54CisJQ0ZMQUdTKz0iIC1mY29tbW9uIC1m bm8tbGlmZXRpbWUtZHNlIgorCUNYWEZMQUdTKz0iIC1mY29tbW9uIC1mbm8tbGlmZXRpbWUtZHNl IgorCisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNy b290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUi IF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9 Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29uZmlndXJlICR7Y29uZmln dXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgt ZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExE RkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBc CisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwo KSB7CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0t aW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xp Yi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2Ug QVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQoKRnJvbSAyMTVlOTk3Njcz MjYwMWY5MGUwMzIyYzQzNDUzMzY3ZjUyNWNkNTg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwgMTEgSmFuIDIwMjIgMDM6 MTQ6MjEgLTA1MDAKU3ViamVjdDogW1BBVENIIDUvN10gTmV3IHBhY2thZ2U6IG9wZW5qZGsxNS1i b290c3RyYXAtMTUuMC4zKzMKCkNvLWF1dGhvcmVkLWJ5OiBUYWkgQ2hpIE1pbmggUmFscGggRWFz dHdvb2QgPHRjbXJlYXN0d29vZEBnbWFpbC5jb20+Ci0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMv YXJtLnBhdGNoICAgICAgICAgICAgICB8ICAyMSArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoICAgICAgICAgICAgfCAzNzIgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMv bXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysrCiAuLi4vZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAgICAgICAgICAgICAgfCAxMzAgKysrKysrCiBzcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAxMTEgKysrKysrCiA2IGZp bGVzIGNoYW5nZWQsIDY4OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE1LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3Blbmpk azE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFy Y2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisg IyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250 ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5 CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAt MCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4 X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJt LmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYg YmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9h cm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2Vu ICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhl IE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1 ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdS RUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZp bmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwg c28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3Ny Y3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MGRmZGVjMzBhYmMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0gYS9tYWtlL1JlbGVhc2VG aWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBAIGRl ZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZF UlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVt LCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1m aWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2Fs bCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFtIDEg LSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90c3Bv dC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5n bWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RT UE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RS Tz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJH RVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisg CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMu Z21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBA QCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBM SUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9 XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJK TElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXgu Y3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIsNyAr MTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgor ICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24u aD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGlu Y2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3Rz cG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJy YXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFs cGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBzZ246 IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRo aW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBv czo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8g U2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9D U19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVB RF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVh ZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBj b25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4 OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2No ZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4o aW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3lt X2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIq IHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBo YW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGlj IGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl ZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9 IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0 aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgewor KyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAg aWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICBy ZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8g bG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAv LyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51 eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZv aWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09 IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4g ZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFf MS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wg dmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9s IGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpM aW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsK Ky0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVy biBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQor IAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1 ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4K Ky0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAor ICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90 L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv c2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcg QEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBt aW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2Ny YXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90 IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmlu aXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3Jh dGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxv Y2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJl dl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3ICsyNzQsNyBAQCBjb25z dCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsK KyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxF QVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwK KysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAg ICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAi IF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIg d2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJl L3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgYi9zcmMvaG90c3BvdC9z aGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQs NyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsgfQor ICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikg eyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKF9B TExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNu YW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbihm KTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0K KyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9uIGhl cmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2Uu YworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMK K0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1 bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVgg LSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMg b25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2 ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkg eworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisr ICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193 YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2Ff bWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9j LmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYwor QEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZp bGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmly b24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICBy ZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRl ciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9l cyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNv IGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVt ZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9m YWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAg cmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7 CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAor KysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BA IC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZp bmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0 aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlz bmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgp CisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkgQEAgUmVxdWlyZXNTZXRl bnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAg IGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lmZGVmIF9fbGludXgKKysj aWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYg KHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBt dXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4K KysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJq YXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2Fs bHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAg ICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNv bnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRl bmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2Fk ZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAg KgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVz aW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5h bWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5n IGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAg ICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQg ZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25z IGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdp bGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRy eSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJs aWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAg KiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQK KysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhl IGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdo ZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5k ZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJl Zm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOwor KyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0 byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklH SU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9u YXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZk ZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVk IGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9f U0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIp CisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFs c28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3NyYy9qYXZhLmRlc2t0b3Av dW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2YS5k ZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkg KzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4K KyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxl eGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5p Lmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmluZyBKTklDQUxMIEphdmFf c3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNp ZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJy YXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBp OworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNr dHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0 YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8 IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsK Ky0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hhd3Rf cm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2lu ZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cgPSBO VUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwu aAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAor QEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ug c3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYg ZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysg ICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5k ZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9j CisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHAp IERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3Rf dXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVm aW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0 cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNs dWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0 YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRp bWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNp bmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgor ICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0 cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgewor ICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFj a3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2Fy Z3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dl dERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFT dGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0 IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAg ZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysK KyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7Cisg ICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGludCBh cmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50 IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7Cisr ICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0 aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwg c3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0 X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZF UkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBO VUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgm dGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVh ZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQg cGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4LDcg QEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYo IlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysg ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxv dywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRm KCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxu Iik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0 Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5l bGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYy MGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNw cAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIK KyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNU CisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xk L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQg Vk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2 ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I VE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAg IGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBh bmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisg ICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0 ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3 IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAj IGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRl eHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJy ZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsy Myw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNs dWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhw cCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv eDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2 IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNv dXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5 c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2 YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wg d29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVm aW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24g eDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1 bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcg dGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAg ICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAg IDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8 IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBt YXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZp ZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisr ICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0 IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9s CisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRv IGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysg KgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0 CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJv dW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6 ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcg YW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Yg d2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1h c2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2Rl ZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNk ZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysj ZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisr I2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVu ZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmlu ZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5l IF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVf UkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmlu ZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMw ICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJl cXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQg bm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisr CisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFi b3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0 aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90 IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3Ig YWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysg ICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxl X18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29u dHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRp bGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5k ZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRo ZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFy ZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUK KysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93 biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dF VENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkK KysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAi IDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFy dHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRp ZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNp ZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u OGVhMTlhZjk5MmZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0 cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTExIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVu amRrMTUtYm9vdHN0cmFwJworX2phdmFfdmVyPTE1CitfamF2YV9taW5fdmVyPTAKK19qYXZhX3Nl Y192ZXI9MworX2pka191cGRhdGU9MworX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtf amF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0u JHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTUtYm9vdHN0cmFwCit2ZXJzaW9u PSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJq ZGske19qYXZhX3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQorY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLXByZWZp eD0ke1hCUFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJs ZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9 c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0t d2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxk PSRfamF2YV92ZXIKKyAtLXdpdGgtam9icz0kWEJQU19PUklHX01BS0VKT0JTCisgLS13aXRoLXZl bmRvci1uYW1lPVZvaWQKKyAtLXdpdGgtdmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcv CisgLS13aXRoLXZlbmRvci1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRr PS91c3IvbGliL2p2bS9vcGVuamRrMTQiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2Vf Y2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRl cworIGxpYnJlc3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFrZS1jYSBvcGVuamRrMTQtYm9vdHN0cmFw IgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZl bCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBz LWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6 bGliLWRldmVsIGxjbXMyLWRldmVsIGhhcmZidXp6LWRldmVsIG9wZW5qZGsxNC1ib290c3RyYXAi Citwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50aW1lLSR7 dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQgKGJv b3RzdHJhcCB2ZXJzaW9uIDE1KSIKK21haW50YWluZXI9ImNsYXNzYWJieWFtcCA8ZGV2QGtiNi5l ZT4iCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkgV0lUSCBDbGFzc3BhdGgtZXhjZXB0aW9uLTIuMCIK K2hvbWVwYWdlPSJodHRwOi8vb3Blbmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8v aGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUv amRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09NGJiZDdhNzMzNTRhMmQyNDRjN2EwNzU0 MDYzMzlhYTBjZTRjNWZjNmJlOTFhNzk1YWY5MzFmNmRjOTVkMDY3Yworbm9jcm9zcz15ZXMKKwor IyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3Bh cmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIF91c2VfemVybz15ZXMg OzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0i IGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXpl cm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9h cmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7 OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRr LmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVT RElSL31cbiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29u ZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhG TEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBm b3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJ CXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJ X0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdz Ly0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQor CWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJs ZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJ Li9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIk Q0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0 aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBT VFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZ Cit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5q ZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAt cmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGli L3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNF Cit9CgpGcm9tIGJmYmE1MGZiYTk0MzEyNjA2Y2U4MjJlOWE4NjM4NTA3OTIzOTBhZDEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTog VHVlLCAxMSBKYW4gMjAyMiAwMzoxNDo1NiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggNi83XSBOZXcg cGFja2FnZTogb3BlbmpkazE2LWJvb3RzdHJhcC0xNi4wLjIrNwoKQ28tYXV0aG9yZWQtYnk6IFRh aSBDaGkgTWluaCBSYWxwaCBFYXN0d29vZCA8dGNtcmVhc3R3b29kQGdtYWlsLmNvbT4KLS0tCiAu Li4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4u L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDIxICsKIC4uLi9m aWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3MiArKysrKysrKysr KysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAgICAgICAgICB8 ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8 IDEzMCArKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAg ICB8IDExMSArKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNjg5IGluc2VydGlvbnMoKykKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3BwYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBh dGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJj aDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE2YzVk NGQyYmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysg Yi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAor QEAgLTc0LDcgKzc0LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5o PgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+Cisg CisgI2RlZmluZSBSRUdfRlAgMjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9z cmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwMjQyOGYxMGYzMwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3Bh dGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAKKyAjIGluY2x1ZGUg PHVjb250ZXh0Lmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhh Y2sgYXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoK KysvLworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBv cGVyYXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAg IF5+fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBm b3JjZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisr I2VuZGlmCisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3Ai CisgCisgLy8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQg aXMgbm90IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQu CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjYwZGZkZWMzMGFiYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzNzIgQEAK Ky0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtawor QEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZv LWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAk KGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUp IikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVf T1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBl bmRlZgorIAorICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlz dAorLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3Rz cG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJ T04gOj0gXAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAg ICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1E Q1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0n Im11c2wiJyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIGEvbWFr ZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21r CitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEgKCQoY2FsbCBpc1RhcmdldE9zLCB3aW5kb3dzKSwg dHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJK TElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9M SUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxFUyArPSBcCistLS0gYS9zcmMvaG90c3Bv dC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xp bnV4LmNwcAorQEAgLTEwMiw3ICsxMDIsNiBAQAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBp bmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVk ZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVk ZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGluay5oPgorQEAgLTU5Nyw2ICs1OTYsMTIgQEAg dm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRl dGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9p bml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18p CisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUg c2V0dGluZ3MKKysgIC8vIHNnbjogTlBUTCBpcyBjb3JyZWN0LCBkb24ndCBrbm93IGFib3V0IGds aWJjIDIuOSwgYWxwaW5lJ3MgdGhpbmc/CisrICBvczo6TGludXg6OnNldF9nbGliY192ZXJzaW9u KCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBU TCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5n cy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAgICAgIWRlZmlu ZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNjE0LDYgKzYxOSw3IEBAIHZvaWQg b3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhu LCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0 ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5k aWYKKyB9CisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK0BAIC0zMTE3LDIwICszMTIzLDM2IEBA IHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4gIkMiIEpOSUVY UE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBl eHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorIAor K3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hh ciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5 bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciog dmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0 YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxpemVkKSB7 CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9ORVhULCAi ZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlmIChkbHZz eW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5h bWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJuIGY7Cisr ICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30KKysKKyAv LyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4xIChBUEkg djEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9uIGluc3Rl YWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3Qg Y2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1h XzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxlLCBuYW1l KTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFu ZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8g bG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8vIFJldHVy biBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZl cnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwg Y29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJu dW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAi bGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsK Ky0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysr IGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtNzUs OSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBp bmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9jb250 cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JT UAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3Bw CisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAK K0BAIC0xMTE2LDcgKzExMTYsNyBAQCBIZWFwV29yZCogR2VuQ29sbGVjdGVkSGVhcDo6YWxsb2Nh dGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92 ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgeworICAgYm9vbCBmaXJz dCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMgdGhp cyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIs ICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpzbWFs bGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChjdXIp IHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7CistLS0g YS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCisrKysg Yi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCitAQCAt Mjc0LDcgKzI3NCw3IEBAIGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNpb246OmludGVybmFs X3ZtX2luZm9fc3RyaW5nKCkgeworICAgI2VuZGlmCisgCisgICAjZGVmaW5lIElOVEVSTkFMX1ZF UlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBD UFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9B UkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVp bHQgb24gIiBfX0RBVEVfXyAiICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhP VFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorIAorLS0t IGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAK KysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2Mu aHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyBy ZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGlu dCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQo TElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZs b2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQg IGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7 IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNw ZWNpZmljIGRlZmluaXRpb24gaGVyZSIKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZl L2xpYm5ldC9saW51eF9jbG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9s aWJuZXQvbGludXhfY2xvc2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgewor IC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdX YWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8q CisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8g YSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChj b25zdHJ1Y3RvcikpIGluaXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwg aGFuZGxlcgorICAgICAgKi8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBz YS5zYV9oYW5kbGVyID0gc2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAg IHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRp dmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1LDcgKzIzNSwxMyBAQCBKREtfZXhlY3ZwZShpbnQg bW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNo YXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoq KSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVz IHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAg ICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4v c2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29k ZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8v IGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VY RUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAg aWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9qZGtfdXRpbF9tZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvamRrX3V0aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5lIElTTkFORChkKSBp c25hbihkKQorICNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BTExCU0RfU09V UkNFKQorICNpbmNsdWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikgaXNuYW5mKGYpCisr I2RlZmluZSBJU05BTkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQor ICNlbGlmIGRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLS0tIGEvc3JjL2phdmEu YmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBiL3NyYy9qYXZh LmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitAQCAtMjM2LDYgKzIz NiwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIg KmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAK KysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0Igor KyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAg IC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFS WV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZl IHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgor KyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5z ZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2Fk ZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciBy ZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAq IG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVp bmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRl ZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4s IG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysg ICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dl dmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBs aWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2Vz cyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNv KSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVw ZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisr ICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2gg dGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgs IHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQg YSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sg Zm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElC UkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbwor KyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAg ICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAg IC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBk b2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworLS0tIGEv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAt MzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+ CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUg SU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9T SUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8 cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworLS0t IGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0 LmMKKysrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9Y VG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAorICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KKyAj aW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRlIDxYMTEvWGF0b20uaD4KKy0jaWZkZWYgX19s aW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CistI2VuZGlmCisgCisgI2luY2x1ZGUgPGp2 bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODAsMjYgKzc3Nyw2IEBAIEpOSUVYUE9SVCBq c3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9nZXRFbnYKKyAgICAgcmV0 dXJuIHJldDsKKyB9CisgCistI2lmZGVmIF9fbGludXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9p ZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipz dHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXplID0gYmFja3RyYWNlIChhcnJheSwgMTAp OworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6ZSk7CistCistICBm cHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7Cist CistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAi JXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgor LQorIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52KSB7CisgICBzdGF0aWMg amNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOworICAgc3RhdGljIGptZXRob2RJRCBtZXRo b2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUv bmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0 aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisg ICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhl cmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNl IHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8g bm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90 aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNh bGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBk b19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAg ICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2Rl ZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5k ZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVw CisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIGEvdGVzdC9ob3Rz cG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisrKysgYi90ZXN0 L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0z Myw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4K KysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWdu YWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAgdm9pZCBzZXRf c2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9zdGFja3NpemUg KCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisrICBK REsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24gPSBKTklfVkVS U0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtfYXJncyk7Cisr ICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmludGYoc3RkZXJy LCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0 YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpka19hcmdzLmph dmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2b2lkICpwKSB7 CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTgsMTMgKzI3Mywx OSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIGV4aXQo Nyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOwor ICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRyOworKworKyAg cHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFj a3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdjID4gMSAmJiBz dHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRm KCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBz dGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRo cmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKysKKysg ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFfb3ZlcmZsb3cs IE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50Zigi VGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIp OworQEAgLTI3Nyw3ICsyOTgsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBh cmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xuIik7CisgCisg ICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIg dGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVf b3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRy LCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5V TEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIg Zm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApA QCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4 OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0 YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUv cHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9t YWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRv L2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3Ro aW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04 NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7Cisg ICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChh dXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRV UkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAg ICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBw b3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVt ZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VS OSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2Fy ZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitA QCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+ CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgor IAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBj c3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3Bw Yy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhf cHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVu dGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2 NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMg Zm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4 Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2Uy NGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2 LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNl bmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJv bSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1n bGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2Nzli Mjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1 M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1E NjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmln aHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBP bGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBf RlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhh dCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QK KysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBh cnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJl Z2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAg IDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwg UEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06 IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFz aworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBV TTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFz aworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQ QzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lv bgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8g c2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAt IHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGlu ZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDEx IC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisr ICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2Fy ZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZl YXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBV X01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQ VV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9G UFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJl Y2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSBy ZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9V QkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcg Y29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRF RCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQ ICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUg X0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysv KiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBh cml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGlu ZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisr LyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAz N2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWdu ZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7 CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4g ICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25z IG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlv biBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFj ay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciBy ZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90 ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUg d2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBw b2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVz IHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAg Ki8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3 ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3Zv bGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250 cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1 X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8g QU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0 YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICpl c3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUgYi9z cmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi42YmRlZjZmOTYxMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTEgQEAKKyMgVGVt cGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxNi1ib290c3RyYXAnCitfamF2YV92ZXI9MTYKK19qYXZh X21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT03CitfamRrX2hvbWU9InVz ci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zl cn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsx Ni1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCity ZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVyc2lvbn0t JHtfamRrX3VwZGF0ZX0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJn cz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxlLXVubGltaXRlZC1jcnlw dG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgt Z2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVt CisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JF9qYXZhX3ZlcgorIC0t d2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAor IC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9y LWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1 ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29w ZW5qZGsxNSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9pbnN0YWxsX2FyZ3M9IklO U1RBTExfUFJFRklYPVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3Iv bGliXCIiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2Vk ZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBj YS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3Blbmpk azE1LWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2 ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVy Ym8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRj b25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1kZXZlbCBvcGVuamRr MTUtYm9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGph dmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxv cG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNikiCittYWludGFpbmVyPSJjbGFzc2FiYnlh bXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4 Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZp bGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUv amRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YjRhMGU3MWU0MWExMTE3NWU4YTdjMWRi YTg2ZWQ1YjBhYTg3ODQxMzE1OGM4ZDQ4ODEzZGIxYjY0YWM5NTM2Yworbm9jcm9zcz15ZXMKKwor IyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3Bh cmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIF91c2VfemVybz15ZXMg OzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0i IGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXpl cm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9h cmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7 OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRr LmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVT RElSL31cbiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29u ZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhG TEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBm b3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJ CXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJ X0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdz Ly0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQor CWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJs ZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJ Li9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIk Q0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0 aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBT VFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZ Cit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5q ZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAt cmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGli L3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNF Cit9CgpGcm9tIGY4OTg3NGQwZWUwYjVkYTUwZjEzNDQ2Y2NiNTk3ZDBjZDVlZmY5YTIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTog VHVlLCAxMSBKYW4gMjAyMiAwMzoxNzoxOSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggNy83XSBOZXcg cGFja2FnZTogb3BlbmpkazE3LTE3LjAuMSsxMgoKQ28tYXV0aG9yZWQtYnk6IFRhaSBDaGkgTWlu aCBSYWxwaCBFYXN0d29vZCA8dGNtcmVhc3R3b29kQGdtYWlsLmNvbT4KLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjcGtncy9vcGVu amRrMTctZG9jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mvb3Blbmpk azE3LXNyYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vZmlsZXMvbXVzbF9w YXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL29wZW5qZGsxNy9maWxl cy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoICAgIHwgIDIxICsKIC4uLi9vcGVuamRrMTcvZmlsZXMv bXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoICB8IDM3MiArKysrKysrKysrKysrKysrKysKIC4uLi9v cGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICB8ICA0NSArKysKIC4uLi9v cGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAgICB8IDEzMCArKysrKysKIHNy Y3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDIwMSArKysrKysr KysrCiA5IGZpbGVzIGNoYW5nZWQsIDc4NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAw MDAgc3JjcGtncy9vcGVuamRrMTctZG9jCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9vcGVu amRrMTctc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5q ZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94 ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZQoK ZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDk5OWQzYWQ3 MTRiOC4uMWI4YzU1YWVmZWJkIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1v bi9zaGxpYnMKQEAgLTQwOTcsMyArNDA5Nyw5IEBAIGxpYmttYWlsY29uZmlybWJlZm9yZWRlbGV0 aW5nLnNvLjUga2RlcGltLWFkZG9ucy0yMS4wOC4zXzEKIGxpYmthZGRyZXNzYm9va3ByaXZhdGUu c28uNSBrYWRkcmVzc2Jvb2stMjEuMDguM18xCiBsaWJjb2RlYzIuc28uMS4wIGNvZGVjMi0xLjAu MV8xCiBsaWJ4ODZlbXUuc28uMyBsaWJ4ODZlbXUtMy40XzEKK2xpYmphd3Quc28gb3BlbmpkazE3 LTE3LjAuMSsxMl8xCitsaWJhd3Quc28gb3BlbmpkazE3LTE3LjAuMSsxMl8xCitsaWJhd3RfeGF3 dC5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmphdmEuc28gb3BlbmpkazE3LTE3LjAuMSsx Ml8xCitsaWJqbGkuc28gb3BlbmpkazE3LTE3LjAuMSsxMl8xCitsaWJqdm0uc28gb3BlbmpkazE3 LTE3LjAuMSsxMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy1kb2MgYi9zcmNwa2dz L29wZW5qZGsxNy1kb2MKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45 OWFiMWNiMWIwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1kb2MKQEAg LTAsMCArMSBAQAorb3BlbmpkazE3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTctc3JjIGIvc3JjcGtncy9vcGVuamRrMTctc3JjCm5ldyBm aWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOTlhYjFjYjFiMGQyCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTctc3JjCkBAIC0wLDAgKzEgQEAKK29wZW5qZGsx NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcv ZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEw IEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJj aDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhf YWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGlu Y2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVf Y29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gg Yi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApA QCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xp bnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhf YXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMg aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4g aWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51 eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRv a2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8g VGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2 YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUg TkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNk ZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVz ZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9v cGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjBkZmRlYzMwYWJjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAg KzEsMzcyIEBACistLS0gYS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNl RmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAk KGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFU RSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklM RV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVM RUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAi bXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBN T0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBi L21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFH U19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1F KSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicg XAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAg ICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK Ky0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGli cmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywg d2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxB R1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0Vf RVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEv c3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9s aW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmlu Zy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4K Ky0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4K KyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiAr NTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQp IHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6Omxp YnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf X1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBj b21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25v dyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xp YmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3Zl cnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJz aW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisg ICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTks NyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIg KiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9W RVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0 cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCAr MzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJu ICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4u LikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJl KSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUs IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9p ZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNv bnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1 bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0 aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJU TERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisr ICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMo aGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJl dHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsK Kyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9u IDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVy c2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5k bGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1l LCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhh bmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZh aWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSBy ZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4K KyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFy dGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lk KiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBu YW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1h X2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4 Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNw cAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9s bC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRl IDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVH X1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0 ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3Rl ZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhl YXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJs b2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAg IGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3Qi IG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21h bGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBO VUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3 aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2lu ZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9u LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9u LmNwcAorQEAgLTI3NCw3ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9u OjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJ TlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3Ig IiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBD UFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJ TkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5 ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElM RVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9u c19nY2MuaHBwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5p dGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91 YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQor IGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxp ZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQg Z19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lz bmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihk b3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBw bGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xp bnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51 eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYg c3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRp YyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1 cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0 b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0 dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0 aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0g MjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAg PSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4 ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBO VUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxl LCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVD IGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBt dXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFj ayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2gg dG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisr ICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJu byAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9 CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJ U05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf QUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlz bmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkg aXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBh L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysg Yi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAg LTIzNiw2ICsyMzYsMzkgQEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgewor ICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2lu dGVyICovCisgCisrI2lmZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMg bm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDAp IHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVz IExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0 bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisr ICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBp biB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5 IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRp ZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgK KysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBl bmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBi ZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAg ICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxs eSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZt LnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0 byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRv IGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICog bGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAg ICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBv bmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMg bm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxv YWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBj b25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5z dGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAg ICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxp YmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAg ICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVm IEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJl Y2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJV RTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVh ZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJl YWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8 cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCist ICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJ TlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAg I2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3Nl LmMgKi8KKy0tLSBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3 dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94 YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1 dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+Cist I2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNp bmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBK TklFWFBPUlQganN0cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52 CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50 X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7Cist ICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAo YXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUp OworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIs IHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYg KHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0K Ky0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgewor ICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0 aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cgPSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFn ZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50 L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRl ZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBu b3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkg RG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2Vf dGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFs bG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRv X25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAg I2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJl YWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Uu CisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MK KyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRo aXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJm YWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBh L3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYwor KysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9r ZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVk ZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5j bHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBA IHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFf c3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBh dHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9u ID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRr X2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJp bnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUg ZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBq ZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAo dm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4 LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgewor ICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFj a3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0 cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0 dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJn YyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7Cisg ICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYo IlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7 CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVM TCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZh X292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAg ICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwg dGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25z dCBjaGFyKiogYXJndikgeworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dc biIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIg Zm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBy dW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0 aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9p biAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2Ug YmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29w ZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcv ZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0 Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5l bGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYy MGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNw cAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIK KyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNU CisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xk L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQg Vk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2 ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I VE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAg IGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBh bmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisg ICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0 ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3 IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAj IGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRl eHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJy ZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsy Myw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNs dWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhw cCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3 L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQ YXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBp bmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgw NjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51 eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVi cCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRh a2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9n aXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5 OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJj Mzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZu ZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAg Q29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0 ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNp Zm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBO b3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRv ZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBk aXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICog KGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAg Ny02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8 IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgor KyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVy YW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNr CisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1 bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAq CisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBw cmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJv dW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisr ICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dh cmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkK KysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29u dHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUg aGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNs dWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZp bmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVm aW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2Rl ZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKwor Ky8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8q IGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBf RlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJv dW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVD T01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQ VV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysj ZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisr CisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVj aXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywg cm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3 ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAg ICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVm IHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19I SV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9s IHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2 ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29t YmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAg IGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNl ZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKwor KyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBh bnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxv YXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIg ZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdp c3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNt X18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1 bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xf dCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2Vu ZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3Vy cmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIg dm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUgYi9zcmNw a2dzL29wZW5qZGsxNy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjFkNWJjYTUyOTgzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3 L3RlbXBsYXRlCkBAIC0wLDAgKzEsMjAxIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRr MTcnCitfamF2YV92ZXI9MTcKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0xCitfamRr X3VwZGF0ZT0xMgorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9Igor X2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNf dmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTcKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtf amRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7 X2Jhc2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0ZX0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl Citjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxl LXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1z eXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13 aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9 JF9qYXZhX3ZlcgorIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVu ZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8K KyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMiCittYWtlX2J1aWxkX2FyZ3M9 ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBkb2NzKSIKK21ha2VfaW5zdGFsbF9hcmdzPSJJTlNUQUxM X1BSRUZJWD1cIiR7WEJQU19ERVNURElSfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYlwi IgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2Vy dGlmaWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIgorbWFrZWRlcGVu ZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHIt ZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0 eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxj bXMyLWRldmVsIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEt cnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1l bnQgS2l0IgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKK2xpY2Vuc2U9 IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9tZXBhZ2U9Imh0 dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29w ZW5qZGsvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2No ZWNrc3VtPThjMDc2MjAzYTZmODVhYjkxNmIzZTU0ZGUxOTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhk NTJjYTdhZmI5ZjAyZDEKK3NobGliX3Byb3ZpZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28g bGliamF2YS5zbyBsaWJqbGkuc28gbGlianZtLnNvIGxpYmphd3Quc28iCisKKyMgQnVpbGQgaXMg c3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWls ZD15ZXMKK2J1aWxkX29wdGlvbnM9ImRvY3MiCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMy CitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3Vz ZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFr ZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0t dmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGMqKSBj b25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tT aXplPTI1NjAiOzsKKwllc2FjCitmaQorY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRr LWp2bWFyZ3M9LVhsb2c6ZGlzYWJsZSIKKworY2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGluCisJ Z2xpYmMpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBkb2NzIjs7Citlc2FjCisKK2lmIFsgISAi JENST1NTX0JVSUxEIiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNi1ib290 c3RyYXAiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9v cGVuamRrMTYiCitlbHNlCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNyIKKwljb25maWd1 cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNyIKK2ZpCisK K2FsdGVybmF0aXZlcz0iCisgamF2YTovdXNyL2Jpbi9qYXZhOi91c3IvbGliL2p2bS9vcGVuamRr MTcvYmluL2phdmEKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jp bi9qanMKKyBqYXZhOi91c3IvYmluL2tleXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4v a2V5dG9vbAorIGphdmE6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jp bi9wYWNrMjAwCisgamF2YTovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmlu L3JtaWQKKyBqYXZhOi91c3IvYmluL3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrMTcv YmluL3JtaXJlZ2lzdHJ5CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZtL29w ZW5qZGsxNy9iaW4vdW5wYWNrMjAwCisKKyBqZGs6L3Vzci9iaW4vamFvdGM6L3Vzci9saWIvanZt L29wZW5qZGsxNy9iaW4vamFvdGMKKyBqZGs6L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVu amRrMTcvYmluL2phcgorIGpkazovdXNyL2Jpbi9qYXJzaWduZXI6L3Vzci9saWIvanZtL29wZW5q ZGsxNy9iaW4vamFyc2lnbmVyCisgamRrOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5q ZGsxNy9iaW4vamF2YQorIGpkazovdXNyL2Jpbi9qYXZhYzovdXNyL2xpYi9qdm0vb3BlbmpkazE3 L2Jpbi9qYXZhYworIGpkazovdXNyL2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrMTcv YmluL2phdmFkb2MKKyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9i aW4vamF2YXAKKyBqZGs6L3Vzci9iaW4vamNtZDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9q Y21kCisgamRrOi91c3IvYmluL2pjb25zb2xlOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pj b25zb2xlCisgamRrOi91c3IvYmluL2pkYjovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qZGIK KyBqZGs6L3Vzci9iaW4vamRlcHJzY2FuOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pkZXBy c2NhbgorIGpkazovdXNyL2Jpbi9qZGVwczovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qZGVw cworIGpkazovdXNyL2Jpbi9qaHNkYjovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qaHNkYgor IGpkazovdXNyL2Jpbi9qaW1hZ2U6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamltYWdlCisg amRrOi91c3IvYmluL2ppbmZvOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2ppbmZvCisgamRr Oi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qanMKKyBqZGs6L3Vzci9i aW4vamxpbms6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamxpbmsKKyBqZGs6L3Vzci9iaW4v am1hcDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qbWFwCisgamRrOi91c3IvYmluL2ptb2Q6 L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vam1vZAorIGpkazovdXNyL2Jpbi9qcHM6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vanBzCisgamRrOi91c3IvYmluL2pydW5zY3JpcHQ6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vanJ1bnNjcmlwdAorIGpkazovdXNyL2Jpbi9qc2hlbGw6L3Vz ci9saWIvanZtL29wZW5qZGsxNy9iaW4vanNoZWxsCisgamRrOi91c3IvYmluL2pzdGFjazovdXNy L2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qc3RhY2sKKyBqZGs6L3Vzci9iaW4vanN0YXQ6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vanN0YXQKKyBqZGs6L3Vzci9iaW4vanN0YXRkOi91c3IvbGli L2p2bS9vcGVuamRrMTcvYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9rZXl0b29sOi91c3IvbGli L2p2bS9vcGVuamRrMTcvYmluL2tleXRvb2wKKyBqZGs6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xp Yi9qdm0vb3BlbmpkazE3L2Jpbi9wYWNrMjAwCisgamRrOi91c3IvYmluL3JtaWM6L3Vzci9saWIv anZtL29wZW5qZGsxNy9iaW4vcm1pYworIGpkazovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9v cGVuamRrMTcvYmluL3JtaWQKKyBqZGs6L3Vzci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIvanZt L29wZW5qZGsxNy9iaW4vcm1pcmVnaXN0cnkKKyBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi91c3Iv bGliL2p2bS9vcGVuamRrMTcvYmluL3NlcmlhbHZlcgorIGpkazovdXNyL2Jpbi91bnBhY2syMDA6 L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vdW5wYWNrMjAwCisiCisKK3Bvc3RfZXh0cmFjdCgp IHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVz bCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0 X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJ CWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2df bm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRm IgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8t RF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09V UkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9F TEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25m aWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9JFhCUFNf Q1JPU1NfQkFTRX0KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF0gJiYgWyAteiAiJENST1NTX0JVSUxE IiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwkJQ0M9Ii91 c3IvYmluL2NjIgorCQlDWFg9Ii91c3IvYmluL2MrKyIKKwlmaQorCS4vY29uZmlndXJlICR7Y29u ZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdp dGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0i JExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSRO TSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3Rh bGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwltdiAke0RFU1RESVJ9L3Vz ci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRf amRrX2hvbWUKKwl2bWtkaXIgJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkKKwltYWtlLWNhIC1nIC1m IC0tZGVzdGRpciAiJHtQV0R9L2NhIiAtayAiJHtERVNURElSfS8kX2pka19ob21lL2Jpbi9rZXl0 b29sIgorCW12IC4vY2EvZXRjL3BraS90bHMvamF2YS9jYWNlcnRzICR7REVTVERJUn0vJF9qZGtf aG9tZS9saWIvc2VjdXJpdHkvCisJY2htb2QgLVIgdWdvK3J3IC4vY2EKKwlybSAtcmYgLi9jYQor CXZta2RpciBldGMvcHJvZmlsZS5kCisJY2F0ID4+JHtERVNURElSfS9ldGMvcHJvZmlsZS5kLzEw X29wZW5qZGsxNy5zaCA8PC1FT0YKKwlleHBvcnQgSkFWQV9IT01FPVwke0pBVkFfSE9NRT0vJF9q ZGtfaG9tZX0KKwlFT0YKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBM SUNFTlNFCit9CisKK29wZW5qZGsxNy1kb2NfcGFja2FnZSgpIHsKKwlub3N0cmlwPXllcworCW5v dmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0X2Rlc2MrPSIgLS0g ZG9jdW1lbnRhdGlvbiIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJY2QgJHt3cmtzcmN9CisJCWlmIFsg IiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgorCQkJbG9jYWwgX2RvY2Rpcj11c3Ivc2hhcmUv ZG9jL29wZW5qZGskX2phdmFfdmVyCisJCQl2bWtkaXIgJF9kb2NkaXIKKwkJCWNwIC1hIGJ1aWxk L2xpbnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RFU1RESVJ9LyRfZG9jZGlyCisJCWZpCisJCXZt b3ZlICRfamRrX2hvbWUvbWFuL21hbjEKKwl9Cit9CisKK29wZW5qZGsxNy1zcmNfcGFja2FnZSgp IHsKKwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXll cworCXNob3J0X2Rlc2MrPSIgLS0gc291cmNlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg IiRfamRrX2hvbWUvbGliL3NyYy56aXAiCisJfQorfQo= --===============1039710784586424682==--