From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 26178 invoked from network); 22 May 2022 08:58:04 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 May 2022 08:58:04 -0000 Content-Type: multipart/mixed; boundary="===============8226511426121621817==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm13?= To: ml@inbox.vuxu.org From: motorto Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 22 May 2022 10:58:03 +0200 List-Id: Message-ID: <20220522085803.Qu-EOVCi4XDReanfkrm3tX0XZRsVVQWDGG-uN2Gr0HU@z> GitHub notification mails are now in MIME to allow UTF8. --===============8226511426121621817== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW90b3J0byBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vbW90 b3J0by92b2lkLXBhY2thZ2VzIGxsdm0xMwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkKCkxsdm0xMwpUaGlzIGFkZHMgTExWTSAxMyBhbmQgdXBk YXRlcyBmcm9tIExMVk0gMTIuDQoNCldvcmstaW4tcHJvZ3Jlc3MNCg0KVGhlIGZvbGxvd2luZyBw YWNrYWdlcyB3ZXJlIHJlbW92ZWQ6DQogKiBiZWlnbmV0IC0tIHVwc3RyZWFtIGlzIGRlYWQNCiAq IHJ1bmRpcmQgLS0gIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdXBzdHJlYW0gd2hpY2ggcmVjb21t ZW5kcyB1c2luZyBkdW1iX3J1bnRpbWVfZGlyDQoNClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2Vy ZSB1cGRhdGVkIG9yIHBhdGNoZWQ6DQogKiBTUElSVi1MTFZNLVRyYW5zbGF0b3INCiAqIFNQSVJW LUhlYWRlcnMNCiAqIGlzcGMNCiAqIHJpdmVyDQogKiB6aWcNCg0KUmVidWlsdCBwYWNrYWdlczoN Cg0KKHJlYnVpbHQgYmFzZWQgb24gb3V0cHV0IG9mOiAgYHhyZXZzaGxpYiBsaWJsbHZtezEyLDEz fWAgKQ0KDQoNCiogYmNjDQoqIGJwZnRyYWNlIA0KKiBjY2xzIA0KKiBjbGF6eSANCiogY29kZWxp dGUgDQoqIGdoZGwNCiogZ25vbWUtYnVpbGRlcg0KKiBpbmNsdWRlLXdoYXQteW91LXVzZSANCiog anVDaSsrIA0KKiBrZGV2ZWxvcCANCiogbGRjDQoqIG1lc2EgDQoqIHF0NSANCiogcnRhZ3MgDQoq IHJ1c3QNCiogc2hpYm9rZW4yIA0KKiB0aWxpeA0KDQpVcGRhdGVkIFRlbXBsYXRlczoNCg0KKiBD aHJvbWl1bQ0KDQooSSBhbSBwcm9iYWJseSBtaXNzaW5nIHNvbWUgcGFja2FnZXMpDQoNCg0KVGhh bmtzIEBEQkxvdWlzIGZvciB5b3VyIGhhcmQgd29yayEgDQoNCiBbY2kgc2tpcF0NCiANCiBJIG51 a2VkIHRoZSAjMzU4OTUKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNjIyOS5wYXRjaCBpcyBhdHRhY2hlZA== --===============8226511426121621817== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm13-36229.patch" RnJvbSAxZjQ2ZDhmOWQyMjI1ZjVjMDlhMmQ0ZDA4NDE4ODhjOWM0ZDk5MDgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9u aT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAy MDIxIDE2OjIxOjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8zMF0gTmV3IHBhY2thZ2U6IGxs dm0xMy0xMy4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6ZXIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1leHRyYSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL2xpYmxsdm0xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4u Li9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSArCiAuLi5j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgKysKIC4uLi9w YXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKwogLi4u L2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKwogLi4uL2Nv bXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggICAgICAgIHwgIDExICsKIC4uLi9jb21w aWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCAgICB8ICAzNSArKwogLi4uL3BhdGNo ZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyICsrKwogc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCAgICAgIHwgIDI2ICsrCiBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggICAgICAgfCAgMjIgKwogLi4uL2xsdm0xMy9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIHwgIDExICsKIHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoICAgICB8ICAyNSArKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggIHwgIDYzICsrKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxICsrCiBzcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAgNTcgKysrCiAuLi4vcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoICAgfCAgMzAgKysKIC4uLi9wYXRjaGVzL2xsdm0t MDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAxMSArCiAuLi4vcGF0Y2hlcy9sbHZtLTAw NC1vdmVycmlkZS1vcHQucGF0Y2ggICAgICAgfCAgMTggKwogLi4uL2xsdm0xMy9wYXRjaGVzL2xs dm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggIHwgIDM2ICsrCiAuLi4vcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggICAgfCAgMjUgKysKIC4uLi9sbHZtMTMvcGF0Y2hlcy9wcGMz Mi1jb21waWxlci1ydC5wYXRjaCAgICB8ICAyMSArCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCA0MjMgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xMy91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogNDIgZmlsZXMgY2hh bmdlZCwgMTE2NSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL2xpYmxsdm0xMwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x My9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVz bC1lbGZ2Mi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv Y29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAw Mi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IDA1ODEwOTY2NDY1OC4uODg2ODhkN2VlMGRhIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3MywxMSArOTczLDEyIEBAIGxpYnVjaGFyZGV0LnNvLjAg dWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZp ZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIg Y29uZnVzZS0zLjIuMV8xCi1saWJsbGRiLnNvLjEyIGxsZGItMTIuMC4wXzEKLWxpYmNsYW5nLnNv LjEyIGxpYmNsYW5nLTEyLjAuMF8xCi1saWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmctY3BwLTEy LjAuMF8xCitsaWJsbGRiLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNs YW5nLTEzLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTMgbGliY2xhbmctY3BwLTEzLjAuMF8xCiBs aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTIt MTIuMC4wXzEKK2xpYkxMVk0tMTMuc28gbGlibGx2bTEzLTEzLjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpAQCAtNDE3MCwzICs0MTcxLDEyIEBAIGxpYlRocmVh ZC5zbyByb290LTYuMjQuMDZfMQogbGliVE1WQS5zbyByb290LTYuMjQuMDZfMQogbGliTWF0aENv cmUuc28gcm9vdC02LjI0LjA2XzEKIGxpYmxvd2Rvd24uc28gbG93ZG93bi0wLjExLjJfMQorbGli b21wLnNvIGxpYm9tcC0xMy4wLjBfMQorbGlib21wdGFyZ2V0LnJ0bC5hbWRncHUuc28gbGlib21w LTEzLjAuMF8xCitsaWJvbXB0YXJnZXQucnRsLmN1ZGEuc28gbGlib21wLTEzLjAuMF8xCitsaWJv bXB0YXJnZXQucnRsLng4Nl82NC5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYmFyY2hlci5zbyBsaWJv bXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYmxsZGJJbnRl bEZlYXR1cmVzLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYkxUTy5zby4xMyBsbHZtMTMtMTMuMC4w XzEKK2xpYlJlbWFya3Muc28uMTMgbGx2bTEzLTEzLjAuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L2NsYW5nIGIvc3JjcGtncy9jbGFuZwppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAx MjAwMDAKLS0tIGEvc3JjcGtncy9jbGFuZworKysgYi9zcmNwa2dzL2NsYW5nCkBAIC0xICsxIEBA Ci1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVyIGIvc3Jj cGtncy9jbGFuZy1hbmFseXplcgppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAw MDAKLS0tIGEvc3JjcGtncy9jbGFuZy1hbmFseXplcgorKysgYi9zcmNwa2dzL2NsYW5nLWFuYWx5 emVyCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZt MTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NsYW5n LXRvb2xzLWV4dHJhIGIvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQppbmRleCBjZDYwZmQ3YTk4 MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQor KysgYi9zcmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmNsYW5nIGIvc3JjcGtncy9saWJjbGFuZwppbmRleCBj ZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjbGFuZwor KysgYi9zcmNwa2dzL2xpYmNsYW5nCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpYmNsYW5nLWNwcCBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCmluZGV4IGNk NjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmNsYW5nLWNw cAorKysgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHggYi9zcmNwa2dzL2xpYmN4eAppbmRleCBjZDYwZmQ3 YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHgKKysrIGIvc3Jj cGtncy9saWJjeHgKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGliY3h4LWRldmVsIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFi Li5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4LWRldmVsCisrKyBiL3Ny Y3BrZ3MvbGliY3h4LWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmN4eGFiaSBiL3NyY3BrZ3MvbGliY3h4YWJpCmluZGV4IGNkNjBmZDdhOTgx Yi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmN4eGFiaQorKysgYi9zcmNw a2dzL2xpYmN4eGFiaQpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJjeHhhYmktZGV2ZWwgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbAppbmRleCBjZDYw ZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHhhYmktZGV2 ZWwKKysrIGIvc3JjcGtncy9saWJjeHhhYmktZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlibGx2bTEzIGIvc3JjcGtncy9saWJsbHZtMTMKbmV3 IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5kNjM2NmQ3ZDNiOTUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmxsdm0xMwpAQCAtMCwwICsxIEBACitsbHZtMTMKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9tcCBiL3Ny Y3BrZ3MvbGlib21wCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0g YS9zcmNwa2dzL2xpYm9tcAorKysgYi9zcmNwa2dzL2xpYm9tcApAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJvbXAtZGV2ZWwgYi9zcmNwa2dzL2xpYm9t cC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3Jj cGtncy9saWJvbXAtZGV2ZWwKKysrIGIvc3JjcGtncy9saWJvbXAtZGV2ZWwKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkIGIvc3JjcGtncy9sbGQKaW5k ZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkCisr KyBiL3NyY3BrZ3MvbGxkCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xsZC1kZXZlbCBiL3NyY3BrZ3MvbGxkLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4u ZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsZC1kZXZlbAorKysgYi9zcmNwa2dz L2xsZC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbGRiIGIvc3JjcGtncy9sbGRiCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEy MDAwMAotLS0gYS9zcmNwa2dzL2xsZGIKKysrIGIvc3JjcGtncy9sbGRiCkBAIC0xICsxIEBACi1s bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZGItZGV2ZWwgYi9zcmNwa2dzL2xs ZGItZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGxkYi1kZXZlbAorKysgYi9zcmNwa2dzL2xsZGItZGV2ZWwKQEAgLTEgKzEgQEAKLWxs dm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQgYi9zcmNwa2dz L2xsdm0tbGlidW53aW5kCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kCisrKyBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS1saWJ1 bndpbmQtZGV2ZWwgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCmluZGV4IGNkNjBmZDdh OTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRl dmVsCisrKyBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0x MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL2ZpbGVzL2xsdm0tQ29uZmlnLWxs dm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xMy9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZp Zy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmZhMDhjOWJlNjk2 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2 bS1jb25maWcuaApAQCAtMCwwICsxLDkgQEAKKyNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CisK KyNpZiBfX1dPUkRTSVpFID09IDMyCisjaW5jbHVkZSAibGx2bS1jb25maWctMzIuaCIKKyNlbGlm IF9fV09SRFNJWkUgPT0gNjQKKyNpbmNsdWRlICJsbHZtLWNvbmZpZy02NC5oIgorI2Vsc2UKKyNl cnJvciAiVW5rbm93biB3b3JkIHNpemUiCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIv c3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNp b24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNGVhYTc3 ODNlN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAw MS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApAQCAtMCwwICsxLDQ0IEBACitGcm9t IDM1Mjk3NDE2OWYwZDJiNWRhM2Q1MzIxZjU4OGY1ZTNiNTk0MTMzMGUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+CitE YXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MTQ6NTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzdd IGZpeCB1bndpbmQgY2hhaW4gaW5jbHVzaW9uCisKKy0tLQorIGxpYi9IZWFkZXJzL3Vud2luZC5o IHwgOSArKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL0hlYWRlcnMvdW53aW5kLmggYi9saWIvSGVhZGVy cy91bndpbmQuaAoraW5kZXggMzAzZDc5Mi4uNDRlMTBjYyAxMDA2NDQKKy0tLSBhL2NsYW5nL2xp Yi9IZWFkZXJzL3Vud2luZC5oCisrKysgYi9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAorQEAg LTksOSArOSw2IEBACisgCisgLyogU2VlICJEYXRhIERlZmluaXRpb25zIGZvciBsaWJnY2NfcyIg aW4gdGhlIExpbnV4IFN0YW5kYXJkIEJhc2UuKi8KKyAKKy0jaWZuZGVmIF9fQ0xBTkdfVU5XSU5E X0gKKy0jZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKy0KKyAjaWYgZGVmaW5lZChfX0FQUExFX18p ICYmIF9faGFzX2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+KQorIC8qIERhcndpbiAoZnJvbSAxMS54 IG9uKSBwcm92aWRlIGFuIHVud2luZC5oLiBJZiB0aGF0J3MgYXZhaWxhYmxlLAorICAqIHVzZSBp dC4gbGlidW53aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRlZmluaXRpb25zIGluICNpZmRlZiBfR05V X1NPVVJDRSwKK0BAIC0zOSw2ICszNiw5IEBACisgIyBlbmRpZgorICNlbHNlCisgCisrI2lmbmRl ZiBfX0NMQU5HX1VOV0lORF9ICisrI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICisrCisgI2luY2x1 ZGUgPHN0ZGludC5oPgorIAorICNpZmRlZiBfX2NwbHVzcGx1cworQEAgLTMyMiw2ICszMjIsNyBA QCBfVW53aW5kX1B0ciBfVW53aW5kX0dldFRleHRSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRl eHQgKik7CisgfQorICNlbmRpZgorIAorKyNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCisr CisgI2VuZGlmCisgCistI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKy0tIAorMi41LjEK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRy aXBsZXMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjU2 ODhkNDBkYmMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFu Zy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApAQCAtMCwwICsxLDExMCBAQAorLS0tIGEvY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIv VG9vbENoYWlucy9HbnUuY3BwCitAQCAtMjA4Niw3ICsyMDg2LDggQEAgdm9pZCBHZW5lcmljX0dD Qzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1IRlRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LWdudWVh YmloZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFy bXY3aGwtcmVkaGF0LWxpbnV4LWdudWVhYmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhcm12NmhsLXN1c2UtbGludXgtZ251ZWFiaSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3aGwtc3VzZS1saW51 eC1nbnVlYWJpIn07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdsLWxpbnV4LWdudWVhYmloZiJ9OworICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViTGliRGlyc1tdID0geyIvbGliIn07CisgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJUcmlwbGVzW10gPSB7ImFybWViLWxpbnV4LWdudWVh YmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm1l Yi1saW51eC1hbmRyb2lkZWFiaSJ9OworQEAgLTIxNTMsOCArMjE1NCw3IEBAIHZvaWQgR2VuZXJp Y19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisg ICAgICAgInBvd2VycGM2NC1zdXNlLWxpbnV4IiwgInBvd2VycGMtbW9udGF2aXN0YS1saW51eHNw ZSJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTGliRGlyc1tdID0geyIvbGli MzIiLCAiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFVHJpcGxlc1td ID0geyJwb3dlcnBjbGUtbGludXgtZ251IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLXVua25vd24tbGludXgtZ251IiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLWxpbnV4LW11 c2wifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG93 ZXJwY2xlLXVua25vd24tbGludXgtZ251In07CisgCisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDNjRMaWJEaXJzW10gPSB7Ii9saWI2NCIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgUFBDNjRUcmlwbGVzW10gPSB7CitAQCAtMjIzNSw2ICsyMjM1LDg3IEBAIHZv aWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJl Zml4ZXMoCisgICAgIHJldHVybjsKKyAgIH0KKyAKKysgIGlmIChUYXJnZXRUcmlwbGUuaXNNdXNs KCkpIHsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRNdXNsVHJpcGxlc1td ID0geyJhYXJjaDY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IEFSTUhGTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJhcm0tbGludXgtbXVzbGVhYmloZiIs ICJhcm12N2wtbGludXgtbXVzbGVhYmloZiIKKysgICAgfTsKKysgICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7ImFybS1saW51eC1tdXNsZWFiaSJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2XzY0TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0 LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlw bGVzW10gPSB7Imk2ODYtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgTUlQU011c2xUcmlwbGVzW10gPSB7CisrICAgICAgICAibWlwcy1saW51eC1tdXNsIiwgIm1p cHNlbC1saW51eC1tdXNsIiwKKysgICAgICAgICJtaXBzZWwtbGludXgtbXVzbGhmIiwgIm1pcHMt bGludXgtbXVzbGhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBD TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBQUENMRU11c2xUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1tdXNs In07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NE11c2xUcmlwbGVzW10gPSB7 InBvd2VycGM2NC1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQ UEM2NExFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0bGUtbGludXgtbXVzbCJ9OworKworKyAg ICBzd2l0Y2ggKFRhcmdldFRyaXBsZS5nZXRBcmNoKCkpIHsKKysgICAgY2FzZSBsbHZtOjpUcmlw bGU6OmFhcmNoNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMp LCBlbmQoQUFyY2g2NExpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdp bihBQXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAg QmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExp YkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0 TXVzbFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjphcm06CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o QVJNTGliRGlycyksIGVuZChBUk1MaWJEaXJzKSk7CisrICAgICAgaWYgKFRhcmdldFRyaXBsZS5n ZXRFbnZpcm9ubWVudCgpID09IGxsdm06OlRyaXBsZTo6TXVzbEVBQklIRikgeworKyAgICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNSEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11 c2xUcmlwbGVzKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKEFSTU11c2xUcmlwbGVzKSwgZW5kKEFSTU11c2xUcmlwbGVzKSk7CisrICAgICAg fQorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2XzY0OgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykp OworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwg ZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVn aW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4NjoKKysgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJp cGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMp LCBlbmQoWDg2XzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjptaXBzOgorKyAgICAgIExpYkRpcnMu YXBwZW5kKGJlZ2luKE1JUFNMaWJEaXJzKSwgZW5kKE1JUFNMaWJEaXJzKSk7CisrICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oTUlQU011c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJp cGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjOgorKyAg ICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOwor KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQ Q011c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRM aWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOwor KyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjbGU6CisrICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBD TEVNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0 TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJp cGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGly cykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMp LCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJl Z2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJz KSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVz KSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5k KGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVz bFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsK KysgICAgfQorKyAgICBUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhUYXJnZXRUcmlwbGUuc3RyKCkp OworKyAgICBpZiAoVGFyZ2V0VHJpcGxlLnN0cigpICE9IEJpYXJjaFRyaXBsZS5zdHIoKSkKKysg ICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhCaWFyY2hUcmlwbGUuc3RyKCkpOwor KyAgICByZXR1cm47CisrICB9CisrCisgICAvLyBBbmRyb2lkIHRhcmdldHMgc2hvdWxkIG5vdCB1 c2UgR05VL0xpbnV4IHRvb2xzIG9yIGxpYnJhcmllcy4KKyAgIGlmIChUYXJnZXRUcmlwbGUuaXNB bmRyb2lkKCkpIHsKKyAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRBbmRyb2lk VHJpcGxlc1tdID0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0w MDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNo ZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40YWQ2NDEyZDFlNmMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtl ci1wYXRoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9v bENoYWlucy9MaW51eC5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51 eC5jcHAKK0BAIC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWlj TGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKKyAgICAgTG9hZGVyID0gImxkLnNv LjEiOworICAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKy0gICAgTGli RGlyID0gImxpYjY0IjsKKy0gICAgTG9hZGVyID0KKy0gICAgICAgICh0b29sczo6cHBjOjpoYXNQ UENBYmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKKy0g ICAgYnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKKyAgICAgTGliRGlyID0g ImxpYjY0IjsKKyAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNo ZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMjFmYzgwMDNjNWYxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaApAQCAt MCwwICsxLDQ4IEBACistLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorKysrIGIv Y2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKK0BAIC00MTUsMTEgKzQxNSwxMCBAQCBwdWJs aWM6CisgICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91Ymxl KCk7CisgICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxlOjpw cGM2NGxlKSkgeworICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7Cist ICAgICAgQUJJID0gImVsZnYyIjsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBEYXRhTGF5b3V0ID0g IkUtbTplLWk2NDo2NC1uMzI6NjQiOworLSAgICAgIEFCSSA9ICJlbGZ2MSI7CisgICAgIH0KKysg ICAgQUJJID0gImVsZnYyIjsKKyAKKyAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8IFRy aXBsZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgeworICAgICAgIExvbmdEb3Vi bGVXaWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OworLS0tIGEvY2xhbmcvbGliL0NvZGVHZW4v VGFyZ2V0SW5mby5jcHAKKysrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCitA QCAtMTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdlbk1v ZHVsZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7CisgICAgICAgcmV0dXJuIFNldENHSW5mbyhu ZXcgQUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKKyAKKyAg ICAgaWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKKy0gICAgICBQUEM2NF9TVlI0X0FC SUluZm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7CistICAgICAg aWYgKGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCistICAgICAgICBLaW5kID0gUFBD NjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFCSUtp bmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7CisrICAgICAgaWYgKGdldFRhcmdl dCgpLmdldEFCSSgpID09ICJlbGZ2MSIpCisrICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9BQklJ bmZvOjpFTEZ2MTsKKyAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxvYXRB QkkgPT0gInNvZnQiOworIAorICAgICAgIHJldHVybiBTZXRDR0luZm8oCistLS0gYS9jbGFuZy9s aWIvRHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rv b2xDaGFpbnMvQ2xhbmcuY3BwCitAQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6OkFk ZFBQQ1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKKyAgIGNvbnN0IGxsdm06OlRyaXBs ZSAmVCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOworICAgaWYgKFQuaXNPU0JpbkZvcm1h dEVMRigpKSB7CisgICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7CistICAg IGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogeworLSAgICAgIGlmICgoVC5pc09TRnJlZUJTRCgp ICYmIFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKy0gICAgICAgICAgVC5pc09TT3Bl bkJTRCgpIHx8IFQuaXNNdXNsKCkpCistICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKy0gICAg ICBlbHNlCistICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKKy0gICAgICBicmVhazsKKy0gICAg fQorKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisgICAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NGxlOgorICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworICAgICAgIGJyZWFrOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVjb250 ZXh0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODkz YzA1OWQ3YjhkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21w aWxlci1ydC1hYXJjaDY0LXVjb250ZXh0LnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2Nv bXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAub3JpZwor KysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNw cAorQEAgLTE3OTksNyArMTc5OSw3IEBACisgCisgc3RhdGljIGJvb2wgQWFyY2g2NEdldEVTUih1 Y29udGV4dF90ICp1Y29udGV4dCwgdTY0ICplc3IpIHsKKyAgIHN0YXRpYyBjb25zdCB1MzIga0Vz ck1hZ2ljID0gMHg0NTUzNTIwMTsKKy0gIHU4ICphdXggPSB1Y29udGV4dC0+dWNfbWNvbnRleHQu X19yZXNlcnZlZDsKKysgIHU4ICphdXggPSByZWludGVycHJldF9jYXN0PHU4ICo+KHVjb250ZXh0 LT51Y19tY29udGV4dC5fX3Jlc2VydmVkKTsKKyAgIHdoaWxlICh0cnVlKSB7CisgICAgIF9hYXJj aDY0X2N0eCAqY3R4ID0gKF9hYXJjaDY0X2N0eCAqKWF1eDsKKyAgICAgaWYgKGN0eC0+c2l6ZSA9 PSAwKSBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXIt cnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMzVmMTZkMjRmMzQwCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRj aApAQCAtMCwwICsxLDM1IEBACistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1v bi9zYW5pdGl6ZXJfbGludXguY3BwCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2Nv bW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCitAQCAtNzQsNiArNzQsMTAgQEAKKyAjaW5jbHVkZSA8 c3lzL3V0c25hbWUuaD4KKyAjZW5kaWYKKyAKKysjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmlu ZWQoX19wb3dlcnBjX18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyAj aWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMv cGVyc29uYWxpdHkuaD4KKyAjZW5kaWYKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJf Y29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCisrKysgYi9jb21waWxl ci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4 LmNwcAorQEAgLTkyLDcgKzkyLDcgQEAKKyAjIGluY2x1ZGUgPHV0aW1lLmg+CisgIyBpbmNsdWRl IDxzeXMvcHRyYWNlLmg+CisgI2lmIGRlZmluZWQoX19taXBzNjQpIHx8IGRlZmluZWQoX19hYXJj aDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBTQU5JVElaRVJfUklTQ1Y2NAor KyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAorICMgIGluY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KKyAjICBpZmRlZiBfX2FybV9fCisgdHlwZWRlZiBzdHJ1Y3QgdXNl cl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7CistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCisrKysgYi9j b21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xp bnV4X2xpYmNkZXAuY3BwCitAQCAtMzEsNyArMzEsNyBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4gLy8gZm9yIHBpZF90CisgI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCisgI2lu Y2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKKy0jaWYgKGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKKysjaWYgKGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9S SVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKKyAvLyBHTElCQyAyLjIwKyBzeXMvdXNlciBk b2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2UuaAorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgor ICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC14 cmF5LXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmQwYjYxYzgwYzg5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAK Ky0tLSBhL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYworKysrIGIvY29t cGlsZXItcnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCitAQCAtMTIsNyArMTIsMTMgQEAK KyAKKyAjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8bXV0ZXg+CisrI2lmZGVmIF9fR0xJ QkNfXworICNpbmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8 Y2N0eXBlPgorKyNpbmNsdWRlIDxjc3RyaW5nPgorKyNpbmNsdWRlIDxjc3RkbGliPgorKyNlbmRp ZgorIAorICNpbmNsdWRlICJ4cmF5X2RlZnMuaCIKKyAKK0BAIC0yMCwxMyArMjYsNDUgQEAgbmFt ZXNwYWNlIF9feHJheSB7CisgCisgQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4 X3QgJkNQVSkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIENQVSA9IDA7CisrI2lmZGVmIF9f R0xJQkNfXworICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOworKyNlbHNlCisrICByZXR1 cm4gX19idWlsdGluX3BwY19nZXRfdGltZWJhc2UoKTsKKysjZW5kaWYKKyB9CisgCisgaW5saW5l IHVpbnQ2NF90IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CisgICBz dGF0aWMgc3RkOjptdXRleCBNOworICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJk KE0pOworKyNpZmRlZiBfX0dMSUJDX18KKyAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJl cSgpOworKyNlbHNlCisrICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAq LworKyAgc3RhdGljIHVpbnQ2NF90IGJhc2U7CisrICBpZiAoIWJhc2UpIHsKKysgICAgRklMRSAq ZiA9IGZvcGVuKCIvcHJvYy9jcHVpbmZvIiwgInJiIik7CisrICAgIGlmIChmKSB7CisrICAgICAg c3NpemVfdCBucjsKKysgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9s ZCB0aGUgbGluZSAqLworKyAgICAgIGNoYXIgYnVmWzUxMl07CisrICAgICAgd2hpbGUgKGZnZXRz KGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7CisrICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVm LCAidGltZWJhc2UiKTsKKysgICAgICAgIGlmICghcmV0KSB7CisrICAgICAgICAgIGNvbnRpbnVl OworKyAgICAgICAgfQorKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7Cisr ICAgICAgICByZXQgPSBzdHJjaHIocmV0LCAnOicpOworKyAgICAgICAgaWYgKCFyZXQpIHsKKysg ICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICBiYXNlID0gc3RydG91bChy ZXQgKyAxLCBudWxscHRyLCAxMCk7CisrICAgICAgICBicmVhazsKKysgICAgICB9CisrICAgICAg ZmNsb3NlKGYpOworKyAgICB9CisrICB9CisrICByZXR1cm4gYmFzZTsKKysjZW5kaWYKKyB9Cisg CisgaW5saW5lIGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNU UlVNRU5UIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LW11c2wu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmJkMzFmZmMyY2IxCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApAQCAtMCww ICsxLDI2IEBACistLS0gYS9saWJjeHgvaW5jbHVkZS9sb2NhbGUKKysrKyBiL2xpYmN4eC9pbmNs dWRlL2xvY2FsZQorQEAgLTc0Miw3ICs3NDIsMTEgQEAgX19udW1fZ2V0X3NpZ25lZF9pbnRlZ3Jh bChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCisgICAgICAgICB0eXBlbmFt ZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0g ZXJybm87CisgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBjaGFyICpfX3AyOworKyNpZiBk ZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgbG9uZyBs b25nIF9fbGwgPSBzdHJ0b2xsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UKKyAgICAgICAg IGxvbmcgbG9uZyBfX2xsID0gc3RydG9sbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9H RVRfQ19MT0NBTEUpOworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5j ZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAg ICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZl X2Vycm5vOworQEAgLTc4Miw3ICs3ODYsMTEgQEAgX19udW1fZ2V0X3Vuc2lnbmVkX2ludGVncmFs KGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1l IHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBl cnJubzsKKyAgICAgICAgIGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRl ZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICB1bnNpZ25l ZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UK KyAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGxfbChfX2EsICZfX3Ay LCBfX2Jhc2UsIF9MSUJDUFBfR0VUX0NfTE9DQUxFKTsKKysjZW5kaWYKKyAgICAgICAgIHR5cGVu YW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJy bm8gPSBlcnJubzsKKyAgICAgICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKKyAgICAgICAg ICAgICBlcnJubyA9IF9fc2F2ZV9lcnJubzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvbGliY3h4LXBwYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LXBw Yy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdhOTJmODAw NGUxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LXBw Yy5wYXRjaApAQCAtMCwwICsxLDIyIEBACitUaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVm aW5lZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMsCitpbmNsdWRpbmcgbXVz bCBhbmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0 X19gCitpcyBub3QgZGVmaW5lZCBvbiBnY2MuCisKKy0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0 cworKysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCitAQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90 ZWN0ZWQ6CisgICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09O U1RFWFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9u YW5zbCgiIik7fQorICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQ X0NPTlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVO T1JNX01JTl9fO30KKyAKKy0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0 X18pKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrI2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01B TlRfRElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKKysgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxl IG9yIGRvdWJsZSBwcmVjaXNpb24gKi8KKysgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNv bnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKKysjZWxzZQorKyAgICAvKiAxMjgtYml0IElCTSBk b3VibGUtZG91YmxlICovCisgICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29s IGlzX2llYzU1OSA9IGZhbHNlOworKyNlbmRpZgorICNlbHNlCisgICAgIHN0YXRpYyBfTElCQ1BQ X0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7CisgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIv c3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcwMjkyYmViMmZjZAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysgYi9s aWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NjksNiArNzY5LDggQEAgZnVuY3Rpb24oY3h4X2xp bmtfc3lzdGVtX2xpYnJhcmllcyB0YXJnZXQpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygk e3RhcmdldH0gUFJJVkFURSBhdG9taWMpCisgICBlbmRpZigpCisgCisrI3NzcCAgdGFyZ2V0X2xp bmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCisrCisgICBpZiAo TUlOR1cpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSAiJHtN SU5HV19MSUJSQVJJRVN9IikKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJj eHhhYmktZGwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4z YTE1ZjlkYjhjOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xp YmN4eGFiaS1kbC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitBbHNvIGxpbmsgdG8gLWxkbCB0byBw cmV2ZW50IHVuZGVmaW5lZCByZWZlcmVuY2VzLgorCistLS0gYS9saWJjeHhhYmkvc3JjL0NNYWtl TGlzdHMudHh0CisrKysgYi9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtNzMsNiAr NzMsNyBAQAorICAgZW5kaWYoKQorIAorICAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJ X0hBU19DX0xJQiBjKQorKyAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJ QiBkbCkKKyBlbmRpZigpCisgCisgaWYgKExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUikKKy0t LSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitA QCAtNzQ1LDYgKzc0NSwxMCBAQAorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9 IFBSSVZBVEUgbSkKKyAgIGVuZGlmKCkKKyAKKysgIGlmIChMSUJDWFhfSEFTX0NfTElCKQorKyAg ICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgZGwpCisrICBlbmRpZigp CisrCisgICBpZiAoTElCQ1hYX0hBU19SVF9MSUIpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmll cygke3RhcmdldH0gUFJJVkFURSBydCkKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi43NGFhNzU3NmVjZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x My9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApAQCAtMCwwICsxLDYzIEBACitUaGlzIGZp eGVzIGJ1aWxkIGF0IGxlYXN0IHdpdGggZ2NjOSB3aGljaCBkb2VzIG5vdCBkZWZpbmUgYF9fcHBj X19gLgorCistLS0gYS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaAorKysr IGIvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKK0BAIC00OSw3ICs0OSw3 IEBACisgIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09OVEVYVF9TSVpFIDE2NworICMgIGRlZmluZSBf TElCVU5XSU5EX0NVUlNPUl9TSVpFIDE3OQorICMgIGRlZmluZSBfTElCVU5XSU5EX0hJR0hFU1Rf RFdBUkZfUkVHSVNURVIgX0xJQlVOV0lORF9ISUdIRVNUX0RXQVJGX1JFR0lTVEVSX1BQQzY0Cist IyBlbGlmIGRlZmluZWQoX19wcGNfXykKKysjIGVsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAj ICBkZWZpbmUgX0xJQlVOV0lORF9UQVJHRVRfUFBDIDEKKyAjICBkZWZpbmUgX0xJQlVOV0lORF9D T05URVhUX1NJWkUgMTE3CisgIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTI0Cist LS0gYS9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUworKysrIGIvbGlidW53 aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKK0BAIC0zOTIsNyArMzkyLDcgQEAgTG5v dmVjOgorICAgUFBDNjRfTFIoMykKKyAgIGJjdHIKKyAKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18p CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAKKyBERUZJTkVfTElCVU5XSU5EX0ZVTkNU SU9OKF9aTjlsaWJ1bndpbmQxM1JlZ2lzdGVyc19wcGM2anVtcHRvRXYpCisgLy8KKy0tLSBhL2xp YnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCisrKysgYi9saWJ1bndpbmQvc3JjL1Vu d2luZFJlZ2lzdGVyc1NhdmUuUworQEAgLTU1NCw3ICs1NTQsNyBAQCBERUZJTkVfTElCVU5XSU5E X0ZVTkNUSU9OKF9fdW53X2dldGNvbnRleHQpCisgICBibHIKKyAKKyAKKy0jZWxpZiBkZWZpbmVk KF9fcHBjX18pCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAKKyAvLworIC8vIGV4dGVy biBpbnQgdW53X2dldGNvbnRleHQodW53X2NvbnRleHRfdCogdGhyZWFkX3N0YXRlKQorLS0tIGEv bGlidW53aW5kL3NyYy9jb25maWcuaAorKysrIGIvbGlidW53aW5kL3NyYy9jb25maWcuaAorQEAg LTk1LDEyICs5NSwxMiBAQAorICNkZWZpbmUgX0xJQlVOV0lORF9CVUlMRF9TSkxKX0FQSVMKKyAj ZW5kaWYKKyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICNkZWZp bmUgX0xJQlVOV0lORF9TVVBQT1JUX0ZSQU1FX0FQSVMKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorLSAgICBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgKCFkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX2FybV9fKSkg fHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoZGVmaW5lZChfX2FybTY0 X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgIGRlZmluZWQoX19taXBzX18pCistLS0gYS9saWJ1bndpbmQvc3JjL2xpYnVud2lu ZC5jcHAKKysrKyBiL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAorQEAgLTQyLDcgKzQyLDcg QEAgX0xJQlVOV0lORF9ISURERU4gaW50IF9fdW53X2luaXRfbG9jYWwodW53X2N1cnNvcl90ICpj dXJzb3IsCisgIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfeDg2XzY0CisgI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJz X3BwYzY0CistI2VsaWYgZGVmaW5lZChfX3BwY19fKQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj X18pCisgIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjCisgI2VsaWYgZGVmaW5l ZChfX2FhcmNoNjRfXykKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19hcm02NApk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjYwMWMwZDEzODUyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKKy0tLSBh L2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAorKysrIGIvbGxkYi9z b3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5oCitAQCAtMTAsMjEgKzEwLDEyIEBA CisgLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXggZm9yIGFsbCBzdXBwb3J0ZWQgYXJj aGl0ZWN0dXJlcy4KKyAKKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisgCistI2lmZGVmIF9fQU5EUk9JRF9fCistI2lmIGRlZmluZWQoX19hcm02NF9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLXR5cGVkZWYgdW5zaWduZWQgbG9uZyBlbGZfZ3Jl Z190OworLXR5cGVkZWYgZWxmX2dyZWdfdAorLSAgICBlbGZfZ3JlZ3NldF90WyhzaXplb2Yoc3Ry dWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdfdCkpXTsKKy10eXBlZGVmIHN0cnVj dCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsKKy0jaWZuZGVmIE5UX0ZQUkVHU0VU CistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8vIE5UX0ZQUkVHU0VU CistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKy0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmlu ZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VuZGlm CistI2Vsc2UgLy8gX19BTkRST0lEX18KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZp bmVkKF9fcG93ZXJwY19fKQorKyNkZWZpbmUgcHRfcmVncyBtdXNsX3B0X3JlZ3MKKysjaW5jbHVk ZSA8c3lzL3Byb2Nmcy5oPgorKyN1bmRlZiBwdF9yZWdzCisrI2Vsc2UKKyAjaW5jbHVkZSA8c3lz L3Byb2Nmcy5oPgorLSNlbmRpZiAvLyBfX0FORFJPSURfXworKyNlbmRpZgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZjJhM2Y4ZDYyODEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20g ZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5YWM0MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0Rh dGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAorU3ViamVjdDogW1BBVENIIDMvM10g bXVzbAorCistLS0KKyBpbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaCB8 IDkgKysrKysrKysrCisgbGliL1N1cHBvcnQvRHluYW1pY0xpYnJhcnkuY3BwICAgICAgICAgICAg fCAyICstCisgbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYyAgICAgICAgICAgICAgfCA2ICsr Ky0tLQorIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjICAgIHwgMSArCisg NSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmggYi9pbmNs dWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAoraW5kZXggMzRhOGExZTMuLjEy MTRlY2U1IDEwMDY0NAorLS0tIGEvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGli cmFyeUluZm8uaAorKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFy eUluZm8uaAorQEAgLTE4LDYgKzE4LDE1IEBACisgI2luY2x1ZGUgImxsdm0vSVIvUGFzc01hbmFn ZXIuaCIKKyAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCisgCisrI3VuZGVmIGZvcGVuNjQKKysjdW5k ZWYgZnNlZWtvNjQKKysjdW5kZWYgZnN0YXQ2NAorKyN1bmRlZiBmc3RhdHZmczY0CisrI3VuZGVm IGZ0ZWxsbzY0CisrI3VuZGVmIGxzdGF0NjQKKysjdW5kZWYgc3RhdDY0CisrI3VuZGVmIHRtcGZp bGU2NAorKworIG5hbWVzcGFjZSBsbHZtIHsKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg QXJyYXlSZWY7CisgY2xhc3MgVHJpcGxlOworZGlmZiAtLWdpdCBhL2xpYi9TdXBwb3J0L1VuaXgv RHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMK K2luZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1N1cHBvcnQv VW5peC9EeW5hbWljTGlicmFyeS5pbmMKKysrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5h bWljTGlicmFyeS5pbmMKK0BAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIHZvaWQgKkRvU2VhcmNo KGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKKyAKKyAvLyBUaGlzIG1hY3JvIHJldHVybnMgdGhl IGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBzeW1ib2wKKyAjZGVmaW5lIEVYUExJ Q0lUX1NZTUJPTChTWU0pIFwKKy0gICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0 dXJuICZTWU0KKysgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICh2b2lk ICopJlNZTQorIAorIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUgYSB3ZWlyZCBzaXR1YXRpb24uIFRo ZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKKyAvLyBtYWNyb3MgYW5kIGdsb2JhbCB2 YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWlyZW1lbnRzLiBTbywgd2UKK2RpZmYg LS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYyBiL3V0aWxzL3Vu aXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitpbmRleCBkODgyYWIyZS4uZjFmYjEyZDAg MTAwNjQ0CistLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNj CisrKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitAQCAt MTI4LDYgKzEyOCw3IEBACisgCisgI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KKyAjIGlu Y2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCisrIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUg PHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAvLyBO T0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1w cGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1w cGM2NC1lbGZ2Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjAwNzFkOTY0YmQzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv bGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApAQCAtMCwwICsxLDMwIEBACitUaGlzIHBh dGNoZXMgTExWTSB0byB1c2UgRUxGdjIgb24gcHBjNjQgdW5jb25kaXRpb25hbGx5IHVubGVzcyBv dmVycmlkZGVuLiBXZQorbmVlZCB0aGlzIGJlY2F1c2UgdW5saWtlIG1vc3QgZGlzdHJvcyB3ZSB1 c2UgRUxGdjIgZm9yIGJvdGggZ2xpYmMgYW5kIG11c2wKK29uIGJpZyBlbmRpYW4gcHBjNjQuCisK K2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAgYi9s aWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKK2luZGV4IDA2MzQ4MzNlLi5i N2NiYzJlNyAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1h Y2hpbmUuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5l LmNwcAorQEAgLTIyMiw5ICsyMjIsOCBAQCBzdGF0aWMgUFBDVGFyZ2V0TWFjaGluZTo6UFBDQUJJ IGNvbXB1dGVUYXJnZXRBQkkoY29uc3QgVHJpcGxlICZUVCwKKyAKKyAgIHN3aXRjaCAoVFQuZ2V0 QXJjaCgpKSB7CisgICBjYXNlIFRyaXBsZTo6cHBjNjRsZToKKy0gICAgcmV0dXJuIFBQQ1Rhcmdl dE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7CisgICBjYXNlIFRyaXBsZTo6cHBjNjQ6CistICAgIHJl dHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYxOworKyAgICByZXR1cm4gUFBDVGFy Z2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGRlZmF1bHQ6CisgICAgIHJldHVybiBQUENU YXJnZXRNYWNoaW5lOjpQUENfQUJJX1VOS05PV047CisgICB9CitkaWZmIC0tZ2l0IGEvdGVzdC9D b2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbCBiL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3Bw YzY0LWVsZi1hYmkubGwKK2luZGV4IDhiMWNmNmI1Li4yOTZhMmFmYSAxMDA2NDQKKy0tLSBhL2xs dm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAorKysrIGIvbGx2bS90ZXN0 L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitAQCAtMSw0ICsxLDUgQEAKKy07IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisr OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2 MgorKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11 bmtub3duLWxpbnV4LW11c2wgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNL LUVMRnYyCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJw YzY0LXVua25vd24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYxIDwgJXMgfCBGaWxlQ2hlY2sg JXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5l aW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBl bGZ2MiA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKyA7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjRsZS11bmtub3du LWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBs dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI1ZDE1OTc0Mzc1 ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDMtcHBj LXNlY3VyZXBsdC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9sbHZtL2xpYi9UYXJnZXQv UG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9Q UENTdWJ0YXJnZXQuY3BwCitAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgUFBDU3VidGFyZ2V0Ojpp bml0U3VidGFyZ2V0RmVhdHVyZXMoU3RyaW5nUmVmIENQVSwgU3RyaW5nUmVmIEZTKSB7CisgCisg ICBpZiAoKFRhcmdldFRyaXBsZS5pc09TRnJlZUJTRCgpICYmIFRhcmdldFRyaXBsZS5nZXRPU01h am9yVmVyc2lvbigpID49IDEzKSB8fAorICAgICAgIFRhcmdldFRyaXBsZS5pc09TTmV0QlNEKCkg fHwgVGFyZ2V0VHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwKKy0gICAgICBUYXJnZXRUcmlwbGUuaXNN dXNsKCkpCisrICAgICAgaXNUYXJnZXRMaW51eCgpKQorICAgICBTZWN1cmVQbHQgPSB0cnVlOwor IAorICAgaWYgKEhhc1NQRSAmJiBJc1BQQzY0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjUxZDBlNGIzMWIzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCkBAIC0wLDAgKzEsMTgg QEAKK1RoaXMgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoZSBvcHRpbWl6YXRpb24gbGV2ZWwgYXMg bm90IGFsbCBwbGF0Zm9ybXMgY2FuCitkZWFsIHdpdGggLU8zLgorCistLS0gYS9sbHZtL0NNYWtl TGlzdHMudHh0CisrKysgYi9sbHZtL0NNYWtlTGlzdHMudHh0CitAQCAtOTE4LDYgKzkxOCwxMiBA QCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFLRV9DWFhfQ09NUElMRVJfSUR9IiBNQVRDSEVTICJD bGFuZyIgKQorICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1Nf UkVMRUFTRSAiLU8zIiAiLU8yIikKKyBlbmRpZigpCisgCisrc2V0KFZPSURfQ1hYX09QVF9GTEFH UyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXphdGlvbiBsZXZlbCB0byB1c2UiKQorKworK2lmIChO T1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVRVUFMICIiKQorKyAgICBsbHZtX3JlcGxhY2VfY29t cGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICIke1ZPSURfQ1hYX09Q VF9GTEFHU30iKQorK2VuZGlmKCkKKysKKyAjIFB1dCB0aGlzIGJlZm9yZSB0YmxnZW4uIEVsc2Ug d2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVuY2UuCisgYWRkX3N1YmRpcmVjdG9yeShsaWIvRGVt YW5nbGUpCisgYWRkX3N1YmRpcmVjdG9yeShsaWIvU3VwcG9ydCkKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaCBiL3NyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMzI2ODdiOWQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaApAQCAtMCwwICsx LDM2IEBACitGcm9tIGYzZGJkZDQ5YzA2YmZhZmMxZDYxMzgwOTRjZjQyODg5YzE0ZDM4YjYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW11ZWwgSG9sbGFuZCA8c2FtdWVsQHNob2xs YW5kLm9yZz4KK0RhdGU6IFN1biwgMyBOb3YgMjAxOSAxMDo1NzoyNyAtMDYwMAorU3ViamVjdDog W1BBVENIXSBbTExWTV1bUG93ZXJQQ10gQXNzdW1lIEJpZ1BJQyBpZiBubyBQSUMgbGV2ZWwgaXMg c3BlY2lmaWVkCisKKy0tLQorIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIu Y3BwICB8IDIgKy0KKyBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAg fCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgYi9s aWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK2luZGV4IGNjZTIxZjMyLi44N2Nh NWY5YiAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIu Y3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAorQEAg LTUyMCw3ICs1MjAsNyBAQCB2b2lkIFBQQ0FzbVByaW50ZXI6OkVtaXRUbHNDYWxsKGNvbnN0IE1h Y2hpbmVJbnN0ciAqTUksCisgCisgICAvLyBBZGQgMzI3Njggb2Zmc2V0IHRvIHRoZSBzeW1ib2wg c28gd2UgZm9sbG93IHVwIHRoZSBsYXRlc3QgR09UL1BMVCBBQkkuCisgICBpZiAoS2luZCA9PSBN Q1N5bWJvbFJlZkV4cHI6OlZLX1BMVCAmJiBTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYKKy0g ICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMpCisrICAgICAgTS0+Z2V0 UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMpCisgICAgIFRsc1JlZiA9IE1DQmluYXJ5 RXhwcjo6Y3JlYXRlQWRkKAorICAgICAgICAgVGxzUmVmLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRl KDMyNzY4LCBPdXRDb250ZXh0KSwgT3V0Q29udGV4dCk7CisgICBjb25zdCBNYWNoaW5lT3BlcmFu ZCAmTU8gPSBNSS0+Z2V0T3BlcmFuZCgyKTsKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2Vy UEMvUFBDTUNJbnN0TG93ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2Vy LmNwcAoraW5kZXggNWNjMTgwZDcuLmE1YjAyNTY1IDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKK0BAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIE1DT3Bl cmFuZCBHZXRTeW1ib2xSZWYoY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PLCBjb25zdCBNQ1N5bWJv bCAqU3ltYm9sLAorICAgY29uc3QgTUNFeHByICpFeHByID0gTUNTeW1ib2xSZWZFeHByOjpjcmVh dGUoU3ltYm9sLCBSZWZLaW5kLCBDdHgpOworICAgLy8gSWYgLW1zZWN1cmUtcGx0IC1mUElDLCBh ZGQgMzI3NjggdG8gc3ltYm9sLgorICAgaWYgKFN1YnRhcmdldC0+aXNTZWN1cmVQbHQoKSAmJiBU TS5pc1Bvc2l0aW9uSW5kZXBlbmRlbnQoKSAmJgorLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0g UElDTGV2ZWw6OkJpZ1BJQyAmJgorKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6 OlNtYWxsUElDICYmCisgICAgICAgTU8uZ2V0VGFyZ2V0RmxhZ3MoKSA9PSBQUENJSTo6TU9fUExU KQorICAgICBFeHByID0KKyAgICAgICAgIE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKEV4cHIsIE1D Q29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIEN0eCksIEN0eCk7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCBiL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAwYWJkMjE2NjY1Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMu cGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRml4IGZhaWx1cmVzIGluIEFsbG9jYXRpb25UZXN0cy9N YXBwZWRNZW1vcnlUZXN0Liogb24gYWFyY2g2NDoKKworICAgIEZhaWxpbmcgVGVzdHMgKDgpOgor ICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVz dHMvTWFwcGVkTWVtb3J5VGVzdC5BbGxvY0FuZFJlbGVhc2UvMworICAgICAgICBMTFZNLVVuaXQg OjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVz dC5EdXBsaWNhdGVOZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0 VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRW5hYmxlZFdyaXRlLzMKKyAg ICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3Rz L01hcHBlZE1lbW9yeVRlc3QuTXVsdGlwbGVBbGxvY0FuZFJlbGVhc2UvMworICAgICAgICBMTFZN LVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVt b3J5VGVzdC5TdWNjZXNzaXZlTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlVuYWxpZ25lZE5l YXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0 aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6 OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0 Llplcm9TaXplTmVhci8zCisKK1Vwc3RyZWFtLUlzc3VlOiBodHRwczovL2J1Z3MubGx2bS5vcmcv c2hvd19idWcuY2dpP2lkPTE0Mjc4I2MxMAorCistLS0gYS9sbHZtL2xpYi9TdXBwb3J0L1VuaXgv TWVtb3J5LmluYworKysrIGIvbGx2bS9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKK0BAIC01 OCw3ICs1OCw3IEBAIHN0YXRpYyBpbnQgZ2V0UG9zaXhQcm90ZWN0aW9uRmxhZ3ModW5zaWduZWQg RmxhZ3MpIHsKKyAgICAgcmV0dXJuIFBST1RfUkVBRCB8IFBST1RfV1JJVEUgfCBQUk9UX0VYRUM7 CisgICBjYXNlIGxsdm06OnN5czo6TWVtb3J5OjpNRl9FWEVDOgorICNpZiAoZGVmaW5lZChfX0Zy ZWVCU0RfXykgfHwgZGVmaW5lZChfX1BPV0VSUENfXykgfHwgZGVmaW5lZCAoX19wcGNfXykgfHwg XAorLSAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hfUFBDKSkKKysgICAgIGRl ZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykgfHwgKGRlZmluZWQoX19saW51eF9f KSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKSkpCisgICAgIC8vIE9uIFBvd2VyUEMsIGhhdmluZyBh biBleGVjdXRhYmxlIHBhZ2UgdGhhdCBoYXMgbm8gcmVhZCBwZXJtaXNzaW9uCisgICAgIC8vIGNh biBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLiAgVGhlIGZ1bmN0aW9uIEludmFsaWRhdGVJ bnN0cnVjdGlvbi0KKyAgICAgLy8gQ2FjaGUgdXNlcyBpbnN0cnVjdGlvbnMgZGNiZiBhbmQgaWNi aSwgYm90aCBvZiB3aGljaCBhcmUgdHJlYXRlZCBieQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNo ZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi44ZTBhOWE3NzlkMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x My9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK2NvbW1p dCBiYTRlZGU1OTVmZjk1OTkyMzJmNWRkMmI0Mzg0YzI0MzEzN2I1M2ZjCitBdXRob3I6IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogICBUdWUgSnVuIDIyIDIzOjQw OjU0IDIwMjEgKzAyMDAKKworICAgIGVuYWJsZSBjb21waWxlci1ydCBzdXBwb3J0IGZvciBwcGMz MgorCitkaWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2Ug Yi9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQoraW5kZXggMWVkYWI0My4u NWMwYzhhMiAxMDA2NDQKKy0tLSBhL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNt YWtlCisrKysgYi9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQorQEAgLTE4 Miw5ICsxODIsNyBAQCBtYWNybyh0ZXN0X3RhcmdldHMpCisgICAgIGVsc2VpZigiJHtDT01QSUxF Ul9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93ZXJwYzY0bGUiKQorICAgICAg IHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYzY0bGUgIiIgIi1tNjQiKQorICAgICBlbHNlaWYoIiR7 Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInBvd2VycGMiKQorLSAg ICAgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkFJWCIpCistICAgICAgICB0ZXN0X3Rh cmdldF9hcmNoKHBvd2VycGMgIiIgIi1tMzIiKQorLSAgICAgIGVuZGlmKCkKKysgICAgICB0ZXN0 X3RhcmdldF9hcmNoKHBvd2VycGMgIiIgIi1tMzIiKQorICAgICAgIHRlc3RfdGFyZ2V0X2FyY2go cG93ZXJwYzY0ICIiICItbTY0IikKKyAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRf VEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJzMzkweCIpCisgICAgICAgdGVzdF90YXJnZXRfYXJjaChz MzkweCAiIiAiIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIGIvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wOGQ4NDc0NzI1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0 ZQpAQCAtMCwwICsxLDQyMyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEzJworcGtnbmFt ZT1sbHZtMTMKK3ZlcnNpb249MTMuMC4wCityZXZpc2lvbj0xCit3cmtzcmM9Imxsdm0tcHJvamVj dC0ke3ZlcnNpb259LnNyYyIKK2J1aWxkX3dya3NyYz1sbHZtCitidWlsZF9zdHlsZT1jbWFrZQor Y29uZmlndXJlX2FyZ3M9IgorIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2Cisg LURFTkFCTEVfTElOS0VSX0JVSUxEX0lEPVlFUworIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMK KyAtRExJQkNYWF9DWFhfQUJJPWxpYmN4eGFiaQorIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJ X0xJQlJBUlk9WUVTCisgLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCisgLURMSUJD WFhBQklfRU5BQkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKKyAtRExJQk9NUF9FTkFCTEVfU0hBUkVE PVlFUworIC1ETElCT01QX0lOU1RBTExfQUxJQVNFUz1OTworIC1ETExWTV9JTkNMVURFX0RPQ1M9 WUVTCisgLURMTFZNX0JVSUxEX0RPQ1M9WUVTCisgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCisg LURTUEhJTlhfV0FSTklOR1NfQVNfRVJST1JTPU5PCisgLURMTFZNX0lOU1RBTExfVVRJTFM9WUVT CisgLURMTFZNX0JVSUxEX0xMVk1fRFlMSUI9WUVTCisgLURMTFZNX0xJTktfTExWTV9EWUxJQj1Z RVMKKyAtRExMVk1fRU5BQkxFX1JUVEk9WUVTCisgLURMTFZNX0VOQUJMRV9GRkk9WUVTCisgLURM TFZNX0JJTlVUSUxTX0lOQ0RJUj0vdXNyL2luY2x1ZGUiCitob3N0bWFrZWRlcGVuZHM9InBlcmwg cHl0aG9uMyB6bGliLWRldmVsIGxpYmZmaS1kZXZlbCBzd2lnIHB5dGhvbjMtU3BoaW54CisgcHl0 aG9uMy1yZWNvbW1vbm1hcmsgcHl0aG9uMy1zcGhpbngtYXV0b21vZGFwaSIKK21ha2VkZXBlbmRz PSJweXRob24zLWRldmVsIHpsaWItZGV2ZWwgZWxmdXRpbHMtZGV2ZWwgbGliZmZpLWRldmVsIGxp YmVkaXQtZGV2ZWwKKyBsaWJ4bWwyLWRldmVsIGJpbnV0aWxzLWRldmVsIGxpYmF0b21pYy1kZXZl bCIKK2RlcGVuZHM9ImxpYmxsdm0xMz49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IkxvdyBMZXZlbCBWaXJ0dWFsIE1hY2hpbmUiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9IkFwYWNoZS0yLjAiCitob21lcGFnZT0iaHR0cHM6Ly93 d3cubGx2bS5vcmciCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJv amVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0LSR7 dmVyc2lvbn0uc3JjLnRhci54eiIKK2NoZWNrc3VtPTYwNzVhZDMwZjFhYzBlMTVmMDdjMWJmMDYy YzFlMTI2OGMyNDFkNjc0ZjExYmQzMmNkZjBlMDQwYzcxZjJiZjMKK2xpYjMyZGlzYWJsZWQ9eWVz CitweXRob25fdmVyc2lvbj0zCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBd OyB0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFTX01VU0xfTElCQz1ZRVMiCisJ bWFrZWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCisJZGVwZW5kcys9IiBsaWJleGVjaW5m by1kZXZlbCIKK2ZpCisKKyMgIm9wZXJhbmQgb3V0IG9mIHJhbmdlIiBhc3NlbWJsZXIgZmFpbHVy ZXMKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBj b25maWd1cmVfYXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OworZXNhYworCitf ZW5hYmxlZF9wcm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7Y29tcGlsZXItcnQ7bGli Y3h4O2xpYmN4eGFiaTtsaWJ1bndpbmQ7bGxkIgorCitfbGxkYl9lbmFibGU9eWVzCitfbGlib21w X2VuYWJsZT1ubworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NGxlKikg OzsKKwlwcGMqfGk2ODYqKSBfbGxkYl9lbmFibGU9bm8gOzsKK2VzYWMKKworY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCisJeDg2XzY0KnxhYXJjaDY0KnxwcGM2NCopIF9saWJvbXBfZW5h YmxlPXllczs7Citlc2FjCisKK3N1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSIKKworIyBt dXN0IGdvIGJlZm9yZSBjbGFuZworaWYgWyAiJF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRo ZW4KKwlfZW5hYmxlZF9wcm9qZWN0cys9IjtvcGVubXAiCisJc3VicGFja2FnZXMrPSIgbGlib21w IGxpYm9tcC1kZXZlbCIKKwkjIGJlY2F1c2Ugb2YgY21ha2Ugbm9uc2Vuc2UgcmVmZXJlbmNpbmcg bGlib21wdGFyZ2V0LnNvLioKKwlkZXBlbmRzKz0iIGxpYm9tcD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKK2ZpCisKK3N1YnBhY2thZ2VzKz0iIGNsYW5nIGNsYW5nLWFuYWx5emVyIGxpYmNsYW5n IGxpYmNsYW5nLWNwcAorIGxsdm0tbGlidW53aW5kIGxsdm0tbGlidW53aW5kLWRldmVsIGxpYmN4 eCBsaWJjeHgtZGV2ZWwKKyBsaWJjeHhhYmkgbGliY3h4YWJpLWRldmVsIGxpYmxsdm0xMyIKKwor aWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJIyBYWFggZmFpbHMgdG8gY3Jv c3MgY29tcGlsZSBkdWUgdG8gcHl0aG9uCisJX2VuYWJsZWRfcHJvamVjdHMrPSI7bGxkYiIKKwlz dWJwYWNrYWdlcys9IiBsbGRiIGxsZGItZGV2ZWwiCitmaQorCitzdWJwYWNrYWdlcys9IiBsbGQg bGxkLWRldmVsIgorCitjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7 X2VuYWJsZWRfcHJvamVjdHN9IgorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRfbGxkYl9lbmFi bGUiID0gInllcyIgXTsgdGhlbgorCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgorCQkJdnNlZCAtaSAnc3xfX3B0cmFjZV9yZXF1ZXN0fGludHxnJyBcCisJCQkJJHt3 cmtzcmN9L2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9OYXRpdmVQcm9jZXNzTGlu dXguY3BwCisJCWZpCisJCSMgZGlzYWJsZSBkb2NzIGZvciBsbGRiIGFzIHRoZXkgZmFpbCB0byBn ZW5lcmF0ZQorCQl2c2VkIC1pICcvYWRkX3N1YmRpcmVjdG9yeShkb2NzKS9kJyBcCisJCQkke3dy a3NyY30vbGxkYi9DTWFrZUxpc3RzLnR4dAorCWZpCisKKwkjIHVwZGF0ZSBjb25maWcuZ3Vlc3Mg Zm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KKwljcCAkWEJQU19DT01NT05ESVIvZW52aXJv bm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCisJCSR7d3Jrc3JjfS9sbHZt L2NtYWtlCisKKwkjIGZpeCBsaW5rZXIgZmFpbHVyZXMgb24gc29tZSBhcmNocworCXZzZWQgLWkg J3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjX3MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX1Nf TElCIE9OKSwnIFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UK Kwl2c2VkIC1pICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjYyAuKixzZXQoTElCQ1hYQUJJX0hB U19HQ0NfTElCIE9OKSwnIFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXgu Y21ha2UKKworCSMgbmVlZCBsaWJzc3Bfbm9uc2hhcmVkIG9uIHNvbWUgbXVzbCBwbGF0Zm9ybXMg KGJlY2F1c2Ugb2Ygbm9kZWZhdWx0bGlicykKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwkJcHBjNjQqKSA7OworCQlwcGMqLW11c2x8aTY4Ni1tdXNsfG1pcHMqLW11c2wpCisJCQl2 c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJl ZCksJyBcCisJCQkJJHt3cmtzcmN9L2xpYnVud2luZC9zcmMvQ01ha2VMaXN0cy50eHQKKwkJCXZz ZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVk KSwnIFwKKwkJCQkke3dya3NyY30vbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNl ZCAtaSAncywjc3NwLCwnICR7d3Jrc3JjfS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJ ZXNhYworCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXg4Nl82NC1tdXNsKSAj IHNvbWUgc2FuaXRpemVyIGN1cnJlbnRseSBvbmx5IG9uIHg4Nl82NCBzdHVmZiBuZWVkcyBiYWNr dHJhY2UKKwkJCXZzZWQgLWkgJ3MsIyBTZXQgY29tbW9uIGxpbmsgZmxhZ3MuLGxpc3QoQVBQRU5E IFNBTklUSVpFUl9DT01NT05fTElOS19MSUJTIGV4ZWNpbmZvKSwnIFwKKwkJCQkke3dya3NyY30v Y29tcGlsZXItcnQvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJCWFybSotbXVzbHxpNjg2LW11c2wp ICMgc2FuaXRpemVyIGNvZGUgaXMgYnJva2VuIHNpbmNlIGl0IGR1cGxpY2F0ZXMgc29tZSBsaWJj IGJpdHMKKwkJCXZzZWQgLWkgJ3Mvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9O IFRSVUUpL3NldChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBGQUxTRSkvJyBcCisJ CQkJJHt3cmtzcmN9L2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCQkJOzsKKwll c2FjCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJbG9jYWwgdHJpcGxldAorCisJIyBWYXN0bHkg cmVkdWNlIHNpemUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CisJQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8g LWcxfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CisKKwkjIHNpbmNlIGdjYzksIHRo ZSBidWlsZCBsaWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJlY2F1c2UKKwkj IG9mIGNsYW5nIGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUgY2FsbCB0byB0 aGUgUExULCBzbworCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAorCWNhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7CisJCW1pcHMqLW11c2x8cHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OworCWVzYWMKKworCWlmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQltc2dfbm9ybWFsICJCdWlsZGluZyBob3N0IHRibGdl blxuIgorCQlta2RpciAtcCBidWlsZC9IT1NUCisJCWNkIGJ1aWxkL0hPU1QKKwkJQ0M9IiRCVUlM RF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKKwkJCUNYWEZM QUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCisJCQljbWFr ZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCisJCQktRExMVk1fRU5BQkxFX1BS T0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9CisJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMv VGFibGVHZW4KKwkJbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdl bgorCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0 b29scy9sbGRiL3V0aWxzL1RhYmxlR2VuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJM RUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKKwkJY29uZmln dXJlX2FyZ3MrPSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jp bi9jbGFuZy10YmxnZW4iCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1 cmVfYXJncys9IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4v bGxkYi10YmxnZW4iCisJCWNkIC4uLy4uCisJZmkKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCQlpNjg2KikgX2FyY2g9Ilg4NiI7OworCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7 CisJCWFybXY1KikgX2FyY2g9IkFybXY1dGUiOzsKKwkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsK KwkJYXJtdjcqKSBfYXJjaD0iQXJtdjciOzsKKwkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7 CisJCW1pcHMqKSBfYXJjaD0iTWlwcyI7OworCQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OworCQly aXNjdjY0KikgX2FyY2g9IlJJU0NWNjQiOzsKKwllc2FjCisKKwl0cmlwbGV0PSR7WEJQU19DUk9T U19UUklQTEVUOi0kWEJQU19UUklQTEVUfQorCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RB UkdFVF9BUkNIPSR7X2FyY2h9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBM RT0ke3RyaXBsZXR9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9U UklQTEU9JHt0cmlwbGV0fSIKK30KKworZG9faW5zdGFsbCgpIHsKKwljZCBidWlsZAorCWNtYWtl IC1EQ01BS0VfSU5TVEFMTF9QUkVGSVg9JHtERVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5j bWFrZQorCisJIyBSZXF1aXJlZCBmb3IgbXVsdGlsaWIuCisJaWYgWyAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiID0gIng4Nl82NCIgXTsgdGhlbgorCQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsg ZG8KKwkJCW12ICR7REVTVERJUn0vdXNyL2luY2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXss LTY0fS5oCisJCQl2aW5zdGFsbCAke0ZJTEVTRElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9Lmgg NjQ0IFwKKwkJCQl1c3IvaW5jbHVkZS9sbHZtL0NvbmZpZyAke19oZWFkZXJ9LmgKKwkJZG9uZQor CWZpCisKKwkjIFJlbW92ZSBsbHZtLWNvbmZpZy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KKwlpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0t Y29uZmlnLWhvc3QKKwlmaQorCisJIyBJbnN0YWxsIGxpYmN4eGFiaSBoZWFkZXJzCisJdmluc3Rh bGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL19fY3h4YWJpX2NvbmZpZy5oIDY0NCB1c3Iv aW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9jeHhhYmkuaCA2 NDQgdXNyL2luY2x1ZGUKKworCSMgSW5zdGFsbCBsaWJ1bndpbmQgaGVhZGVycworCXZpbnN0YWxs ICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaCA2NDQgdXNy L2luY2x1ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvbGlidW53aW5k LmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRl L3Vud2luZC5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQv aW5jbHVkZS9tYWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaCBcCisJCTY0NCB1c3IvaW5j bHVkZS9tYWNoLW8KK30KKworY2xhbmctYW5hbHl6ZXJfcGFja2FnZSgpIHsKKwlweWNvbXBpbGVf ZGlycz0idXNyL3NoYXJlL3NjYW4tdmlldyIKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7 cmV2aXNpb259IHB5dGhvbjMgcGVybCIKKwlzaG9ydF9kZXNjKz0iIC0gQSBzb3VyY2UgY29kZSBh bmFseXNpcyBmcmFtZXdvcmsiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmctYW5hbHl6ZXIubGx2 bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvc2Nh bi1idWlsZC4xCisJCXZtb3ZlICIvdXNyL2Jpbi9zY2FuLSoiCisJCXZtb3ZlICIvdXNyL3NoYXJl L3NjYW4tKiIKKwkJdm1vdmUgIi91c3IvbGliZXhlYy8qYW5hbHl6ZXIiCisJfQorfQorCitjbGFu Zy10b29scy1leHRyYV9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0i Y2xhbmctJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBweXRob24zIgorCXNob3J0X2Rlc2MrPSIgLSBF eHRyYSBDbGFuZyB0b29scyIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9leHRy YS8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLXRpZHkKKwkJ dm1vdmUgdXNyL2Jpbi9jbGFuZy1hcHBseS1yZXBsYWNlbWVudHMKKwkJdm1vdmUgdXNyL2Jpbi9j bGFuZy1xdWVyeQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLXJlbmFtZQorCQl2bW92ZSB1c3IvYmlu L2NsYW5nLXRpZHkKKwkJdm1vdmUgdXNyL2Jpbi9kaWFndG9vbAorCQl2bW92ZSB1c3IvYmluL2Zp bmQtYWxsLXN5bWJvbHMKKwkJdm1vdmUgdXNyL2Jpbi9obWFwdG9vbAorCQl2bW92ZSB1c3IvYmlu L21vZHVsYXJpemUKKwkJdm1vdmUgdXNyL2Jpbi9wcC10cmFjZQorCQl2bW92ZSB1c3IvYmluL3Nh bmNvdgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ0FwcGx5UmVwbGFjZW1lbnRzKiIKKwkJdm1v dmUgInVzci9saWIvbGliY2xhbmdRdWVyeSoiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nVGlk eSoiCisJCXZtb3ZlICJ1c3Ivc2hhcmUvY2xhbmcvKnRpZHkqIgorCQl2bW92ZSB1c3Ivc2hhcmUv ZG9jL2NsYW5nLXRvb2xzCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9v bHMuMQorCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQorCX0KK30KKworY2xh bmdfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxpYnN0ZGMrKy1k ZXZlbCBsaWJnY2MtZGV2ZWwgIGJpbnV0aWxzICR7WEJQU19UQVJHRVRfTElCQ30tZGV2ZWwKKwkg bGliY2xhbmctJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5n dWFnZSBmYW1pbHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcv IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1 c3IvaW5jbHVkZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3ZlIHVz ci9iaW4vYy1pbmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xp Yi9jbWFrZS9jbGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVz ci9saWIvbGliY2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNy L3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQorCX0K K30KKworbGliY2xhbmdfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBy dW50aW1lIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNs YW5nLnNvLioiCisJfQorfQorCitsaWJjbGFuZy1jcHBfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNj Kz0iIC0gQyBmcm9udGVuZCBydW50aW1lIGxpYnJhcnkgKEMrKyBpbnRlcmZhY2UpIgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZy1jcHAuc28uKiIKKwl9Cit9CisK K2xsZF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxp bmtlciIKKwlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlIHVzci9iaW4vbGxkKgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUg dXNyL2Jpbi9sZC5sbGQqCisJCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9z aGFyZS9kb2MvbGxkCisJfQorfQorCitsbGQtZGV2ZWxfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2Fi bGVkPXllcworCXNob3J0X2Rlc2MrPSIgLSBsaW5rZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlo b21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJZGVwZW5kcz0ibGxkPj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGQK KwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9sbGQKKwkJdm1vdmUgInVzci9saWIvbGlibGxkKmEiCisJ fQorfQorCitsbGRiX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzKz0i IHB5dGhvbjMtc2l4IgorCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2VyIgorCWhvbWVwYWdl PSJodHRwczovL2xsZGIubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Iv YmluLypsbGRiKgorCQl2bW92ZSB1c3IvbGliL2xpYmxsZGIqc28uKgorCQl2bW92ZSAvdXNyL2xp Yi9weXRob24qCisJfQorfQorCitsbGRiLWRldmVsX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxl ZD15ZXMKKwlkZXBlbmRzPSJsbGRiPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rl c2MrPSIgLSBMTERCIGRlYnVnZ2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwo KSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZGIKKwkJdm1vdmUgInVzci9saWIvbGlibGxkYiou c28iCisJfQorfQorCitsbHZtLWxpYnVud2luZF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIg LSBsaWJ1bndpbmQiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYnVud2lu ZC5zby4qIgorCX0KK30KKworbGx2bS1saWJ1bndpbmQtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9y dF9kZXNjKz0iIC0gbGlidW53aW5kIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGx2 bS1saWJ1bndpbmQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJY29uZmxpY3RzPSJsaWJ1bndp bmQtZGV2ZWw+PTAiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlidW53aW5k LnNvCisJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLmEKKwkJdm1vdmUgInVzci9pbmNsdWRlLyp1 bndpbmQqIgorCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KKwkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9saWJ1bndpbmQKKwl9Cit9CisKK2xpYmN4eGFiaV9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2Mr PSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIgorCXBrZ19pbnN0YWxsKCkgeworCQl2 bW92ZSAidXNyL2xpYi9saWJjKythYmkuc28uKiIKKwl9Cit9CisKK2xpYmN4eGFiaS1kZXZlbF9w YWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysr IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGliY3h4YWJpPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5z bworCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5hCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS8qY3h4 YWJpKiIKKwl9Cit9CisKK2xpYmN4eF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysg c3RhbmRhcmQgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGli YysrLnNvLioiCisJfQorfQorCitsaWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNj Kz0iIC0gQysrIHN0YW5kYXJkIGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRz PSJsaWJjeHg+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9saWIvbGliYysrLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrLmEKKwkJdm1vdmUg dXNyL2xpYi9saWJjKytleHBlcmltZW50YWwuYQorCQl2bW92ZSB1c3IvaW5jbHVkZS9jKysKKwkJ dm1vdmUgdXNyL3NoYXJlL2RvYy9saWJjeHgKKwl9Cit9CisKK2xpYm9tcF9wYWNrYWdlKCkgewor CXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgorCXBrZ19pbnN0 YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSAidXNyL2xpYi9saWJv bXB0YXJnZXQucnRsLiouc28iCisJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNvCisJfQorfQor CitsaWJvbXAtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1Q IHN1cHBvcnQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYm9tcD49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9s aWIvbGlib21wKi5zbyIKKwkJdm1vdmUgInVzci9saWIvbGliYXJjaGVyKiIKKwkJdm1vdmUgInVz ci9pbmNsdWRlL29tcCouaCIKKwkJdm1vdmUgInVzci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNs dWRlL29tcCouaCIKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQorCQl2 bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5tcAorCX0KK30KKworbGlibGx2bTEzX3BhY2thZ2UoKSB7 CisJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJ dm1vdmUgInVzci9saWIvbGliTExWTS0qLnNvKiIKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dz L2xsdm0xMy91cGRhdGUgYi9zcmNwa2dzL2xsdm0xMy91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lOTVjZjI2YjM1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy91cGRhdGUKQEAgLTAsMCArMSwzIEBACitzaXRlPSJodHRwczovL2dpdGh1 Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMiCitwYXR0ZXJuPSJsbHZtb3JnLVxLKFxk Ky4pezJ9XGQrKC1yY1xkKyk/IgoraWdub3JlPSIqLXJjKiIKCkZyb20gOThkMWRkZmY3ZGViZWFh YjNkZTk5MTg3N2E3MTZjOWQ1Zjg0YTI2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog PT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0 aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogRnJpLCAzMSBEZWMgMjAyMSAxNjoyMzoxNyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDIvMzBdIGxsdm06IHVwZGF0ZSB0byAxMy4wLjAKCi0tLQogc3JjcGtn cy9sbHZtL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtL3RlbXBsYXRlIGIv c3JjcGtncy9sbHZtL3RlbXBsYXRlCmluZGV4IGE5MmRiNmY5NGY5Zi4uYmNmZWU4MjA5OGZmIDEw MDY0NAotLS0gYS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtL3RlbXBs YXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsbHZtJwogcGtnbmFt ZT1sbHZtCi12ZXJzaW9uPTEyLjAuMAordmVyc2lvbj0xMy4wLjAKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1ldGEKLWRlcGVuZHM9Imxsdm0xMiIKLXJlcGxhY2VzPSJsbHZtMTE+PTAgbGx2bTEw Pj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02LjA+PTAgbGx2bTMuOT49MCIKK2Rl cGVuZHM9Imxsdm0xMyIKK3JlcGxhY2VzPSJsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBs bHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9k ZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgoKRnJvbSA1YzU3MjdmZmRi NDE3NjRjMTZlNjYxNDExZTQ1NmUwZGY1MDBlZjM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBs ZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAyMDIxIDE2OjQzOjU2ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwMy8zMF0gbGx2bTEyOiByZW1vdmUgY2xhbmcgcGFydHMKCi0t LQogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0IC0t LQogLi4uL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2ggIHwgMTEwIC0t LS0tLS0KIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAx MyAtCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCAgfCAgNDgg LS0tCiAuLi4vY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaCAgICAgICAgfCAgMTEg LQogLi4uL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoICAgIHwgIDM1IC0t CiAuLi4vbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90LnBhdGNoICAgfCAgMTAgLQog Li4uL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyIC0tLS0K IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2ggICAgICB8ICAyNiAtLQog c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoICAgICAgIHwgIDIyIC0tCiAu Li4vbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggfCAgMTEgLQogc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggICAgIHwgIDI1IC0tCiBzcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCAgfCAgNjMgLS0tLQogc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxIC0tCiAuLi4v bGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2ggICAgfCAgMjEgLS0KIHNyY3Br Z3MvbGx2bTEyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArLS0tLS0tLS0t LS0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA4MzIgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEt Zml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHlu YW1pYy1saW5rZXItcGF0aC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVy LXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11 c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4 eC1wcGMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xp YmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4t aW5jbHVzaW9uLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVu d2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGU0ZWFhNzc4M2U3YS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv Y2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDQgKzAsMCBAQAotRnJvbSAzNTI5NzQxNjlmMGQyYjVkYTNkNTMyMWY1ODhmNWUzYjU5 NDEzMzBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxlb25p IDxtaXdheGVAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjE0OjU3ICswMjAw Ci1TdWJqZWN0OiBbUEFUQ0ggMi83XSBmaXggdW53aW5kIGNoYWluIGluY2x1c2lvbgotCi0tLS0K LSBsaWIvSGVhZGVycy91bndpbmQuaCB8IDkgKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9IZWFkZXJz L3Vud2luZC5oIGIvbGliL0hlYWRlcnMvdW53aW5kLmgKLWluZGV4IDMwM2Q3OTIuLjQ0ZTEwY2Mg MTAwNjQ0Ci0tLS0gYS9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAotKysrIGIvY2xhbmcvbGli L0hlYWRlcnMvdW53aW5kLmgKLUBAIC05LDkgKzksNiBAQAotIAotIC8qIFNlZSAiRGF0YSBEZWZp bml0aW9ucyBmb3IgbGliZ2NjX3MiIGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCi0gCi0t I2lmbmRlZiBfX0NMQU5HX1VOV0lORF9ICi0tI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0tCi0g I2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikK LSAvKiBEYXJ3aW4gKGZyb20gMTEueCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdz IGF2YWlsYWJsZSwKLSAgKiB1c2UgaXQuIGxpYnVud2luZCB3cmFwcyBzb21lIG9mIGl0cyBkZWZp bml0aW9ucyBpbiAjaWZkZWYgX0dOVV9TT1VSQ0UsCi1AQCAtMzksNiArMzYsOSBAQAotICMgZW5k aWYKLSAjZWxzZQotIAotKyNpZm5kZWYgX19DTEFOR19VTldJTkRfSAotKyNkZWZpbmUgX19DTEFO R19VTldJTkRfSAotKwotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaWZkZWYgX19jcGx1c3Bs dXMKLUBAIC0zMjIsNiArMzIyLDcgQEAgX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFz ZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotIH0KLSAjZW5kaWYKLSAKLSsjZW5kaWYgLyog X19DTEFOR19VTldJTkRfSCAqLwotKwotICNlbmRpZgotIAotLSNlbmRpZiAvKiBfX0NMQU5HX1VO V0lORF9IICovCi0tLSAKLTIuNS4xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMjU2ODhkNDBkYmMyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDExMCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNw cAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKLUBAIC0yMDg2LDcg KzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRk RGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJp cGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3Vz ZS1saW51eC1nbnVlYWJpIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmki LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wt bGludXgtZ251ZWFiaWhmIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJE aXJzW10gPSB7Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBs ZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07Ci1AQCAtMjE1 Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6 OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAi cG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07Ci0gICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5r bm93bi1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKLSAK LSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0Iiwg Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsK LUBAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9u RGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAgcmV0dXJuOwotICAgfQotIAot KyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OwotKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0gewotKyAgICAg ICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgotKyAg ICB9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsi YXJtLWxpbnV4LW11c2xlYWJpIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZf NjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Ci0r ICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKLSsgICAg ICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAotKyAgICAgICAgIm1p cHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCi0rICAgIH07Ci0rICAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4 LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKLSsgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBj NjRsZS1saW51eC1tdXNsIn07Ci0rCi0rICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2go KSkgewotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKLSsgICAgICBMaWJEaXJzLmFw cGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJj aDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJj aDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRy aXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKLSsg ICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsK LSsgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxl OjpNdXNsRUFCSUhGKSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1I Rk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9IGVsc2Ugewot KyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQo QVJNTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjp4ODZfNjQ6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAg ICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMp KTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxl cyksIGVuZChYODZNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6eDg2OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBl bmQoWDg2TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11 c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQo WDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlw bGU6Om1pcHM6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQo TUlQU0xpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVz bFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hM aWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0r ICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyks IGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGNsZToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMp LCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMp KTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBs ZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0bGU6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxp YkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0r ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xF TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xF TXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAg ICBkZWZhdWx0OgotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rICAgIFRyaXBsZUFsaWFzZXMucHVz aF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7Ci0rICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkg IT0gQmlhcmNoVHJpcGxlLnN0cigpKQotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9i YWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsKLSAgIC8vIEFu ZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVz LgotICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewotICAgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBh dGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkNjQxMmQxZTZj Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBj NjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg QEAKLS0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLSsrKyBiL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLUBAIC01MDQsMTAgKzUwNCw2IEBA IHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWljTGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3Mp IGNvbnN0IHsKLSAgICAgTG9hZGVyID0gImxkLnNvLjEiOwotICAgICBicmVhazsKLSAgIGNhc2Ug bGx2bTo6VHJpcGxlOjpwcGM2NDoKLS0gICAgTGliRGlyID0gImxpYjY0IjsKLS0gICAgTG9hZGVy ID0KLS0gICAgICAgICh0b29sczo6cHBjOjpoYXNQUENBYmlBcmcoQXJncywgImVsZnYyIikpID8g ImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKLS0gICAgYnJlYWs7Ci0gICBjYXNlIGxsdm06OlRy aXBsZTo6cHBjNjRsZToKLSAgICAgTGliRGlyID0gImxpYjY0IjsKLSAgICAgTG9hZGVyID0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxm djIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVs ZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWZjODAwM2M1ZjEuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1t dXNsLWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLS0tIGEvY2xh bmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLSsrKyBiL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRz L1BQQy5oCi1AQCAtNDE1LDExICs0MTUsMTAgQEAgcHVibGljOgotICAgICAgIExvbmdEb3VibGVG b3JtYXQgPSAmbGx2bTo6QVBGbG9hdDo6SUVFRWRvdWJsZSgpOwotICAgICB9IGVsc2UgaWYgKChU cmlwbGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKLSAgICAgICBEYXRh TGF5b3V0ID0gImUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MiI7Ci0g ICAgIH0gZWxzZSB7Ci0gICAgICAgRGF0YUxheW91dCA9ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsK LS0gICAgICBBQkkgPSAiZWxmdjEiOwotICAgICB9Ci0rICAgIEFCSSA9ICJlbGZ2MiI7Ci0gCi0g ICAgIGlmIChUcmlwbGUuaXNPU0ZyZWVCU0QoKSB8fCBUcmlwbGUuaXNPU09wZW5CU0QoKSB8fCBU cmlwbGUuaXNNdXNsKCkpIHsKLSAgICAgICBMb25nRG91YmxlV2lkdGggPSBMb25nRG91YmxlQWxp Z24gPSA2NDsKLS0tLSBhL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCi0rKysgYi9j bGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAotQEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAg Y29uc3QgVGFyZ2V0Q29kZUdlbkluZm8gJkNvZGVHZW5Nb2R1bGU6OmdldFRhcmdldENvZGVHZW5J bmZvKCkgewotICAgICAgIHJldHVybiBTZXRDR0luZm8obmV3IEFJWFRhcmdldENvZGVHZW5JbmZv KFR5cGVzLCAvKklzNjRCaXQqLyB0cnVlKSk7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0JpbkZv cm1hdEVMRigpKSB7Ci0tICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQ UEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwotLSAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkko KSA9PSAiZWxmdjIiKQotLSAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7 Ci0rICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FC SUluZm86OkVMRnYyOwotKyAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEi KQotKyAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0gICAgICAgYm9v bCBJc1NvZnRGbG9hdCA9IENvZGVHZW5PcHRzLkZsb2F0QUJJID09ICJzb2Z0IjsKLSAKLSAgICAg ICByZXR1cm4gU2V0Q0dJbmZvKAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0Ns YW5nLmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotQEAg LTE5MjAsMTQgKzE5MjAsNyBAQCB2b2lkIENsYW5nOjpBZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFy Z0xpc3QgJkFyZ3MsCi0gICBjb25zdCBsbHZtOjpUcmlwbGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5n ZXRUcmlwbGUoKTsKLSAgIGlmIChULmlzT1NCaW5Gb3JtYXRFTEYoKSkgewotICAgICBzd2l0Y2gg KGdldFRvb2xDaGFpbigpLmdldEFyY2goKSkgewotLSAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBj NjQ6IHsKLS0gICAgICBpZiAoKFQuaXNPU0ZyZWVCU0QoKSAmJiBULmdldE9TTWFqb3JWZXJzaW9u KCkgPj0gMTMpIHx8Ci0tICAgICAgICAgIFQuaXNPU09wZW5CU0QoKSB8fCBULmlzTXVzbCgpKQot LSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7Ci0tICAgICAgZWxzZQotLSAgICAgICAgQUJJTmFt ZSA9ICJlbGZ2MSI7Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsgICAgY2FzZSBsbHZtOjpUcmlw bGU6OnBwYzY0OgotICAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgICBBQklO YW1lID0gImVsZnYyIjsKLSAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggODkzYzA1OWQ3YjhkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVjb250ZXh0LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0 aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCi0rKysgYi9jb21waWxlci1ydC9s aWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtMTc5OSw3ICsxNzk5 LDcgQEAKLSAKLSBzdGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0 LCB1NjQgKmVzcikgewotICAgc3RhdGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAx OwotLSAgdTggKmF1eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOwotKyAgdTgg KmF1eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVz ZXJ2ZWQpOwotICAgd2hpbGUgKHRydWUpIHsKLSAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2Fh cmNoNjRfY3R4ICopYXV4OwotICAgICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVy LXBwYzY0LW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZjE2ZDI0 ZjM0MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCww IEBACi0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGlu dXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJf bGludXguY3BwCi1AQCAtNzQsNiArNzQsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4K LSAjZW5kaWYKLSAKLSsjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18p Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsjZW5kaWYKLSsKLSAjaWYgU0FOSVRJWkVSX0xJ TlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAotICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4K LSAjZW5kaWYKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXpl cl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRp emVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAotQEAgLTkyLDcg KzkyLDcgQEAKLSAjIGluY2x1ZGUgPHV0aW1lLmg+Ci0gIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+ Ci0gI2lmIGRlZmluZWQoX19taXBzNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAotLSAgICBTQU5JVElaRVJfUklTQ1Y2NAotKyAgICBkZWZpbmVkKF9f cG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAotICMgIGluY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KLSAjICBpZmRlZiBfX2FybV9fCi0gdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3MgZWxmX2Zw cmVnc2V0X3Q7Ci0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6 ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIv c2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3Bw Ci1AQCAtMzEsNyArMzEsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9yIHBpZF90 Ci0gI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCi0gI2luY2x1ZGUgPGVsZi5oPiAv LyBmb3IgTlRfUFJTVEFUVVMKLS0jaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNBTklUSVpF Ul9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSsjaWYgKGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FO SVRJWkVSX0FORFJPSUQKLSAvLyBHTElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBpbmNsdWRl IGFzbS9wdHJhY2UuaAotICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2ggYi9z cmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNpemVfdC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMmM2MzA2M2E1ZTllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxMCArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIvZnV6emVyL0Z1enplcklu dGVyY2VwdG9ycy5jcHAub3JpZwotKysrIGIvY29tcGlsZXItcnQvbGliL2Z1enplci9GdXp6ZXJJ bnRlcmNlcHRvcnMuY3BwCi1AQCAtMjUsNiArMjUsNyBAQAotICAgfQotIAotICNpbmNsdWRlIDxj YXNzZXJ0PgotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNs dWRlIDxkbGZjbi5oPiAvLyBmb3IgZGxzeW0oKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZDBiNjFjODBjODk3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIveHJheS94 cmF5X3Bvd2VycGM2NC5pbmMKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJw YzY0LmluYwotQEAgLTEyLDcgKzEyLDEzIEBACi0gCi0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2lu Y2x1ZGUgPG11dGV4PgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8c3lzL3BsYXRmb3Jt L3BwYy5oPgotKyNlbHNlCi0rI2luY2x1ZGUgPGNjdHlwZT4KLSsjaW5jbHVkZSA8Y3N0cmluZz4K LSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjZW5kaWYKLSAKLSAjaW5jbHVkZSAieHJheV9kZWZzLmgi Ci0gCi1AQCAtMjAsMTMgKzI2LDQ1IEBAIG5hbWVzcGFjZSBfX3hyYXkgewotIAotIEFMV0FZU19J TkxJTkUgdWludDY0X3QgcmVhZFRTQyh1aW50OF90ICZDUFUpIFhSQVlfTkVWRVJfSU5TVFJVTUVO VCB7Ci0gICBDUFUgPSAwOwotKyNpZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRf dGltZWJhc2UoKTsKLSsjZWxzZQotKyAgcmV0dXJuIF9fYnVpbHRpbl9wcGNfZ2V0X3RpbWViYXNl KCk7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSB1aW50NjRfdCBnZXRUU0NGcmVxdWVuY3koKSBY UkFZX05FVkVSX0lOU1RSVU1FTlQgewotICAgc3RhdGljIHN0ZDo6bXV0ZXggTTsKLSAgIHN0ZDo6 bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBHdWFyZChNKTsKLSsjaWZkZWYgX19HTElCQ19fCi0gICBy ZXR1cm4gX19wcGNfZ2V0X3RpbWViYXNlX2ZyZXEoKTsKLSsjZWxzZQotKyAgLyogRklYTUU6IGEg bGVzcyBkaXJ0eSBpbXBsZW1lbnRhdGlvbj8gKi8KLSsgIHN0YXRpYyB1aW50NjRfdCBiYXNlOwot KyAgaWYgKCFiYXNlKSB7Ci0rICAgIEZJTEUgKmYgPSBmb3BlbigiL3Byb2MvY3B1aW5mbyIsICJy YiIpOwotKyAgICBpZiAoZikgewotKyAgICAgIHNzaXplX3QgbnI7Ci0rICAgICAgLyogdmlydHVh bGx5IGFsd2F5cyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIGxpbmUgKi8KLSsgICAgICBjaGFyIGJ1 Zls1MTJdOwotKyAgICAgIHdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkgewotKyAg ICAgICAgY2hhciAqcmV0ID0gc3Ryc3RyKGJ1ZiwgInRpbWViYXNlIik7Ci0rICAgICAgICBpZiAo IXJldCkgewotKyAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldCAr PSBzaXplb2YoInRpbWViYXNlIikgLSAxOwotKyAgICAgICAgcmV0ID0gc3RyY2hyKHJldCwgJzon KTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAg fQotKyAgICAgICAgYmFzZSA9IHN0cnRvdWwocmV0ICsgMSwgbnVsbHB0ciwgMTApOwotKyAgICAg ICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICAgIGZjbG9zZShmKTsKLSsgICAgfQotKyAgfQotKyAg cmV0dXJuIGJhc2U7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSBib29sIHByb2JlUmVxdWlyZWRD UFVGZWF0dXJlcygpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkMzFm ZmMyY2IxLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgt bXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLSBhL2xpYmN4eC9p bmNsdWRlL2xvY2FsZQotKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCi1AQCAtNzQyLDcgKzc0 MiwxMSBAQCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3Qg Y2hhciogX19hX2VuZCwKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5 cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGVycm5vID0g MDsKLSAgICAgICAgIGNoYXIgKl9fcDI7Ci0rI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVm aW5lZChfX0dMSUJDX18pCi0rICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAm X19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xs X2woX19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0g ICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUg X19jdXJyZW50X2Vycm5vID0gZXJybm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09 IDApCi0gICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87Ci1AQCAtNzgyLDcgKzc4Niwx MSBAQCBfX251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBj aGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlw ZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOwotICAgICAgICAgZXJybm8gPSAw OwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZp bmVkKF9fR0xJQkNfXykKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91 bGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAgICAgdW5zaWduZWQgbG9uZyBs b25nIF9fbGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19M T0NBTEUpOwotKyNlbmRpZgotICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNs dHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOwotICAgICAgICAgaWYg KF9fY3VycmVudF9lcnJubyA9PSAwKQotICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5v OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3YTkyZjgwMDRlMWMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCww IEBACi1UaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5lZCBjb3JyZWN0bHkgdW5kZXIg YWxsIGxvbmcgZG91YmxlIEFCSXMsCi1pbmNsdWRpbmcgbXVzbCBhbmQgaXRzIDY0LWJpdCBsb25n IGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19gCi1pcyBub3QgZGVmaW5lZCBv biBnY2MuCi0KLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cwotKysrIGIvbGliY3h4L2luY2x1 ZGUvbGltaXRzCi1AQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Ci0gICAgIF9MSUJDUFBf SU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgc2lnbmFsaW5n X05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7fQotICAgICBfTElC Q1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiB0eXBlIGRlbm9y bV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVOT1JNX01JTl9fO30KLSAKLS0jaWYg KGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQotKyNpZiBkZWZpbmVkKF9f cG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIChfX0xEQkxfTUFYX0VY UF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRfRElHX18gPT0gX19EQkxfTUFO VF9ESUdfXykKLSsgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJsZSBwcmVjaXNpb24g Ki8KLSsgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0g dHJ1ZTsKLSsjZWxzZQotKyAgICAvKiAxMjgtYml0IElCTSBkb3VibGUtZG91YmxlICovCi0gICAg IHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IGZhbHNlOwot KyNlbmRpZgotICNlbHNlCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29s IGlzX2llYzU1OSA9IHRydWU7Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNzAyOTJiZWIyZmNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg QEAKLS0tLSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4L0NNYWtlTGlzdHMu dHh0Ci1AQCAtNzY5LDYgKzc2OSw4IEBAIGZ1bmN0aW9uKGN4eF9saW5rX3N5c3RlbV9saWJyYXJp ZXMgdGFyZ2V0KQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg YXRvbWljKQotICAgZW5kaWYoKQotIAotKyNzc3AgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rh cmdldH0gUFJJVkFURSBzc3Bfbm9uc2hhcmVkKQotKwotICAgaWYgKE1JTkdXKQotICAgICB0YXJn ZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgIiR7TUlOR1dfTElCUkFSSUVTfSIp Ci0gICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFi aS1kbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTE1ZjlkYjhjOTguLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI1ICswLDAgQEAKLUFsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZp bmVkIHJlZmVyZW5jZXMuCi0KLS0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLSsr KyBiL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC03Myw2ICs3Myw3IEBACi0gICBl bmRpZigpCi0gCi0gICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMp Ci0rICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQotIGVuZGlm KCkKLSAKLSBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSKQotLS0tIGEvbGliY3h4L0NN YWtlTGlzdHMudHh0Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NDUsNiArNzQ1 LDEwIEBACi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQot ICAgZW5kaWYoKQotIAotKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIpCi0rICAgIHRhcmdldF9saW5r X2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkKLSsgIGVuZGlmKCkKLSsKLSAgIGlmIChM SUJDWFhfSEFTX1JUX0xJQikKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQ UklWQVRFIHJ0KQotICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2lu ZC1wcGMzMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhYTc1NzZlY2Y5 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBj MzIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1UaGlzIGZpeGVzIGJ1aWxk IGF0IGxlYXN0IHdpdGggZ2NjOSB3aGljaCBkb2VzIG5vdCBkZWZpbmUgYF9fcHBjX19gLgotCi0t LS0gYS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaAotKysrIGIvbGlidW53 aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKLUBAIC00OSw3ICs0OSw3IEBACi0gIyAg ZGVmaW5lIF9MSUJVTldJTkRfQ09OVEVYVF9TSVpFIDE2NwotICMgIGRlZmluZSBfTElCVU5XSU5E X0NVUlNPUl9TSVpFIDE3OQotICMgIGRlZmluZSBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZfUkVH SVNURVIgX0xJQlVOV0lORF9ISUdIRVNUX0RXQVJGX1JFR0lTVEVSX1BQQzY0Ci0tIyBlbGlmIGRl ZmluZWQoX19wcGNfXykKLSsjIGVsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjICBkZWZpbmUg X0xJQlVOV0lORF9UQVJHRVRfUFBDIDEKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJ WkUgMTE3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTI0Ci0tLS0gYS9saWJ1 bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotKysrIGIvbGlidW53aW5kL3NyYy9V bndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKLUBAIC0zOTIsNyArMzkyLDcgQEAgTG5vdmVjOgotICAg UFBDNjRfTFIoMykKLSAgIGJjdHIKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9aTjls aWJ1bndpbmQxM1JlZ2lzdGVyc19wcGM2anVtcHRvRXYpCi0gLy8KLS0tLSBhL2xpYnVud2luZC9z cmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lz dGVyc1NhdmUuUwotQEAgLTU1NCw3ICs1NTQsNyBAQCBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9O KF9fdW53X2dldGNvbnRleHQpCi0gICBibHIKLSAKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18p Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSAvLwotIC8vIGV4dGVybiBpbnQgdW53 X2dldGNvbnRleHQodW53X2NvbnRleHRfdCogdGhyZWFkX3N0YXRlKQotLS0tIGEvbGlidW53aW5k L3NyYy9jb25maWcuaAotKysrIGIvbGlidW53aW5kL3NyYy9jb25maWcuaAotQEAgLTk1LDEyICs5 NSwxMiBAQAotICNkZWZpbmUgX0xJQlVOV0lORF9CVUlMRF9TSkxKX0FQSVMKLSAjZW5kaWYKLSAK LS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICNkZWZpbmUgX0xJQlVO V0lORF9TVVBQT1JUX0ZSQU1FX0FQSVMKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotLSAgICBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSAgICAgKCFkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX2FybV9fKSkgfHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoZGVmaW5lZChfX2FybTY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg IGRlZmluZWQoX19taXBzX18pCi0tLS0gYS9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKLSsr KyBiL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAotQEAgLTQyLDcgKzQyLDcgQEAgX0xJQlVO V0lORF9ISURERU4gaW50IF9fdW53X2luaXRfbG9jYWwodW53X2N1cnNvcl90ICpjdXJzb3IsCi0g IyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfeDg2XzY0Ci0gI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYzY0Ci0t I2VsaWYgZGVmaW5lZChfX3BwY19fKQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gIyBk ZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19hcm02NApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NjAxYzBkMTM4NTIzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bGRiLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0tLS0gYS9sbGRi L3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgKLSsrKyBiL2xsZGIvc291cmNl L1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAotQEAgLTEwLDIxICsxMCwxMiBAQAotIC8v IHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVj dHVyZXMuCi0gCi0gI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgotIAotLSNpZmRlZiBfX0FORFJPSURfXwotLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKLS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsK LS10eXBlZGVmIGVsZl9ncmVnX3QKLS0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1 c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07Ci0tdHlwZWRlZiBzdHJ1Y3QgdXNl cl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNk ZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNl bGlmIGRlZmluZWQoX19taXBzX18pCi0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRf RlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbmRpZgotLSNl bHNlIC8vIF9fQU5EUk9JRF9fCi0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChf X3Bvd2VycGNfXykKLSsjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9yZWdzCi0rI2luY2x1ZGUgPHN5 cy9wcm9jZnMuaD4KLSsjdW5kZWYgcHRfcmVncwotKyNlbHNlCi0gI2luY2x1ZGUgPHN5cy9wcm9j ZnMuaD4KLS0jZW5kaWYgLy8gX19BTkRST0lEX18KLSsjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA4ZTBhOWE3NzlkMWIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAs MCBAQAotY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQzODRjMjQzMTM3YjUzZmMKLUF1 dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFR1ZSBK dW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAotCi0gICAgZW5hYmxlIGNvbXBpbGVyLXJ0IHN1cHBv cnQgZm9yIHBwYzMyCi0KLWRpZmYgLS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZp Zy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1pbmRl eCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAotLS0tIGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1j b25maWctaXguY21ha2UKLSsrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNt YWtlCi1AQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFyZ2V0cykKLSAgICAgZWxzZWlm KCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjNjRs ZSIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRsZSAiIiAiLW02NCIpCi0gICAg IGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93 ZXJwYyIpCi0tICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiQUlYIikKLS0gICAg ICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCi0tICAgICAgZW5kaWYoKQot KyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCi0gICAgICAgdGVzdF90 YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJf UlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4IikKLSAgICAgICB0ZXN0X3Rh cmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvdGVtcGxh dGUgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQppbmRleCA3Y2UxODAyOGU0YTMuLjdiMzYxYmJi ZjViYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9s bHZtMTIvdGVtcGxhdGUKQEAgLTEsMjUgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xs dm0xMicKIHBrZ25hbWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249MgorcmV2aXNp b249Mwogd3Jrc3JjPSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF93cmtzcmM9 bGx2bQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIKICAtRENNQUtFX0JVSUxE X1RZUEU9UmVsZWFzZSAtV25vLWRldgogIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAt RExMREJfVVNFX1NZU1RFTV9TSVg9WUVTCi0gLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKLSAt RExJQkNYWF9FTkFCTEVfU1RBVElDX0FCSV9MSUJSQVJZPVlFUwotIC1ETElCQ1hYQUJJX1VTRV9M TFZNX1VOV0lOREVSPVlFUwotIC1ETElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVT Ci0gLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1ZRVMKLSAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9 Tk8KICAtRExMVk1fSU5DTFVERV9ET0NTPVlFUwogIC1ETExWTV9CVUlMRF9ET0NTPVlFUwogIC1E TExWTV9FTkFCTEVfU1BISU5YPVlFUwogIC1EU1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwot IC1ETExWTV9JTlNUQUxMX1VUSUxTPVlFUwogIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUwog IC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0VOQUJMRV9SVFRJPVlFUwpAQCAt NTEsODcgKzQzLDEwIEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYyopIGNv bmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7CiBlc2FjCiAKLV9l bmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJj eHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCi0KLV9sbGRiX2VuYWJsZT15ZXMKLV9saWJvbXBf ZW5hYmxlPW5vCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0bGUqKSA7 OwotCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1ubyA7OwotZXNhYwotCi1jYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFi bGU9eWVzOzsKLWVzYWMKLQotc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgotCi0jIG11 c3QgZ28gYmVmb3JlIGNsYW5nCi1pZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhl bgotCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKLQlzdWJwYWNrYWdlcys9IiBsaWJvbXAg bGlib21wLWRldmVsIgotCSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBs aWJvbXB0YXJnZXQuc28uKgotCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgotZmkKLQotc3VicGFja2FnZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcg bGliY2xhbmctY3BwCi0gbGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4 IGxpYmN4eC1kZXZlbAotIGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTEyIgotCi1p ZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkjIFhYWCBmYWlscyB0byBjcm9z cyBjb21waWxlIGR1ZSB0byBweXRob24KLQlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgotCXN1 YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIKLWZpCi0KLXN1YnBhY2thZ2VzKz0iIGxsZCBs bGQtZGV2ZWwiCi0KLWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtf ZW5hYmxlZF9wcm9qZWN0c30iCi0KIHBvc3RfcGF0Y2goKSB7Ci0JaWYgWyAiJF9sbGRiX2VuYWJs ZSIgPSAieWVzIiBdOyB0aGVuCi0JCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBd OyB0aGVuCi0JCQl2c2VkIC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKLQkJCQkke3dy a3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51 eC5jcHAKLQkJZmkKLQkJIyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdl bmVyYXRlCi0JCXZzZWQgLWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKLQkJCSR7d3Jr c3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0Ci0JZmkKLQogCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBm b3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgogCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9u bWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKIAkJJHt3cmtzcmN9L2xsdm0v Y21ha2UKLQotCSMgZml4IGxpbmtlciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCi0JdnNlZCAtaSAn cyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19M SUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQot CXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFT X0dDQ19MSUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5j bWFrZQotCi0JIyBuZWVkIGxpYnNzcF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAo YmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgotCQlwcGM2NCopIDs7Ci0JCXBwYyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKLQkJCXZz ZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVk KSwnIFwKLQkJCQkke3dya3NyY30vbGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotCQkJdnNl ZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQp LCcgXAotCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2Vk IC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQll c2FjCi0KLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJeDg2XzY0LW11c2wpICMg c29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0 cmFjZQotCQkJdnNlZCAtaSAncywjIFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQg U0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhlY2luZm8pLCcgXAotCQkJCSR7d3Jrc3JjfS9j b21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQkJYXJtKi1tdXNsfGk2ODYtbXVzbCkg IyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMg Yml0cwotCQkJdnNlZCAtaSAncy9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04g VFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKLQkJ CQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JCQk7OwotCWVz YWMKIH0KIAogcHJlX2NvbmZpZ3VyZSgpIHsKQEAgLTE1OCwxMCArNzMsOCBAQCBwcmVfY29uZmln dXJlKCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJ LURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFr ZWpvYnN9IC1DIHV0aWxzL1RhYmxlR2VuCi0JCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xh bmcvdXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2Ug JHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJn cys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10 YmxnZW4iCi0JCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xs dm0vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5 ZXMiIF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZt L2J1aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0yMDIsMjE4 ICsxMTUsNiBAQCBkb19pbnN0YWxsKCkgewogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgog CQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAogCWZpCi0KLQkjIElu c3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2lu Y2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtz cmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQotCi0JIyBJbnN0 YWxsIGxpYnVud2luZCBoZWFkZXJzCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNs dWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jr c3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5z dGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRl Ci0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vu d2luZF9lbmNvZGluZy5oIFwKLQkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbwotfQotCi1jbGFuZy1h bmFseXplcl9wYWNrYWdlKCkgewotCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3 IgotCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgot CXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKLQlob21l cGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKLQkJdm1vdmUgIi91c3Iv YmluL3NjYW4tKiIKLQkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9s aWJleGVjLyphbmFseXplciIKLQl9Ci19Ci0KLWNsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7 Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNp b259IHB5dGhvbjMiCi0Jc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgotCWhvbWVw YWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgdXNyL2luY2x1ZGUvY2xhbmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5 LXJlcGxhY2VtZW50cwotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5Ci0JCXZtb3ZlIHVzci9i aW4vY2xhbmctcmVuYW1lCi0JCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQotCQl2bW92ZSB1c3Iv YmluL2RpYWd0b29sCi0JCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwotCQl2bW92ZSB1 c3IvYmluL2htYXB0b29sCi0JCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQotCQl2bW92ZSB1c3Iv YmluL3BwLXRyYWNlCi0JCXZtb3ZlIHVzci9iaW4vc2FuY292Ci0JCXZtb3ZlICJ1c3IvbGliL2xp YmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5 KiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKLQkJdm1vdmUgInVzci9zaGFyZS9j bGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKLQkJdm1vdmUg dXNyL3NoYXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCi0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9kaWFndG9vbC4xCi0JfQotfQotCi1jbGFuZ19wYWNrYWdlKCkgewotCWxpYjMyZGlz YWJsZWQ9eWVzCi0JZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRp bHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAotCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgotCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKLQlo b21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZt b3ZlIHVzci9pbmNsdWRlL2NsYW5nCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKLQkJdm1v dmUgInVzci9iaW4vKmNsYW5nKiIKLQkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKLQkJdm1v dmUgdXNyL2xpYi9jbGFuZwotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nKi5hIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCi0JCXZt b3ZlIHVzci9zaGFyZS9jbGFuZwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCi0JCXZtb3Zl IHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCi0JfQotfQotCi1saWJjbGFuZ19wYWNrYWdlKCkg ewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKLQl9Ci19Ci0KLWxpYmNs YW5nLWNwcF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUg bGlicmFyeSAoQysrIGludGVyZmFjZSkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3Iv bGliL2xpYmNsYW5nLWNwcC5zby4qIgotCX0KLX0KLQotbGxkX3BhY2thZ2UoKSB7Ci0JbGliMzJk aXNhYmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgotCWhvbWVwYWdlPSJodHRwczov L2xsZC5sbHZtLm9yZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi9sbGQqCi0J CXZtb3ZlIHVzci9iaW4vd2FzbS1sZAotCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKLQkJdm1vdmUg dXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKLQl9Ci19Ci0KLWxs ZC1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9IiAt IGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZt Lm9yZyIKLQlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xs ZAotCQl2bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKLQl9Ci19Ci0KLWxsZGJfcGFja2FnZSgpIHsK LQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCi0Jc2hvcnRfZGVz Yys9IiAtIExMREIgZGVidWdnZXIiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8i Ci0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vKmxsZGIqCi0JCXZtb3ZlIHVzci9s aWIvbGlibGxkYipzby4qCi0JCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKLQl9Ci19Ci0KLWxsZGIt ZGV2ZWxfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9ImxsZGI+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBk ZXZlbG9wbWVudCBmaWxlcyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUv bGxkYgotCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKLQl9Ci19Ci0KLWxsdm0tbGlidW53 aW5kX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKLQlwa2dfaW5zdGFs bCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCi0JfQotfQotCi1sbHZtLWxp YnVud2luZC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBk ZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLQljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKLQlwa2dfaW5zdGFs bCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJ1 bndpbmQuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCi0JCXZtb3ZlIHVzci9pbmNs dWRlL21hY2gtbwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAotCX0KLX0KLQotbGli Y3h4YWJpX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZv ciBsaWJjKysiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5z by4qIgotCX0KLX0KLQotbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9 IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlk ZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwo KSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysr YWJpLmEKLQkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgotCX0KLX0KLQotbGliY3h4X3Bh Y2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgotCXBrZ19p bnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKLQl9Ci19Ci0KLWxpYmN4 eC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFy eSAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KLQkJ dm1vdmUgdXNyL2xpYi9saWJjKysuYQotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRh bC5hCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4 eAotCX0KLX0KLQotbGlib21wX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9w ZW5NUCBzdXBwb3J0IGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIv bGlib21wLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKLQkJdm1v dmUgdXNyL2xpYi9saWJhcmNoZXIuc28KLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgot CX0KLX0KLQotbGlib21wLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5n IE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJs aWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3Zl ICJ1c3IvbGliL2xpYm9tcCouc28iCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCi0JCXZt b3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lv bn0vaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1w LjEKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKLQl9CiB9CiAKIGxpYmxsdm0xMl9wYWNr YWdlKCkgewoKRnJvbSA5ZThmNzA3MGJiZTI0MmQ5MGEyYjA2ODgxNDZkNzgwZGZlNThjODgxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5 PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTYXQs IDEgSmFuIDIwMjIgMTU6NTc6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzMwXSBydGFnczog cmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBi NDk2YTFiMGU3MjEuLjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlz aW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBp biBkb19pbnN0YWxsLCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUi CgpGcm9tIDJhZTMxMDAzNDdmOGJiZWUwNjRmYzg4NDE0OWQwYzA0ZDg5N2VjZTUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0 b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4g MjAyMiAxNTo1ODoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzBdIGJwZnRyYWNlOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2JwZnRyYWNlL3RlbXBsYXRlCmlu ZGV4IDI4YWIzYzYyNjM5OS4uZWIyNDgwZDIyMzBlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JwZnRy YWNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9YnBmdHJhY2UKIHZl cnNpb249MC4xNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0ieDg2XzY0KiBhYXJj aDY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERf VEVTVElORz1PRkYiICAjIG5lZWRzIHJvb3QgdG8gcnVuCgpGcm9tIDQ0ZDA0ZDU0NmQ5MzFjYmIz Yzc2Y2Y3OTk5NTI5YzkzNjExZTI1MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0 c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1ODozOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDYvMzBdIGNsYXp5OiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtn cy9jbGF6eS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUgYi9zcmNw a2dzL2NsYXp5L3RlbXBsYXRlCmluZGV4IDExZjNiYWI1NWFlZi4uZjgxZGUwOGFiODM2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2xhenkvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjbGF6eScKIHBrZ25hbWU9 Y2xhenkKIHZlcnNpb249MS4xMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 Y21ha2UKIGJ1aWxkX2hlbHBlcj1xZW11CiBob3N0bWFrZWRlcGVuZHM9Imxsdm0iCgpGcm9tIDhj NWI2MzE4ODY5OTI1M2Y5YTc4YzJiMjQwYWY0ZWY4MmZhMmMzMmMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxs b3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1 ODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzBdIGNjbHM6IHJlYnVpbGQgZm9yIGxsdm0x MwoKLS0tCiBzcmNwa2dzL2NjbHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NjbHMvdGVt cGxhdGUgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKaW5kZXggZmJiN2M2ODQ3YmMxLi40MGFiYTNi NTViZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nj bHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjY2xzJwog cGtnbmFtZT1jY2xzCiB2ZXJzaW9uPTAuMjAyMTAzMzAKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMK IGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nLXRvb2xzLWV4dHJhIgog bWFrZWRlcGVuZHM9Imxsdm0gbmN1cnNlcy1kZXZlbCByYXBpZGpzb24gemxpYi1kZXZlbCBjbGFu Zy10b29scy1leHRyYSIKCkZyb20gZjQxNWU1MmZhNjJhOGNkZWEyNWQ4YjExOTIyZjcwMmRlNzhl NmQwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVw cj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0 ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU5OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8zMF0g aW5jbHVkZS13aGF0LXlvdS11c2U6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2lu Y2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW5jbHVk ZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3Rl bXBsYXRlCmluZGV4IGIxM2JiN2VlNTZhZi4uYjRiMTY3NDAxZWJlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5jbHVkZS13 aGF0LXlvdS11c2UvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdpbmNsdWRlLXdoYXQteW91LXVzZScKIHBrZ25hbWU9aW5jbHVkZS13aGF0LXlvdS11c2UKLXZl cnNpb249MC4xNgordmVyc2lvbj0wLjE3CiByZXZpc2lvbj0xCiB3cmtzcmM9IiR7cGtnbmFtZX0i CiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJMZWFoIE5l dWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+IgogbGljZW5zZT0iTkNTQSIKIGhvbWVwYWdlPSJodHRw czovL2luY2x1ZGUtd2hhdC15b3UtdXNlLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vaW5jbHVk ZS13aGF0LXlvdS11c2Uub3JnL2Rvd25sb2Fkcy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0uc3JjLnRh ci5neiIKLWNoZWNrc3VtPThkNmZjOWIyNTUzNDNiYzFlNWVjNDU5ZTM5NTEyZGYxZDUxYzYwZTAz NTYyOTg1ZTAwNzYwMzYxMTlmZjVhMWMKK2NoZWNrc3VtPWVjYTdjMDRmOGI0MTZiNjM4NWVkMDBl MzM2NjlhN2ZhNDY5M2NkMjZjYjcyYjUyMmNkZTU1ODgyOGViMGM2NjUKIHB5dGhvbl92ZXJzaW9u PTMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSAzZjVjZjg1NTNmMDk1NzRiN2Y3OTM5YWE1YWFl MTQyYTA5Y2FlNzk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91 aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMu b3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTY6MDE6MjEgKzAyMDAKU3ViamVjdDogW1BBVENI IDA5LzMwXSBjb2RlbGl0ZTogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvY29kZWxp dGUvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIGIvc3JjcGtn cy9jb2RlbGl0ZS90ZW1wbGF0ZQppbmRleCAzYTk5M2EyYzBjZmIuLjI0ZTJjODc5ZGQ0NSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NvZGVsaXRl L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY29kZWxpdGUn CiBwa2duYW1lPWNvZGVsaXRlCiB2ZXJzaW9uPTE1LjAuNgotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1jbWFrZS13eFdpZGdldHMtZ3RrMwog Y29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9QQ0g9MCAtRFdJVEhfV1hfQ09ORklHPXd4LWNvbmZpZy1n dGszCgpGcm9tIGU0MzYyODA5N2RhMjgzZDBlNWRiNTE5OTVkMDJkNTI5MTU0NzYyMmYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBC ZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBK YW4gMjAyMiAxNjoyMjo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzBdIGtkZXZlbG9wOiBy ZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUgYi9zcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRl CmluZGV4IDhkZWU3OGQ5ZjBjMC4uNWQ0ZmVlZDFiMjZjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2tk ZXZlbG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdrZGV2ZWxvcCcKIHBrZ25hbWU9a2RldmVsb3AK IHZlcnNpb249MjIuMDQuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgogaG9zdG1ha2VkZXBlbmRz PSJleHRyYS1jbWFrZS1tb2R1bGVzIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBxdDUtdG9vbHMK CkZyb20gMjEzYzVhYTJhYThiNTg4NDUyNzEzZTY1OTBhOThiNzE3NmYxMDRmZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRv bmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAy MDIyIDE2OjIzOjA3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS8zMF0ganVDaSsrOiByZWJ1aWxk IGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9qdUNpKysvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2p1Q2krKy90ZW1wbGF0ZSBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCmluZGV4IDFhNzYw NGI0NGEwMC4uNTEwMzMyNGRlYzIwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2p1Q2krKycKIHBrZ25hbWU9anVDaSsrCiB2ZXJzaW9uPTEuNi4yCi1yZXZp c2lvbj0yCityZXZpc2lvbj0zCiBfbGliY2xhbmdtbV9jb21taXQ9ImIzNDJmNGRkNmRlNGZlNTA5 YTY5MmE0YjRmY2ZjN2UyNGFhZTk1OTAiCiBfdGlueV9jb21taXQ9ImM5YzhiZjgxMGRkYWQ4Y2Qx Nzg4MmI5YTllZTYyOGE2OTBlNzc5ZjUiCiB3cmtzcmM9Imp1Y2lwcC12JHt2ZXJzaW9ufSIKCkZy b20gMDEyYzFiYTMxOGY5NDYwMDEzYzQxNzA2Mjk4MzdlMGFmNDM5OTJiNCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/ PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIy IDE4OjMwOjAxICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8zMF0gbGx2bTEzOiBmaXggbGlib21w KiBwYWNrYWdlcwoKLS0tCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCmluZGV4IDA4 ZDg0NzQ3MjUyNS4uYmZjOTEwNTZkMjc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0xMy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2xsdm0xMycKIHBrZ25hbWU9bGx2bTEzCiB2ZXJzaW9uPTEzLjAuMAot cmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5z cmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTM5Nyw2ICszOTcs NyBAQCBsaWJvbXBfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1 cHBvcnQgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2xpYi9saWJvbXAu c28KKwkJdm1vdmUgdXNyL2xpYi9saWJvbXB0YXJnZXQuc28KIAkJdm1vdmUgInVzci9saWIvbGli b21wdGFyZ2V0LnJ0bC4qLnNvIgogCQl2bW92ZSB1c3IvbGliL2xpYmFyY2hlci5zbwogCX0KQEAg LTQwNiw3ICs0MDcsNiBAQCBsaWJvbXAtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgogCWRl cGVuZHM9ImxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlwa2dfaW5zdGFsbCgpIHsK LQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zbyIKIAkJdm1vdmUgInVzci9saWIvbGliYXJjaGVy KiIKIAkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKIAkJdm1vdmUgInVzci9saWIvY2xhbmcv JHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKCkZyb20gZTA4NjNlN2Y3MDM0NjQ1MDNiMDhmN2Ey OTJmY2JiYTRiMGM3MWI2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x P0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0 cmVzLm9yZz4KRGF0ZTogU3VuLCAxNiBKYW4gMjAyMiAxNDozMzo1NiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTMvMzBdIGNocm9taXVtOiB1cGRhdGUgdGVtcGxhdGUgZm9yIGxsdm0xMwoKLS0tCiBz cmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgOCArLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IDBkY2U4NzcyZmRi OC4uODQ3OTJiODI5ODQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTIwLDcgKzIwLDcgQEAgZGVzY19vcHRp b25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRlc2Nfb3B0aW9uX2pzX29wdGlt aXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0ncyBVSSIKIGRlc2Nfb3B0aW9u X3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNoYXJpbmcgZm9yIFdlYlJUQyB2 aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nICJjbGFuZyBs bGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmph IG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxs ZCBsbHZtMTMiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEg bm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2 ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxhbmQtZGV2ZWwgbGliZXBveHkt ZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwg bnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxp Ymdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGlscy1kZXZlbApAQCAtMjY2LDEy ICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVzdGlu Z19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKLQotCQkjIHNlZ2Zh dWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19jZmk9ZmFsc2UnCi0JCSd1c2VfdGhpbl9sdG89 ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwotCQknY2hyb21lX3Bnb19waGFzZT0wJwog CSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSA5NGM4NWQ4YjhlNmI4ZTVh MjE2YzEwMDJlZTViZjE5NDUxOGQ1NzY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRp dHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIyIDE0OjM5OjA0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNC8zMF0gbGx2bTEyOiByZW1vdmUKCi0tLQogc3JjcGtncy9sbHZtMTIv SU5TVEFMTC5tc2cgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9sbHZtMTIvZmlsZXMv bGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSAtLQogc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoICAgIHwgIDU3IC0tLS0tLS0tLQogLi4uL3BhdGNoZXMv bGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCAgIHwgIDMwIC0tLS0tCiAuLi4vcGF0Y2hl cy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoICAgICAgfCAgMTEgLS0KIC4uLi9wYXRjaGVz L2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCAgICAgICB8ICAxOCAtLS0KIC4uLi9sbHZtMTIv cGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoICB8ICAzNiAtLS0tLS0KIC4uLi9wYXRj aGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCAgICB8ICAyNSAtLS0tCiBzcmNwa2dz L2xsdm0xMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKy0tLS0tLS0tLS0t LS0tLS0tCiBzcmNwa2dzL2xsdm0xMi91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgLQogMTAgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzMDUgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5o CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAw Mi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEyL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL0lOU1RBTEwubXNnIGIvc3Jj cGtncy9sbHZtMTIvSU5TVEFMTC5tc2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4wMDRhY2Y3YjUzMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9J TlNUQUxMLm1zZwpAQCAtMCwwICsxIEBACitsbHZtMTIgaXMgbm8gbG9uZ2VyIHByb3ZpZGVkIGJ5 IFZvaWQgTGludXgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL2ZpbGVzL2xsdm0tQ29uZmln LWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNv bmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmEwOGM5YmU2OTYuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZp Zy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jaW5jbHVkZSA8Yml0cy93b3Jkc2l6 ZS5oPgotCi0jaWYgX19XT1JEU0laRSA9PSAzMgotI2luY2x1ZGUgImxsdm0tY29uZmlnLTMyLmgi Ci0jZWxpZiBfX1dPUkRTSVpFID09IDY0Ci0jaW5jbHVkZSAibGx2bS1jb25maWctNjQuaCIKLSNl bHNlCi0jZXJyb3IgIlVua25vd24gd29yZCBzaXplIgotI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGYyYTNmOGQ2MjgxMy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv bGx2bS0wMDEtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLUZyb20g ZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5YWM0MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KLURh dGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAotU3ViamVjdDogW1BBVENIIDMvM10g bXVzbAotCi0tLS0KLSBpbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaCB8 IDkgKysrKysrKysrCi0gbGliL1N1cHBvcnQvRHluYW1pY0xpYnJhcnkuY3BwICAgICAgICAgICAg fCAyICstCi0gbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYyAgICAgICAgICAgICAgfCA2ICsr Ky0tLQotIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjICAgIHwgMSArCi0g NSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmggYi9pbmNs dWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAotaW5kZXggMzRhOGExZTMuLjEy MTRlY2U1IDEwMDY0NAotLS0tIGEvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGli cmFyeUluZm8uaAotKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFy eUluZm8uaAotQEAgLTE4LDYgKzE4LDE1IEBACi0gI2luY2x1ZGUgImxsdm0vSVIvUGFzc01hbmFn ZXIuaCIKLSAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCi0gCi0rI3VuZGVmIGZvcGVuNjQKLSsjdW5k ZWYgZnNlZWtvNjQKLSsjdW5kZWYgZnN0YXQ2NAotKyN1bmRlZiBmc3RhdHZmczY0Ci0rI3VuZGVm IGZ0ZWxsbzY0Ci0rI3VuZGVmIGxzdGF0NjQKLSsjdW5kZWYgc3RhdDY0Ci0rI3VuZGVmIHRtcGZp bGU2NAotKwotIG5hbWVzcGFjZSBsbHZtIHsKLSB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg QXJyYXlSZWY7Ci0gY2xhc3MgVHJpcGxlOwotZGlmZiAtLWdpdCBhL2xpYi9TdXBwb3J0L1VuaXgv RHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMK LWluZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKLS0tLSBhL2xsdm0vbGliL1N1cHBvcnQv VW5peC9EeW5hbWljTGlicmFyeS5pbmMKLSsrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5h bWljTGlicmFyeS5pbmMKLUBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIHZvaWQgKkRvU2VhcmNo KGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKLSAKLSAvLyBUaGlzIG1hY3JvIHJldHVybnMgdGhl IGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBzeW1ib2wKLSAjZGVmaW5lIEVYUExJ Q0lUX1NZTUJPTChTWU0pIFwKLS0gICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0 dXJuICZTWU0KLSsgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICh2b2lk ICopJlNZTQotIAotIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUgYSB3ZWlyZCBzaXR1YXRpb24uIFRo ZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKLSAvLyBtYWNyb3MgYW5kIGdsb2JhbCB2 YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWlyZW1lbnRzLiBTbywgd2UKLWRpZmYg LS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYyBiL3V0aWxzL3Vu aXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCi1pbmRleCBkODgyYWIyZS4uZjFmYjEyZDAg MTAwNjQ0Ci0tLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNj Ci0rKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCi1AQCAt MTI4LDYgKzEyOCw3IEBACi0gCi0gI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KLSAjIGlu Y2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCi0rIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ ICAvLyBOT0xJTlQKLSAjIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBOT0xJTlQKLSAjIGluY2x1ZGUg PHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAvLyBO T0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1w cGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1w cGM2NC1lbGZ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3MWQ5NjRi ZDM3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMi1t dXNsLXBwYzY0LWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhp cyBwYXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBwYzY0IHVuY29uZGl0aW9uYWxseSB1bmxl c3Mgb3ZlcnJpZGRlbi4gV2UKLW5lZWQgdGhpcyBiZWNhdXNlIHVubGlrZSBtb3N0IGRpc3Ryb3Mg d2UgdXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBtdXNsCi1vbiBiaWcgZW5kaWFuIHBwYzY0 LgotCi1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3Bw IGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCi1pbmRleCAwNjM0ODMz ZS4uYjdjYmMyZTcgMTAwNjQ0Ci0tLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJn ZXRNYWNoaW5lLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFj aGluZS5jcHAKLUBAIC0yMjIsOSArMjIyLDggQEAgc3RhdGljIFBQQ1RhcmdldE1hY2hpbmU6OlBQ Q0FCSSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBsZSAmVFQsCi0gCi0gICBzd2l0Y2ggKFRU LmdldEFyY2goKSkgewotICAgY2FzZSBUcmlwbGU6OnBwYzY0bGU6Ci0tICAgIHJldHVybiBQUENU YXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOwotICAgY2FzZSBUcmlwbGU6OnBwYzY0OgotLSAg ICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MTsKLSsgICAgcmV0dXJuIFBQ Q1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Ci0gICBkZWZhdWx0OgotICAgICByZXR1cm4g UFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dOOwotICAgfQotZGlmZiAtLWdpdCBhL3Rl c3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwgYi90ZXN0L0NvZGVHZW4vUG93ZXJQ Qy9wcGM2NC1lbGYtYWJpLmxsCi1pbmRleCA4YjFjZjZiNS4uMjk2YTJhZmEgMTAwNjQ0Ci0tLS0g YS9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKLSsrKyBiL2xsdm0v dGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAotQEAgLTEsNCArMSw1IEBACi0t OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2 MQotKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11 bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0st RUxGdjIKLSs7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBj NjQtdW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1D SEVDSy1FTEZ2MgotIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBv d2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MSA8ICVzIHwgRmlsZUNo ZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKLSA7IFJVTjogbGxjIC12ZXJpZnktbWFj aGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1h YmkgZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCi0g OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0bGUtdW5r bm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVM RnYyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1 cmVwbHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVw bHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1ZDE1OTc0Mzc1ZC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3Vy ZXBsdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xsdm0vbGli L1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLSsrKyBiL2xsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLUBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBQUENTdWJ0 YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYgQ1BVLCBTdHJpbmdSZWYgRlMp IHsKLSAKLSAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNEKCkgJiYgVGFyZ2V0VHJpcGxl LmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0gICAgICAgVGFyZ2V0VHJpcGxlLmlzT1NO ZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8fAotLSAgICAgIFRhcmdldFRy aXBsZS5pc011c2woKSkKLSsgICAgICBpc1RhcmdldExpbnV4KCkpCi0gICAgIFNlY3VyZVBsdCA9 IHRydWU7Ci0gCi0gICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCBiL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA1MWQwZTRiMzFiMzIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDE4ICswLDAgQEAKLVRoaXMgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoZSBvcHRpbWl6YXRp b24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9ybXMgY2FuCi1kZWFsIHdpdGggLU8zLgotCi0tLS0g YS9sbHZtL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9sbHZtL0NNYWtlTGlzdHMudHh0Ci1AQCAtOTE4 LDYgKzkxOCwxMiBAQCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFLRV9DWFhfQ09NUElMRVJfSUR9 IiBNQVRDSEVTICJDbGFuZyIgKQotICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29wdGlvbihDTUFL RV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiLU8yIikKLSBlbmRpZigpCi0gCi0rc2V0KFZPSURf Q1hYX09QVF9GTEFHUyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXphdGlvbiBsZXZlbCB0byB1c2Ui KQotKwotK2lmIChOT1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVRVUFMICIiKQotKyAgICBsbHZt X3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICIk e1ZPSURfQ1hYX09QVF9GTEFHU30iKQotK2VuZGlmKCkKLSsKLSAjIFB1dCB0aGlzIGJlZm9yZSB0 YmxnZW4uIEVsc2Ugd2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVuY2UuCi0gYWRkX3N1YmRpcmVj dG9yeShsaWIvRGVtYW5nbGUpCi0gYWRkX3N1YmRpcmVjdG9yeShsaWIvU3VwcG9ydCkKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMzMjY4N2I5ZDkyLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSBmM2RiZGQ0OWMwNmJmYWZjMWQ2MTM4MDk0Y2Y0 Mjg4OWMxNGQzOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtdWVsIEhvbGxh bmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBTdW4sIDMgTm92IDIwMTkgMTA6NTc6Mjcg LTA2MDAKLVN1YmplY3Q6IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENdIEFzc3VtZSBCaWdQSUMgaWYg bm8gUElDIGxldmVsIGlzIHNwZWNpZmllZAotCi0tLS0KLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENBc21QcmludGVyLmNwcCAgfCAyICstCi0gbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBD TUNJbnN0TG93ZXIuY3BwIHwgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0Fz bVByaW50ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCi1pbmRl eCBjY2UyMWYzMi4uODdjYTVmOWIgMTAwNjQ0Ci0tLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENBc21QcmludGVyLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNt UHJpbnRlci5jcHAKLUBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBQUENBc21QcmludGVyOjpFbWl0 VGxzQ2FsbChjb25zdCBNYWNoaW5lSW5zdHIgKk1JLAotIAotICAgLy8gQWRkIDMyNzY4IG9mZnNl dCB0byB0aGUgc3ltYm9sIHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0ZXN0IEdPVC9QTFQgQUJJLgot ICAgaWYgKEtpbmQgPT0gTUNTeW1ib2xSZWZFeHByOjpWS19QTFQgJiYgU3VidGFyZ2V0LT5pc1Nl Y3VyZVBsdCgpICYmCi0tICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNMZXZlbDo6QmlnUElD KQotKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElDKQotICAgICBU bHNSZWYgPSBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZCgKLSAgICAgICAgIFRsc1JlZiwgTUNDb25z dGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91dENvbnRleHQpOwotICAgY29u c3QgTWFjaGluZU9wZXJhbmQgJk1PID0gTUktPmdldE9wZXJhbmQoMik7Ci1kaWZmIC0tZ2l0IGEv bGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENNQ0luc3RMb3dlci5jcHAKLWluZGV4IDVjYzE4MGQ3Li5hNWIwMjU2NSAxMDA2NDQKLS0t LSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAotKysrIGIvbGx2 bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCi1AQCAtMTE3LDcgKzExNyw3 IEBAIHN0YXRpYyBNQ09wZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0IE1hY2hpbmVPcGVyYW5kICZN TywgY29uc3QgTUNTeW1ib2wgKlN5bWJvbCwKLSAgIGNvbnN0IE1DRXhwciAqRXhwciA9IE1DU3lt Ym9sUmVmRXhwcjo6Y3JlYXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4KTsKLSAgIC8vIElmIC1tc2Vj dXJlLXBsdCAtZlBJQywgYWRkIDMyNzY4IHRvIHN5bWJvbC4KLSAgIGlmIChTdWJ0YXJnZXQtPmlz U2VjdXJlUGx0KCkgJiYgVE0uaXNQb3NpdGlvbkluZGVwZW5kZW50KCkgJiYKLS0gICAgICBNLT5n ZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMgJiYKLSsgICAgICBNLT5nZXRQSUNMZXZl bCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQyAmJgotICAgICAgIE1PLmdldFRhcmdldEZsYWdzKCkg PT0gUFBDSUk6Ok1PX1BMVCkKLSAgICAgRXhwciA9Ci0gICAgICAgICBNQ0JpbmFyeUV4cHI6OmNy ZWF0ZUFkZChFeHByLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBDdHgpLCBDdHgpOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4 ZWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhl Yy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAwYWJkMjE2NjY1Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1m X2V4ZWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1GaXggZmFpbHVyZXMg aW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBvbiBhYXJjaDY0OgotCi0gICAg RmFpbGluZyBUZXN0cyAoOCk6Ci0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9y dFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkFsbG9jQW5kUmVsZWFzZS8z Ci0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25U ZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMwotICAgICAgICBMTFZNLVVuaXQg OjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVz dC5FbmFibGVkV3JpdGUvMwotICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRU ZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5NdWx0aXBsZUFsbG9jQW5kUmVs ZWFzZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9j YXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVOZWFyLzMKLSAgICAgICAgTExW TS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1l bW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9OZWFyLzMK LSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRl c3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKLQotVXBzdHJlYW0tSXNzdWU6IGh0 dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzgjYzEwCi0KLS0tLSBhL2xs dm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCi0rKysgYi9sbHZtL2xpYi9TdXBwb3J0L1Vu aXgvTWVtb3J5LmluYwotQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCBnZXRQb3NpeFByb3Rl Y3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgewotICAgICByZXR1cm4gUFJPVF9SRUFEIHwgUFJP VF9XUklURSB8IFBST1RfRVhFQzsKLSAgIGNhc2UgbGx2bTo6c3lzOjpNZW1vcnk6Ok1GX0VYRUM6 Ci0gI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fUE9XRVJQQ19fKSB8fCBk ZWZpbmVkIChfX3BwY19fKSB8fCBcCi0tICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChf QVJDSF9QUEMpKQotKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hfUFBDKSB8 fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJjaDY0X18pKSkKLSAgICAgLy8g T24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0aGF0IGhhcyBubyByZWFkIHBl cm1pc3Npb24KLSAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuICBUaGUg ZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQotICAgICAvLyBDYWNoZSB1c2VzIGluc3Ry dWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFyZSB0cmVhdGVkIGJ5CmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRl CmluZGV4IDdiMzYxYmJiZjViYy4uZTdlNDBjYWU0MTNlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xs dm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtMSwxMjUgKzEs MTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25hbWU9bGx2bTEyCiB2ZXJz aW9uPTEyLjAuMQotcmV2aXNpb249Mwotd3Jrc3JjPSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5z cmMiCi1idWlsZF93cmtzcmM9bGx2bQotYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdz PSIKLSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRldgotIC1ERU5BQkxFX0xJTktF Ul9CVUlMRF9JRD1ZRVMKLSAtRExMVk1fSU5DTFVERV9ET0NTPVlFUwotIC1ETExWTV9CVUlMRF9E T0NTPVlFUwotIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwotIC1EU1BISU5YX1dBUk5JTkdTX0FT X0VSUk9SUz1OTwotIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUwotIC1ETExWTV9MSU5LX0xM Vk1fRFlMSUI9WUVTCi0gLURMTFZNX0VOQUJMRV9SVFRJPVlFUwotIC1ETExWTV9FTkFCTEVfRkZJ PVlFUwotIC1ETExWTV9CSU5VVElMU19JTkNESVI9L3Vzci9pbmNsdWRlIgotaG9zdG1ha2VkZXBl bmRzPSJwZXJsIHB5dGhvbjMgemxpYi1kZXZlbCBsaWJmZmktZGV2ZWwgc3dpZyBweXRob24zLVNw aGlueAotIHB5dGhvbjMtcmVjb21tb25tYXJrIHB5dGhvbjMtc3BoaW54LWF1dG9tb2RhcGkiCi1t YWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCB6bGliLWRldmVsIGVsZnV0aWxzLWRldmVsIGxpYmZm aS1kZXZlbCBsaWJlZGl0LWRldmVsCi0gbGlieG1sMi1kZXZlbCBiaW51dGlscy1kZXZlbCBsaWJh dG9taWMtZGV2ZWwiCi1kZXBlbmRzPSJsaWJsbHZtMTI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci1zaG9ydF9kZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5lIgorcmV2aXNpb249NAorYnVp bGRfc3R5bGU9bWV0YQorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGluZSAocmVt b3ZlZCBwYWNrYWdlKSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Igot bGljZW5zZT0iQXBhY2hlLTIuMCIKK2xpY2Vuc2U9Im1ldGFwYWNrYWdlIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd3d3Lmxsdm0ub3JnIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9s bHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tcHJv amVjdC0ke3ZlcnNpb259LnNyYy50YXIueHoiCi1jaGVja3N1bT0xMjljYjI1Y2QxMzY3N2FhZDk1 MWNlNWMyZGViMGZlNGFmYzFlOWQ5ODk1MGY1M2I1MWJkY2ZiNWE3M2FmYTBlCi1saWIzMmRpc2Fi bGVkPXllcwotcHl0aG9uX3ZlcnNpb249MwotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9 WUVTIgotCW1ha2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgotCWRlcGVuZHMrPSIgbGli ZXhlY2luZm8tZGV2ZWwiCi1maQotCi0jICJvcGVyYW5kIG91dCBvZiByYW5nZSIgYXNzZW1ibGVy IGZhaWx1cmVzCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlwcGM2NCopIDs7Ci0J cHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKLWVz YWMKLQotcG9zdF9wYXRjaCgpIHsKLQkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRlciBw bGF0Zm9ybSBkZXRlY3Rpb24KLQljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29uZmln dXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCi0JCSR7d3Jrc3JjfS9sbHZtL2NtYWtlCi19Ci0K LXByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwgdHJpcGxldAotCi0JIyBWYXN0bHkgcmVkdWNlIHNp emUgb2YgZGVidWdnaW5nIHN5bWJvbHM6Ci0JQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8gLWcxfQotCUNY WEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9Ci0KLQkjIHNpbmNlIGdjYzksIHRoZSBidWlsZCBs aWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJlY2F1c2UKLQkjIG9mIGNsYW5n IGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUgY2FsbCB0byB0aGUgUExULCBz bwotCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCW1pcHMqLW11c2x8cHBjKikgY29uZmlndXJlX2FyZ3Mr PSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OwotCWVzYWMKLQotCWlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgotCQltc2dfbm9ybWFsICJCdWlsZGluZyBob3N0IHRibGdlblxuIgotCQlt a2RpciAtcCBidWlsZC9IT1NUCi0JCWNkIGJ1aWxkL0hPU1QKLQkJQ0M9IiRCVUlMRF9DQyIgQ1hY PSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKLQkJCUNYWEZMQUdTPSIkQlVJ TERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCi0JCQljbWFrZSAuLi8uLiAt RENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCi0JCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7 X2VuYWJsZWRfcHJvamVjdHN9Ci0JCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4K LQkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9v bHMvbGxkYi91dGlscy9UYWJsZUdlbgotCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVH RU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCVsgIiRfbGxk Yl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9IiAtRExMREJfVEFCTEVHRU49 JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10YmxnZW4iCi0JCWNkIC4uLy4uCi0J ZmkKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlpNjg2KikgX2FyY2g9Ilg4 NiI7OwotCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7Ci0JCWFybXY1KikgX2FyY2g9IkFybXY1dGUi OzsKLQkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsKLQkJYXJtdjcqKSBfYXJjaD0iQXJtdjciOzsK LQkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7Ci0JCW1pcHMqKSBfYXJjaD0iTWlwcyI7Owot CQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OwotCQlyaXNjdjY0KikgX2FyY2g9IlJJU0NWNjQiOzsK LQllc2FjCi0KLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfQot Ci0JY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9IgotCWNvbmZp Z3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBsZXR9IgotCWNvbmZpZ3VyZV9h cmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0cmlwbGV0fSIKLX0KLQotZG9f aW5zdGFsbCgpIHsKLQljZCBidWlsZAotCWNtYWtlIC1EQ01BS0VfSU5TVEFMTF9QUkVGSVg9JHtE RVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5jbWFrZQotCi0JIyBSZXF1aXJlZCBmb3IgbXVs dGlsaWIuCi0JaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NCIgXTsgdGhlbgot CQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsgZG8KLQkJCW12ICR7REVTVERJUn0vdXNyL2lu Y2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXssLTY0fS5oCi0JCQl2aW5zdGFsbCAke0ZJTEVT RElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9LmggNjQ0IFwKLQkJCQl1c3IvaW5jbHVkZS9sbHZt L0NvbmZpZyAke19oZWFkZXJ9LmgKLQkJZG9uZQotCWZpCi0KLQkjIFJlbW92ZSBsbHZtLWNvbmZp Zy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJ cm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhvc3QKLQlmaQotfQogCiBsaWJs bHZtMTJfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJ5IgotCXBr Z19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgotCX0KIH0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3VwZGF0ZQpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk1Y2YyNmIzNTg2Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9sbHZtMTIvdXBkYXRlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA Ci1zaXRlPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMiCi1w YXR0ZXJuPSJsbHZtb3JnLVxLKFxkKy4pezJ9XGQrKC1yY1xkKyk/IgotaWdub3JlPSIqLXJjKiIK CkZyb20gMzk1NjQ5NDdhMjMxYTQ1Mzk5MWI5YzYzNDRjNDhlN2QxMzY5OGQ1MCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8 YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMjE6NDI6NTUg KzAwMDAKU3ViamVjdDogW1BBVENIIDE1LzMwXSBtZXNhOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0t LQogc3JjcGtncy9tZXNhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tZXNhL3RlbXBsYXRl IGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCmluZGV4IGM5MDUwMGRlNzQxNi4uOGYwODI2MmZiMTM1 IDEwMDY0NAotLS0gYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZXNhL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWVzYScKIHBrZ25h bWU9bWVzYQogdmVyc2lvbj0yMS4zLjcKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURnbHZuZD10cnVlIC1Ec2hhcmVkLWdsYXBpPWVu YWJsZWQgLURnYm09ZW5hYmxlZCAtRGVnbD1lbmFibGVkCiAgLURvc21lc2E9dHJ1ZSAtRGdsZXMx PWVuYWJsZWQgLURnbGVzMj1lbmFibGVkIC1EZ2x4PWRyaSAtRGRyaTM9ZW5hYmxlZAoKRnJvbSBi ZjgyMjlkODBiZjg3NzMzNWNlNjcxNTQzNmQ5MWQ0MDNiOTRiMDYzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVl aXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo0Njo0OCArMDAwMApT dWJqZWN0OiBbUEFUQ0ggMTYvMzBdIGlzcGM6IHVwZGF0ZSB0byAxLjE3LjAuCgotLS0KIC4uLi9p c3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoICB8ICAgMTggLQogc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaCAgICAgICAgIHwgICA1NyAtCiBzcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoICAgICAgICAgfCAgOTIzIC0tLS0tLS0tCiBz cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoICAgICAgICAgfCAxNTA0IC0tLS0t LS0tLS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaCAgICAgICAgIHwg ICAzNCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoICAgICAgICAgfCAg MzcyIC0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaCAgICAgICAgIHwg IDEyNiAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoICAgICAgICAgfCAg MTYwIC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoICAgICAgICAgfCAg MTQ5IC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoICAgICAgICAgfCAy MTA5IC0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lzcGMvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA4ICstCiAxMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDU0NTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNo ZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoIGIvc3JjcGtncy9p c3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0MTFlMzUzYzczMTQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lz cGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwxOCArMCwwIEBACi1JbmRleDogaXNwYy0xLjE1LjAvQ01ha2VMaXN0cy50eHQKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBpc3BjLTEuMTUuMC5vcmlnL0NNYWtlTGlzdHMudHh0Ci0rKysgaXNwYy0xLjE1LjAv Q01ha2VMaXN0cy50eHQKLUBAIC0xNTcsMTMgKzE1Nyw2IEBAIHNldChPVVRQVVRfUkVMRUFTRSBS ZWxlYXNlL2JpbikKLSBzZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0Vf Q1VSUkVOVF9CSU5BUllfRElSfS9iaW4gKQotIAotIGlmKENNQUtFX0JVSUxEX1RZUEUpCi0tICAg ICMgVmFsaWRhdGUgYnVpbGQgdHlwZQotLSAgICBzZXQoQ09ORklHVVJBVElPTl9UWVBFUyAiRGVi dWc7UmVsZWFzZTtSZWxXaXRoRGViSW5mbyIpCi0tCi0tICAgIHN0cmluZyhGSU5EICIke0NPTkZJ R1VSQVRJT05fVFlQRVN9IiAiJHtDTUFLRV9CVUlMRF9UWVBFfSIgTUFUQ0hFRF9DT05GSUcpCi0t ICAgIGlmICgke01BVENIRURfQ09ORklHfSBFUVVBTCAtMSkKLS0gICAgICAgICBtZXNzYWdlKEZB VEFMX0VSUk9SICJDTUFLRV9CVUlMRF9UWVBFICgke0NNQUtFX0JVSUxEX1RZUEV9KSBhbGxvd3Mg b25seSB0aGUgZm9sbG93aW5nIHZhbHVlczogJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIpCi0tICAg IGVuZGlmKCkKLSBlbHNlKE5PVCBDTUFLRV9CVUlMRF9UWVBFKQotICAgICBzZXQoQ01BS0VfQlVJ TERfVFlQRSAiUmVsZWFzZSIpCi0gICAgIG1lc3NhZ2UoU1RBVFVTICJCdWlsZCB0eXBlIG5vdCBz cGVjaWZpZWQ6IFVzZSBSZWxlYXNlIGJ5IGRlZmF1bHQuIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjJkM2Y1YTQwOWUu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSAxYzBmODlkY2NiNzc0ZjIxNmM3 ZjZlNzZhOTllZTkwN2ExZTY0MWNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRG1p dHJ5IEJhYm9raW4gPGRtaXRyeS55LmJhYm9raW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCAyMiBE ZWMgMjAyMCAxNzowMzo1OSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXggdG8gd29yayB3aXRo IExMVk0gdHJ1bmsgYWZ0ZXIgbGx2bS9sbHZtLXByb2plY3RANDFjM2IyNzEzCi0KLS0tLQotIHNy Yy9jdHguY3BwIHwgMTggKysrKysrKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEyIGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBi L3NyYy9jdHguY3BwCi1pbmRleCA2ZmJiOGI5Y2YuLjk3N2U5ZDIyMiAxMDA2NDQKLS0tLSBhL3Ny Yy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTE0NzMsMTEgKzE0NzMsMTUgQEAgdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGREZWJ1Z1BvcyhsbHZtOjpWYWx1ZSAqdmFsdWUsIGNv bnN0IFNvdXJjZVBvcyAqcG9zLAotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06 OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPih2YWx1ZSk7Ci0gICAgIGlmIChpbnN0ICE9IE5V TEwgJiYgbS0+ZGlCdWlsZGVyKSB7Ci0gICAgICAgICBTb3VyY2VQb3MgcCA9IHBvcyA/ICpwb3Mg OiBjdXJyZW50UG9zOwotLSAgICAgICAgaWYgKHAuZmlyc3RfbGluZSAhPSAwKQotKyAgICAgICAg aWYgKHAuZmlyc3RfbGluZSAhPSAwKSB7Ci0gICAgICAgICAgICAgLy8gSWYgZmlyc3RfbGluZSA9 PSAwLCB0aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyB1cAotICAgICAgICAgICAg IC8vIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IG9yIHRoZSBsaWtlOyBkb24ndCBhZGQgZGVidWcgcG9z aXRpb25zCi0gICAgICAgICAgICAgLy8gZm9yIHRob3NlIGZ1bmN0aW9ucwotLSAgICAgICAgICAg IGluc3QtPnNldERlYnVnTG9jKGxsdm06OkRlYnVnTG9jOjpnZXQocC5maXJzdF9saW5lLCBwLmZp cnN0X2NvbHVtbiwgc2NvcGUgPyBzY29wZSA6IEdldERJU2NvcGUoKSkpOwotKyAgICAgICAgICAg IHNjb3BlID0gc2NvcGUgPyBzY29wZSA6IEdldERJU2NvcGUoKTsKLSsgICAgICAgICAgICBsbHZt OjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICAgICAgICAgIGxsdm06OkRJTG9jYXRpb246Omdl dChzY29wZS0+Z2V0Q29udGV4dCgpLCBwLmZpcnN0X2xpbmUsIHAuZmlyc3RfY29sdW1uLCBzY29w ZSwgbnVsbHB0ciwgZmFsc2UpOwotKyAgICAgICAgICAgIGluc3QtPnNldERlYnVnTG9jKGRpTG9j KTsKLSsgICAgICAgIH0KLSAgICAgfQotIH0KLSAKLUBAIC0xNTE4LDkgKzE1MjIsMTAgQEAgdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0VmFyaWFibGVEZWJ1Z0luZm8oU3ltYm9sICpzeW0p IHsKLSAgICAgbGx2bTo6RElMb2NhbFZhcmlhYmxlICp2YXIgPSBtLT5kaUJ1aWxkZXItPmNyZWF0 ZUF1dG9WYXJpYWJsZSgKLSAgICAgICAgIHNjb3BlLCBzeW0tPm5hbWUsIHN5bS0+cG9zLkdldERJ RmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBkaVR5cGUsIHRydWUgLyogcHJlc2VydmUgdGhy b3VnaCBvcHRzICovKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAgICAgICAg bGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0KCksIHN5bS0+cG9zLmZpcnN0 X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0gICAgICAgIG0tPmRpQnVpbGRl ci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVh dGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1 bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFy ZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCks IGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNsYXJlSW5zdCwgJnN5bS0+cG9z LCBzY29wZSk7Ci0gfQotIAotQEAgLTE1MzUsOSArMTU0MCwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6OkVtaXRGdW5jdGlvblBhcmFtZXRlckRlYnVnSW5mbyhTeW1ib2wgKnN5bSwgaW50 IGFyZ051bQotICAgICAgICAgbS0+ZGlCdWlsZGVyLT5jcmVhdGVQYXJhbWV0ZXJWYXJpYWJsZShz Y29wZSwgc3ltLT5uYW1lLCBhcmdOdW0gKyAxLCBzeW0tPnBvcy5HZXRESUZpbGUoKSwgc3ltLT5w b3MuZmlyc3RfbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2ggb3B0cyAqLywgZmxhZ3MpOwot IAotKyAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICBsbHZtOjpESUxvY2F0aW9u OjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3Mu Zmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJl KHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYzo6Z2V0 KHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUpLCBiYmxv Y2spOwotKyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0 ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwgZGlMb2MsIGJibG9jayk7 Ci0gICAgIEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5wb3MsIHNjb3BlKTsKLSB9Ci0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoIGIvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDkwM2YzMGRhMTBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkyMyArMCwwIEBACi1G cm9tIDA1OTdhNzlkMDg0YzAxNDc4MDEzNmRhOTA2YWZlMjFkMTVlOTgyY2IgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWtSYWplbmRyYWt1bWFyYW4gPGRlZXBhay5yYWplbmRy YWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCA1IEphbiAyMDIxIDEzOjUzOjMwIC0wODAw Ci1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSBMTFZNIDguMCBhbmQgTExWTSA5LjAuICgjMTk2NikK LQotLS0tCi0gLmFwcHZleW9yLnltbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgLS0KLSAu dHJhdmlzLnltbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyAtLS0KLSBDTWFrZUxpc3Rz LnR4dCAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKy0tLS0KLSBzcmMvYXN0LmNwcCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCAtLQotIHNyYy9jdHguY3BwICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0tLS0KLSBzcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRp b24uY3BwICAgICAgfCAgNCAtLQotIHNyYy9pc3BjLmNwcCAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwIC0tLS0tLS0tLQotIHNyYy9pc3BjLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzICstCi0gc3JjL2lzcGNfdmVyc2lvbi5oICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KLSBz cmMvbWFpbi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyAtLS0tLS0KLSBzcmMvbW9k dWxlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAyNyAtLS0tLS0tLS0tLS0KLSBzcmMvbW9k dWxlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAtCi0gc3JjL29wdC5jcHAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgNjQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHNy Yy90eXBlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCi0gdGVzdHMvbGl0 LXRlc3RzLzE3NzEuaXNwYyAgICAgICAgICAgIHwgIDEgLQotIHRlc3RzL2xpdC10ZXN0cy8xODQ0 LmlzcGMgICAgICAgICAgICB8ICAzIC0tCi0gdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYyAgICAg ICAgICAgIHwgIDIgLQotIHRlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjICAgICAgICB8ICAy ICsKLSB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMgfCAxMSAtLS0tLQotIHRl c3RzL2xpdC10ZXN0cy9saXQuY2ZnICAgICAgICAgICAgICB8ICA1IC0tLQotIDIwIGZpbGVzIGNo YW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIxMyBkZWxldGlvbnMoLSkKLSBkZWxldGUgbW9kZSAx MDA2NDQgdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjCi0KLWRpZmYgLS1naXQg YS8uYXBwdmV5b3IueW1sIGIvLmFwcHZleW9yLnltbAotaW5kZXggNDUxYTdiM2UwLi43OTQ1Y2Nh MmEgMTAwNjQ0Ci0tLS0gYS8uYXBwdmV5b3IueW1sCi0rKysgYi8uYXBwdmV5b3IueW1sCi1AQCAt NDEsOCArNDEsNiBAQCBlbnZpcm9ubWVudDoKLSAgICAgICBMTFZNX1ZFUlNJT046IGxhdGVzdAot ICAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE5Ci0g ICAgICAgTExWTV9WRVJTSU9OOiAxMC4wCi0tICAgIC0gQVBQVkVZT1JfQlVJTERfV09SS0VSX0lN QUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLS0gICAgICBMTFZNX1ZFUlNJT046IDkuMAotIAotIGZv cjoKLSAtCi1AQCAtNjIsNyArNjAsNiBAQCBmb3I6Ci0gICAgICAgICBpZiAiJUFQUFZFWU9SX0JV SUxEX1dPUktFUl9JTUFHRSUiPT0iVmlzdWFsIFN0dWRpbyAyMDE5IiAoIChzZXQgZ2VuZXJhdG9y PSJWaXN1YWwgU3R1ZGlvIDE2IikgJiAoc2V0IHZzdmVyc2lvbj0yMDE5KSkKLSAgICAgICAgIHNl dCBMTFZNX1RBUj1sbHZtLTExLjAuMC13aW4udnMyMDE5LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJt Lndhc20uN3oKLSAgICAgICAgIGlmICIlTExWTV9WRVJTSU9OJSI9PSIxMC4wIiAoc2V0IExMVk1f VEFSPWxsdm0tMTAuMC4xLXdpbi52czIwMTktUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56 aXApCi0tICAgICAgICBpZiAiJUxMVk1fVkVSU0lPTiUiPT0iOS4wIiAoc2V0IExMVk1fVEFSPWxs dm0tOS4wLjEtd2luLnZzMjAxNy1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnppcCkKLSAg IGluc3RhbGw6Ci0gICAgIC0gcHM6IGNob2NvIGluc3RhbGwgLS1uby1wcm9ncmVzcyB3aW5mbGV4 Ymlzb24zIHdnZXQgN3ppcAotICAgICAtIGNtZDogfC0KLWRpZmYgLS1naXQgYS8udHJhdmlzLnlt bCBiLy50cmF2aXMueW1sCi1pbmRleCAyZTk2MDE3YTYuLjNhNmI4NTI2NCAxMDA2NDQKLS0tLSBh Ly50cmF2aXMueW1sCi0rKysgYi8udHJhdmlzLnltbAotQEAgLTEwOCwxMyArMTA4LDYgQEAgam9i czoKLSAgICAgICAgIC0gTExWTV9UQVI9bGx2bS0xMC4wLjEtdWJ1bnR1MTYuMDQtUmVsZWFzZStB c3NlcnRzLXg4Ni5hcm0ud2FzbS50YXIueHoKLSAgICAgICAgIC0gTExWTV9SRVBPPWh0dHBzOi8v Z2l0aHViLmNvbS9kYmFib2tpbi9sbHZtLXByb2plY3QKLSAgICAgICAgIC0gSVNQQ19IT01FPSRU UkFWSVNfQlVJTERfRElSCi0tICAgICMgTExWTSA5LjAgKyBVYnVudHUgMTYuMDQ6IGJ1aWxkLCBs aXQgdGVzdHMsIGV4YW1wbGVzIChidWlsZCArIHJ1biksIGJlbmNobWFya3MgKGJ1aWxkICsgdHJp YWwgcnVuKQotLSAgICAtIDw8OiAqbXlfdGFnCi0tICAgICAgZW52OgotLSAgICAgICAgLSBMTFZN X1ZFUlNJT049OS4wIE9TPVVidW50dTE2LjA0Ci0tICAgICAgICAtIExMVk1fVEFSPWxsdm0tOS4w LjEtdWJ1bnR1MTYuMDQtUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS50YXIueHoKLS0gICAg ICAgIC0gTExWTV9SRVBPPWh0dHBzOi8vZ2l0aHViLmNvbS9kYmFib2tpbi9sbHZtLXByb2plY3QK LS0gICAgICAgIC0gSVNQQ19IT01FPSRUUkFWSVNfQlVJTERfRElSCi0gICAgICMgV0FTTSBlbmFi bGVkIGJ1aWxkCi0gICAgICMgTExWTSAxMS4wICsgVWJ1bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRl c3RzLCBleGFtcGxlcyAoYnVpbGQpLCBiZW5jaG1hcmtzIChidWlsZCArIHRyaWFsIHJ1bikKLSAg ICAgLSA8PDogKm15X3RhZwotZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0 cy50eHQKLWluZGV4IDVmYTg2M2ZjZi4uYTZiM2VkMjUxIDEwMDY0NAotLS0tIGEvQ01ha2VMaXN0 cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0Ci1AQCAtMjQxLDEwICsyNDEsOCBAQCBpZiAoWDg2 X0VOQUJMRUQpCi0gICAgICAgICBhdngyLWk4eDMyIGF2eDItaTE2eDE2Ci0gICAgICAgICBhdngy LWkzMng0IGF2eDItaTMyeDggYXZ4Mi1pMzJ4MTYgYXZ4Mi1pNjR4NAotICAgICAgICAgYXZ4NTEy a25sLWkzMngxNgotLSAgICAgICAgYXZ4NTEyc2t4LWkzMngxNiBhdng1MTJza3gtaTMyeDgpCi0t ICAgIGlmICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZFUlNJT05fR1JFQVRFUl9FUVVBTCAiMTAu MC4wIikKLS0gICAgICAgIGxpc3QoQVBQRU5EIElTUENfVEFSR0VUUyBhdng1MTJza3gtaTh4NjQg YXZ4NTEyc2t4LWkxNngzMikKLS0gICAgZW5kaWYoKQotKyAgICAgICAgYXZ4NTEyc2t4LWkzMngx NiBhdng1MTJza3gtaTMyeDgKLSsgICAgICAgIGF2eDUxMnNreC1pOHg2NCBhdng1MTJza3gtaTE2 eDMyKQotIGVuZGlmKCkKLSBpZiAoQVJNX0VOQUJMRUQpCi0gICAgIGxpc3QoQVBQRU5EIElTUENf VEFSR0VUUyBuZW9uLWk4eDE2IG5lb24taTE2eDggbmVvbi1pMzJ4NCBuZW9uLWkzMng4KQotQEAg LTI1OSwxMSArMjU3LDcgQEAgaWYgKFdBU01fRU5BQkxFRCkKLSBlbmRpZigpCi0gCi0gc2V0KENM QU5HX0xJQlJBUllfTElTVCBjbGFuZ0Zyb250ZW5kIGNsYW5nRHJpdmVyIGNsYW5nU2VyaWFsaXph dGlvbiBjbGFuZ1BhcnNlIGNsYW5nU2VtYSBjbGFuZ0FuYWx5c2lzIGNsYW5nQVNUIGNsYW5nQmFz aWMgY2xhbmdFZGl0IGNsYW5nTGV4KQotLXNldChMTFZNX0NPTVBPTkVOVFMgZW5naW5lIGlwbyBi aXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlvbiBsaW5rZXIgb3B0aW9uKQotLQotLWlm ICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZFUlNJT05fR1JFQVRFUl9FUVVBTCAiMTAuMC4wIikK LS0gICAgbGlzdChBUFBFTkQgTExWTV9DT01QT05FTlRTIGZyb250ZW5kb3Blbm1wKQotLWVuZGlm KCkKLStzZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0cmVhZGVyIGJpdHdyaXRlciBp bnN0cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbiBmcm9udGVuZG9wZW5tcCkKLSAKLSBpZiAoWDg2 X0VOQUJMRUQpCi0gICAgIGxpc3QoQVBQRU5EIExMVk1fQ09NUE9ORU5UUyB4ODYpCi1kaWZmIC0t Z2l0IGEvc3JjL2FzdC5jcHAgYi9zcmMvYXN0LmNwcAotaW5kZXggMjBmNzVhMjljLi41YTQzYzQ4 NTQgMTAwNjQ0Ci0tLS0gYS9zcmMvYXN0LmNwcAotKysrIGIvc3JjL2FzdC5jcHAKLUBAIC00NCw5 ICs0NCw3IEBACi0gI2luY2x1ZGUgInN5bS5oIgotICNpbmNsdWRlICJ1dGlsLmgiCi0gCi0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gI2luY2x1ZGUgPGxsdm0vU3Vw cG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAvLyBB U1ROb2RlCi0gCi1AQCAtNjIsOSArNjAsNyBAQCB2b2lkIEFTVDo6QWRkRnVuY3Rpb24oU3ltYm9s ICpzeW0sIFN0bXQgKmNvZGUpIHsKLSB9Ci0gCi0gdm9pZCBBU1Q6OkdlbmVyYXRlSVIoKSB7Ci0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVU cmFjZVNjb3BlIFRpbWVTY29wZSgiR2VuZXJhdGVJUiIpOwotLSNlbmRpZgotICAgICBmb3IgKHVu c2lnbmVkIGludCBpID0gMDsgaSA8IGZ1bmN0aW9ucy5zaXplKCk7ICsraSkKLSAgICAgICAgIGZ1 bmN0aW9uc1tpXS0+R2VuZXJhdGVJUigpOwotIH0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBi L3NyYy9jdHguY3BwCi1pbmRleCA5NzdlOWQyMjIuLjQyYzRlYTA5ZCAxMDA2NDQKLS0tLSBhL3Ny Yy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTMwOSwyMSArMzA5LDEzIEBAIEZ1bmN0 aW9uRW1pdENvbnRleHQ6OkZ1bmN0aW9uRW1pdENvbnRleHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJv bCAqZnVuU3ltLCBsbHZtOjpGCi0gICAgICAgICAgICAgY2hhciBidWZbMjU2XTsKLSAgICAgICAg ICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX19vZmZfYWxsX29uX21hc2tfJXMiLCBn LT50YXJnZXQtPkdldElTQVN0cmluZygpKTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0g SVNQQ19MTFZNXzhfMAotLSAgICAgICAgICAgIGxsdm06OkNvbnN0YW50ICpvZmZGdW5jID0gbS0+ bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5cGVzOjpWb2lkVHlwZSk7Ci0t I2Vsc2UgLy8gTExWTSA5LjArCi0gICAgICAgICAgICAgbGx2bTo6RnVuY3Rpb25DYWxsZWUgb2Zm RnVuY0NhbGxlZSA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbihidWYsIExMVk1UeXBl czo6Vm9pZFR5cGUpOwotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50ICpvZmZGdW5jID0gbGx2 bTo6Y2FzdDxsbHZtOjpDb25zdGFudD4ob2ZmRnVuY0NhbGxlZS5nZXRDYWxsZWUoKSk7Ci0tI2Vu ZGlmCi0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpG dW5jdGlvbj4ob2ZmRnVuYykpOwotICAgICAgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKm9mZkJC ID0gbGx2bTo6QmFzaWNCbG9jazo6Q3JlYXRlKCpnLT5jdHgsICJlbnRyeSIsIChsbHZtOjpGdW5j dGlvbiAqKW9mZkZ1bmMsIDApOwotICAgICAgICAgICAgIGxsdm06OlN0b3JlSW5zdCAqaW5zdCA9 IG5ldyBsbHZtOjpTdG9yZUluc3QoTExWTU1hc2tBbGxPZmYsIGdsb2JhbEFsbE9uTWFza1B0ciwg b2ZmQkIpOwotICAgICAgICAgICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5KSB7Ci0t I2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAg aW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkp OwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25t ZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg bGx2bTo6UmV0dXJuSW5zdDo6Q3JlYXRlKCpnLT5jdHgsIG9mZkJCKTsKLSAgICAgICAgIH0KLUBA IC0yMjg4LDExICsyMjgwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okxv YWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSAjZW5kaWYKLSAK LSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjAr Ci0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAg ICB9Ci0gCi0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotQEAgLTI0MzEsMTEgKzI0MTksNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAgICAgICAgIC8vIHZzIHRoZSBwcm9wZXIg YWxpZ25tZW50IGluIHByYWN0aWNlLikKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduID0gMTsK LSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAg ICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAg ICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oYWxpZ24p LnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgfQotIAotICAgICAgICAgICAg IEFkZERlYnVnUG9zKGluc3QpOwotQEAgLTI2NDksMTEgKzI2MzMsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29u c3QgY2hhciAqbgotICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFs aWdubWVudCgpOwotIAotICAgICBpZiAoYWxpZ24gIT0gMCkgewotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24p OwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZt OjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICB9Ci0gICAg IC8vIERvbid0IGFkZCBkZWJ1Z2dpbmcgaW5mbyB0byBhbGxvY2EgaW5zdHJ1Y3Rpb25zCi0gICAg IHJldHVybiBpbnN0OwotQEAgLTI5MjYsMTEgKzI5MDYsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OlN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpwdHIsIGNv bnN0Ci0gICAgIGxsdm06OlN0b3JlSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFs dWUsIHB0ciwgYmJsb2NrKTsKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkg JiYgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkp KSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgIGlu c3QtPnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsK LS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6 TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9y T25lKCkpOwotLSNlbmRpZgotICAgICB9Ci0gCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi1A QCAtMzAyNSwxNiArMzAwMSwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1lbWNweUlu c3QobGx2bTo6VmFsdWUgKmRlc3QsIGxsdm06OlZhbHVlICpzcmMsIGxsdm06OgotICAgICB9Ci0g ICAgIGlmIChhbGlnbiA9PSBOVUxMKQotICAgICAgICAgYWxpZ24gPSBMTFZNSW50MzIoMSk7Ci0t I2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAKLS0gICAgbGx2bTo6Q29uc3Rh bnQgKm1jRnVuYyA9Ci0tICAgICAgICBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oImxs dm0ubWVtY3B5LnAwaTgucDBpOC5pNjQiLCBMTFZNVHlwZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6 OlZvaWRQb2ludGVyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1U eXBlczo6Qm9vbFR5cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwotICAgICBsbHZtOjpGdW5jdGlv bkNhbGxlZSBtY0Z1bmNDYWxsZWUgPQotICAgICAgICAgbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1 bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwg TExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1UeXBlczo6SW50NjRU eXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLSAgICAgbGx2bTo6Q29uc3RhbnQgKm1jRnVuYyA9 IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+KG1jRnVuY0NhbGxlZS5nZXRDYWxsZWUoKSk7Ci0t I2VuZGlmCi0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtY0Z1bmMgIT0gTlVMTCk7Ci0gICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6RnVuY3Rpb24+KG1jRnVuYykp OwotIAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgYi9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRleCAxOTNhNjYyODkuLmExNzZlOTQ2MiAx MDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLSsrKyBiL3NyYy9n ZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC00NzAsMTEgKzQ3MCw3IEBAIHZvaWQgR2xv YmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxzKExvY2FsaXphdGlvbkluZm8gJkxJKSB7 Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0gKkZuLT5nZXRFbnRyeUJsb2NrKCkuYmVn aW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdWLT5nZXRUeXBlKCktPmdldEVsZW1lbnRU eXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxvY2EgPSBuZXcgQWxsb2NhSW5zdChFbGVt VHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwgJkZpcnN0SSk7Ci0tI2lmIElTUENfTExW TV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50 KEdWLT5nZXRBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgQWxs b2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpKTsK LS0jZW5kaWYKLSAgICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+KEdWLT5nZXRJbml0aWFsaXpl cigpKSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5nZXRJbml0aWFsaXplcigpLCBB bGxvY2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9pc3BjLmNwcCBiL3NyYy9pc3Bj LmNwcAotaW5kZXggZTJkMGYyMDZlLi5mYWM1MjMzZjcgMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5j cHAKLSsrKyBiL3NyYy9pc3BjLmNwcAotQEAgLTI3Miw5ICsyNzIsNyBAQCB0eXBlZGVmIGVudW0g ewotICAgICBDUFVfU2lsdmVybW9udCwKLSAKLSAgICAgQ1BVX0lDWCwKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgQ1BVX1RHTCwKLS0jZW5kaWYKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgQ1BVX0FETCwKLSAgICAg Q1BVX1NQUiwKLUBAIC0zNjUsMTAgKzM2Myw4IEBAIGNsYXNzIEFsbENQVXMgewotIAotICAgICAg ICAgbmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY2VsYWtlLXNlcnZlciIpOwotICAgICAgICAg bmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY3giKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIG5hbWVzW0NQVV9UR0xdLnB1c2hfYmFjaygidGln ZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfVEdMXS5wdXNoX2JhY2soInRnbCIpOwotLSNl bmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAotICAgICAgICAg bmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJhbGRlcmxha2UiKTsKLSAgICAgICAgIG5hbWVzW0NQ VV9BRExdLnB1c2hfYmFjaygiYWRsIik7Ci1AQCAtNDExLDExICs0MDcsOSBAQCBjbGFzcyBBbGxD UFVzIHsKLSAgICAgICAgIGNvbXBhdFtDUFVfQURMXSA9IFNldChDUFVfQURMLCBDUFVfeDg2XzY0 LCBDUFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1Np bHZlcm1vbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVX1NhbmR5QnJpZGdl LCBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX05vbmUpOwot ICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAg ICAgY29tcGF0W0NQVV9UR0xdID0KLSAgICAgICAgICAgICBTZXQoQ1BVX1RHTCwgQ1BVX3g4Nl82 NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9T aWx2ZXJtb250LCBDUFVfU2FuZHlCcmlkZ2UsCi0gICAgICAgICAgICAgICAgIENQVV9JdnlCcmlk Z2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tYLCBDUFVfSUNMLCBDUFVfSUNY LCBDUFVfTm9uZSk7Ci0tI2VuZGlmCi0gICAgICAgICBjb21wYXRbQ1BVX0lDWF0gPSBTZXQoQ1BV X0lDWCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4sIENQVV9Db3JlMiwgQ1BV X05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dlbGwsIENQVV9Ccm9hZHdl bGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9Ob25lKTsKLSAKLUBAIC01NTYsOSArNTUwLDcgQEAg VGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNw Y190YXJnZXQsIGJvb2wgcGljLCBib28KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEyXzAKLSAgICAgICAgIGNhc2UgQ1BVX1NQUjoKLSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNhc2UgQ1BVX1RHTDoKLS0jZW5k aWYKLSAgICAgICAgIGNhc2UgQ1BVX0lDWDoKLSAgICAgICAgIGNhc2UgQ1BVX0lDTDoKLSAgICAg ICAgIGNhc2UgQ1BVX1NLWDoKLUBAIC05MTYsNyArOTA4LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJj aCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGlj LCBib28KLSAgICAgICAgIH0KLSAgICAgICAgIGJyZWFrOwotICAgICBjYXNlIElTUENUYXJnZXQ6 OmF2eDUxMnNreF9pOHg2NDoKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8gVGhpcyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5 IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAgICAgICAvLyBiZWNhdXNlIExMVk0gcmVxdWly ZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFyZQotICAgICAgICAgLy8gY29tbWl0dGVkIHRv IExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQgdG8gMTAuMCwgYnV0IG5vdAotQEAgLTkzNywx MiArOTI4LDcgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElT UENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAgICAgICAgIHRoaXMtPm1faGFz VmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAgIENQVWZyb21JU0EgPSBDUFVfU0tYOwotICAg ICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAgIHVuc3VwcG9ydGVkX3RhcmdldCA9IHRydWU7 Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAgICAgY2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJz a3hfaTE2eDMyOgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBM TFZNIDEwLjArCi0gICAgICAgICAvLyBUaGlzIHRhcmdldCBpcyBlbmFibGVkIG9ubHkgZm9yIExM Vk0gMTAuMCBhbmQgbGF0ZXIKLSAgICAgICAgIC8vIGJlY2F1c2UgTExWTSByZXF1aXJlcyBhIG51 bWJlciBvZiBmaXhlcywgd2hpY2ggYXJlCi0gICAgICAgICAvLyBjb21taXR0ZWQgdG8gTExWTSAx MS4wIGFuZCBjYW4gYmUgYXBwbGllZCB0byAxMC4wLCBidXQgbm90Ci1AQCAtOTYzLDEwICs5NDks NiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1Rhcmdl dCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgdGhpcy0+bV9oYXNWZWNQcmVm ZXRjaCA9IGZhbHNlOwotICAgICAgICAgQ1BVZnJvbUlTQSA9IENQVV9TS1g7Ci0gICAgICAgICBi cmVhazsKLS0jZWxzZQotLSAgICAgICAgdW5zdXBwb3J0ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAg ICAgIGJyZWFrOwotLSNlbmRpZgotICNpZmRlZiBJU1BDX0FSTV9FTkFCTEVECi0gICAgIGNhc2Ug SVNQQ1RhcmdldDo6bmVvbl9pOHgxNjoKLSAgICAgICAgIHRoaXMtPm1faXNhID0gVGFyZ2V0OjpO RU9OOwotQEAgLTE2NjIsMTEgKzE2NDQsOSBAQCBHbG9iYWxzOjpHbG9iYWxzKCkgewotICAgICBp c011bHRpVGFyZ2V0Q29tcGlsYXRpb24gPSBmYWxzZTsKLSAgICAgZXJyb3JMaW1pdCA9IC0xOwot IAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBlbmFibGVU aW1lVHJhY2UgPSBmYWxzZTsKLSAgICAgLy8gc2V0IGRlZmF1bHQgZ3JhbnVsYXJpdHkgdG8gNTAw LgotICAgICB0aW1lVHJhY2VHcmFudWxhcml0eSA9IDUwMDsKLS0jZW5kaWYKLSAgICAgdGFyZ2V0 ID0gTlVMTDsKLSAgICAgY3R4ID0gbmV3IGxsdm06OkxMVk1Db250ZXh0OwotIAotZGlmZiAtLWdp dCBhL3NyYy9pc3BjLmggYi9zcmMvaXNwYy5oCi1pbmRleCBlMjVkODgzMGUuLmRlMzU3YTIxYyAx MDA2NDQKLS0tLSBhL3NyYy9pc3BjLmgKLSsrKyBiL3NyYy9pc3BjLmgKLUBAIC02OTUsMTMgKzY5 NSwxMiBAQCBzdHJ1Y3QgR2xvYmFscyB7Ci0gCi0gICAgIC8qIE51bWJlciBvZiBlcnJvcnMgdG8g c2hvdyBpbiBJU1BDLiAqLwotICAgICBpbnQgZXJyb3JMaW1pdDsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSsKLSAgICAgLyogV2hlbiB0cnVlLCBlbmFibGUgY29t cGlsZSB0aW1lIHRyYWNpbmcuICovCi0gICAgIGJvb2wgZW5hYmxlVGltZVRyYWNlOwotIAotICAg ICAvKiBXaGVuIGNvbXBpbGUgdGltZSB0cmFjaW5nIGlzIGVuYWJsZWQsIHNldCB0aW1lIGdyYW51 bGFyaXR5LiAqLwotICAgICBpbnQgdGltZVRyYWNlR3JhbnVsYXJpdHk7Ci0tI2VuZGlmCi0gfTsK LSAKLSBlbnVtIHsKLWRpZmYgLS1naXQgYS9zcmMvaXNwY192ZXJzaW9uLmggYi9zcmMvaXNwY192 ZXJzaW9uLmgKLWluZGV4IGQ3ODEzNDdmZC4uNDM0YjJkNjc4IDEwMDY0NAotLS0tIGEvc3JjL2lz cGNfdmVyc2lvbi5oCi0rKysgYi9zcmMvaXNwY192ZXJzaW9uLmgKLUBAIC00NCwxMyArNDQsMTEg QEAKLSAKLSAjZGVmaW5lIElTUENfTExWTV9WRVJTSU9OIChMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MDAwMCArIExMVk1fVkVSU0lPTl9NSU5PUiAqIDEwMCkKLSAKLS0jZGVmaW5lIElTUENfTExWTV84 XzAgODAwMDAKLS0jZGVmaW5lIElTUENfTExWTV85XzAgOTAwMDAKLSAjZGVmaW5lIElTUENfTExW TV8xMF8wIDEwMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzExXzAgMTEwMDAwCi0gI2RlZmluZSBJ U1BDX0xMVk1fMTJfMCAxMjAwMDAKLSAKLS0jZGVmaW5lIE9MREVTVF9TVVBQT1JURURfTExWTSBJ U1BDX0xMVk1fOF8wCi0rI2RlZmluZSBPTERFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEw XzAKLSAjZGVmaW5lIExBVEVTVF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fMTJfMAotIAotICNp ZmRlZiBfX2lzcGNfX3hzdHIKLWRpZmYgLS1naXQgYS9zcmMvbWFpbi5jcHAgYi9zcmMvbWFpbi5j cHAKLWluZGV4IDhmNjQzMzBjYy4uNWM5MjBlYWJjIDEwMDY0NAotLS0tIGEvc3JjL21haW4uY3Bw Ci0rKysgYi9zcmMvbWFpbi5jcHAKLUBAIC01NSw5ICs1NSw3IEBACi0gI2luY2x1ZGUgPGxsdm0v U3VwcG9ydC9TaWduYWxzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UYXJnZXRSZWdpc3Ry eS5oPgotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0U2VsZWN0Lmg+Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9U b29sT3V0cHV0RmlsZS5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0hPU1RfSVNfV0lORE9X UwotICNkZWZpbmUgc3RyY2FzZWNtcCBzdHJpY21wCi1AQCAtMTgxLDExICsxNzksOSBAQCBzdGF0 aWMgdm9pZCBsUHJpbnRWZXJzaW9uKCkgewotICAgICBzbnByaW50Zih0YXJnZXRIZWxwLCBzaXpl b2YodGFyZ2V0SGVscCksICJbLS10YXJnZXQtb3M9PG9zPl1cdFx0XHRTZWxlY3QgdGFyZ2V0IE9T LiAgPG9zPj17JXN9IiwKLSAgICAgICAgICAgICAgZy0+dGFyZ2V0X3JlZ2lzdHJ5LT5nZXRTdXBw b3J0ZWRPU2VzKCkuY19zdHIoKSk7Ci0gICAgIFByaW50V2l0aFdvcmRCcmVha3ModGFyZ2V0SGVs cCwgMjQsIFRlcm1pbmFsV2lkdGgoKSwgc3Rkb3V0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgcHJpbnRmKCIgICAgWy0tdGltZS10cmFjZV1cdFx0XHRU dXJuIG9uIHRpbWUgcHJvZmlsZXIuIEdlbmVyYXRlcyBKU09OIGZpbGUgYmFzZWQgb24gb3V0cHV0 IGZpbGVuYW1lLlxuIik7Ci0gICAgIHByaW50ZigiICAgIFstLXRpbWUtdHJhY2UtZ3JhbnVsYXJp dHk9PHZhbHVlPlx0TWluaW11bSB0aW1lIGdyYW51bGFyaXR5IChpbiBtaWNyb3NlY29uZHMpIHRy YWNlZCBieSB0aW1lICIKLSAgICAgICAgICAgICJwcm9maWxlci5cbiIpOwotLSNlbmRpZgotICAg ICBwcmludGYoIiAgICBbLS12ZXJzaW9uXVx0XHRcdFx0UHJpbnQgaXNwYyB2ZXJzaW9uXG4iKTsK LSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAgICAgcHJpbnRmKCIgICAgWy0tdmMtb3B0aW9u cz08XCItb3B0aW9uMSAtb3B0aW9uMi4uLlwiPl1cdFx0XHRcdFBhc3MgYWRkaXRpb25hbCBvcHRp b25zIHRvIFZlY3RvciBDb21waWxlciBiYWNrZW5kXG4iKTsKLUBAIC00NjIsNyArNDU4LDYgQEAg c3RhdGljIHZvaWQgc2V0Q2FsbGluZ0NvbnYoVmVjdG9yQ2FsbFN0YXR1cyB2ZWN0b3JDYWxsLCBB cmNoIGFyY2gpIHsKLSAgICAgfQotIH0KLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSBzdGF0aWMgdm9pZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShjb25zdCBjaGFy ICpvdXRGaWxlTmFtZSkgewotICAgICBsbHZtOjpTbWFsbFN0cmluZzwxMjg+IGpzb25GaWxlTmFt ZShvdXRGaWxlTmFtZSk7Ci0gICAgIGpzb25GaWxlTmFtZS5hcHBlbmQoIi5qc29uIik7Ci1AQCAt NDc5LDcgKzQ3NCw2IEBAIHN0YXRpYyB2b2lkIHdyaXRlQ29tcGlsZVRpbWVGaWxlKGNvbnN0IGNo YXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIG9mLT5rZWVwKCk7Ci0gICAgIHJldHVybjsKLSB9Ci0t I2VuZGlmCi0gCi0gc3RhdGljIHN0ZDo6c2V0PGludD4gUGFyc2luZ1BoYXNlcyhjaGFyICpzdGFn ZXMsIEFyZ0Vycm9ycyAmZXJyb3JIYW5kbGVyKSB7Ci0gICAgIGNvbnN0ZXhwciBpbnQgcGFyc2lu Z19saW1pdCA9IDEwMDsKLUBAIC03OTEsMTIgKzc4NSwxMCBAQCBpbnQgbWFpbihpbnQgQXJnYywg Y2hhciAqQXJndltdKSB7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNlIGlmICghc3Ry bmNtcChhcmd2W2ldLCAiLS1mb3JjZS1hbGlnbm1lbnQ9IiwgMTgpKSB7Ci0gICAgICAgICAgICAg Zy0+Zm9yY2VBbGlnbm1lbnQgPSBhdG9pKGFyZ3ZbaV0gKyAxOCk7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJn dltpXSwgIi0tdGltZS10cmFjZSIpKSB7Ci0gICAgICAgICAgICAgZy0+ZW5hYmxlVGltZVRyYWNl ID0gdHJ1ZTsKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndltpXSwgIi0tdGltZS10 cmFjZS1ncmFudWxhcml0eT0iLCAyNSkpIHsKLSAgICAgICAgICAgICBnLT50aW1lVHJhY2VHcmFu dWxhcml0eSA9IGF0b2koYXJndltpXSArIDI1KTsKLS0jZW5kaWYKLSAgICAgICAgIH0gZWxzZSBp ZiAoIXN0cmNtcChhcmd2W2ldLCAiLS13b2ZmIikgfHwgIXN0cmNtcChhcmd2W2ldLCAiLXdvZmYi KSkgewotICAgICAgICAgICAgIGctPmRpc2FibGVXYXJuaW5ncyA9IHRydWU7Ci0gICAgICAgICAg ICAgZy0+ZW1pdFBlcmZXYXJuaW5ncyA9IGZhbHNlOwotQEAgLTEwNTksNyArMTA1MSw2IEBAIGlu dCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAKLSAgICAgLy8gVGhpcyBuZWVkcyB0 byBoYXBwZW4gYWZ0ZXIgdGhlIFRhcmdldE9TIGlzIGRlY2lkZWQuCi0gICAgIHNldENhbGxpbmdD b252KHZlY3RvckNhbGwsIGFyY2gpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBpZiAoZy0+ZW5hYmxlVGltZVRyYWNlKSB7Ci0gICAgICAgICBsbHZtOjp0 aW1lVHJhY2VQcm9maWxlckluaXRpYWxpemUoZy0+dGltZVRyYWNlR3JhbnVsYXJpdHksICJpc3Bj Iik7Ci0gICAgIH0KLUBAIC0xMDc3LDkgKzEwNjgsNSBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hh ciAqQXJndltdKSB7Ci0gICAgICAgICB9Ci0gICAgICAgICBsbHZtOjp0aW1lVHJhY2VQcm9maWxl ckNsZWFudXAoKTsKLSAgICAgfQotLSNlbHNlCi0tICAgIGludCByZXQgPSBNb2R1bGU6OkNvbXBp bGVBbmRPdXRwdXQoZmlsZSwgYXJjaCwgY3B1LCB0YXJnZXRzLCBmbGFncywgb3QsIG91dEZpbGVO YW1lLCBoZWFkZXJGaWxlTmFtZSwgZGVwc0ZpbGVOYW1lLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlcHNUYXJnZXROYW1lLCBob3N0U3R1YkZpbGVOYW1lLCBkZXZT dHViRmlsZU5hbWUpOwotLSNlbmRpZgotICAgICByZXR1cm4gcmV0OwotIH0KLWRpZmYgLS1naXQg YS9zcmMvbW9kdWxlLmNwcCBiL3NyYy9tb2R1bGUuY3BwCi1pbmRleCBmZTc0NTJkZjEuLmE4NWZl Yzc3YSAxMDA2NDQKLS0tLSBhL3NyYy9tb2R1bGUuY3BwCi0rKysgYi9zcmMvbW9kdWxlLmNwcAot QEAgLTE3MCw5ICsxNzAsNyBAQCBNb2R1bGU6Ok1vZHVsZShjb25zdCBjaGFyICpmbikgewotICAg ICBtb2R1bGUtPnNldERhdGFMYXlvdXQoZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFN0 cmluZ1JlcHJlc2VudGF0aW9uKCkpOwotIAotICAgICBpZiAoZy0+Z2VuZXJhdGVEZWJ1Z2dpbmdT eW1ib2xzKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkNyZWF0ZSBEZWJ1ZyBEYXRhIik7 Ci0tI2VuZGlmCi0gICAgICAgICAvLyBUbyBlbmFibGUgZGVidWcgaW5mb3JtYXRpb24gb24gV2lu ZG93cywgd2UgaGF2ZSB0byBsZXQgbGx2bSBrbm93LCB0aGF0Ci0gICAgICAgICAvLyBkZWJ1ZyBp bmZvcm1hdGlvbiBzaG91bGQgYmUgZW1pdHRlZCBpbiBDb2RlVmlldyBmb3JtYXQuCi0gICAgICAg ICBpZiAoZy0+dGFyZ2V0X29zID09IFRhcmdldE9TOjp3aW5kb3dzKSB7Ci1AQCAtMjI2LDEwICsy MjQsOCBAQCBleHRlcm4gWVlfQlVGRkVSX1NUQVRFIHl5X2NyZWF0ZV9idWZmZXIoRklMRSAqLCBp bnQpOwotIGV4dGVybiB2b2lkIHl5X2RlbGV0ZV9idWZmZXIoWVlfQlVGRkVSX1NUQVRFKTsKLSAK LSBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgQ29tcGlsZUZpbGVUaW1l U2NvcGUoCi0gICAgICAgICAiQ29tcGlsZUZpbGUiLCBsbHZtOjpTdHJpbmdSZWYoZmlsZW5hbWUg KyAoIl8iICsgc3RkOjpzdHJpbmcoZy0+dGFyZ2V0LT5HZXRJU0FTdHJpbmcoKSkpKSk7Ci0tI2Vu ZGlmCi0gICAgIGV4dGVybiB2b2lkIFBhcnNlckluaXQoKTsKLSAgICAgUGFyc2VySW5pdCgpOwot IAotQEAgLTIzOCwxOCArMjM0LDE0IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotICAg ICAvLyB2YXJpYWJsZSAnbScgdG8gYmUgaW5pdGlhbGl6ZWQgYW5kIGF2YWlsYWJsZSAod2hpY2gg aXQgaXNuJ3QgdW50aWwKLSAgICAgLy8gdGhlIE1vZHVsZSBjb25zdHJ1Y3RvciByZXR1cm5zLi4u KQotICAgICB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkRlZmluZVN0ZGxpYiIpOwotLSNl bmRpZgotICAgICAgICAgRGVmaW5lU3RkbGliKHN5bWJvbFRhYmxlLCBnLT5jdHgsIG1vZHVsZSwg Zy0+aW5jbHVkZVN0ZGxpYik7Ci0gICAgIH0KLSAKLSAgICAgYm9vbCBydW5QcmVwcm9jZXNzb3Ig PSBnLT5ydW5DUFA7Ci0gCi0gICAgIGlmIChydW5QcmVwcm9jZXNzb3IpIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIFRpbWVTY29wZSgiRnJvbnRlbmQgcGFyc2VyIik7Ci0tI2VuZGlmCi0gICAgICAgICBpZiAo IUlzU3RkaW4oZmlsZW5hbWUpKSB7Ci0gICAgICAgICAgICAgLy8gVHJ5IHRvIG9wZW4gdGhlIGZp bGUgZmlyc3QsIHNpbmNlIG90aGVyd2lzZSB3ZSBjcmFzaCBpbiB0aGUKLSAgICAgICAgICAgICAv LyBwcmVwcm9jZXNzb3IgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdC4KLUBAIC0yNjgsOSArMjYw LDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAgICAgICB5eXBhcnNlKCk7Ci0g ICAgICAgICB5eV9kZWxldGVfYnVmZmVyKHN0cmJ1Zik7Ci0gICAgIH0gZWxzZSB7Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJh Y2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5kIHBhcnNlciIpOwotLSNlbmRpZgotICAgICAgICAg Ly8gTm8gcHJlcHJvY2Vzc29yLCBqdXN0IG9wZW4gdXAgdGhlIGZpbGUgaWYgaXQncyBub3Qgc3Rk aW4uLgotICAgICAgICAgRklMRSAqZiA9IE5VTEw7Ci0gICAgICAgICBpZiAoSXNTdGRpbihmaWxl bmFtZSkpIHsKLUBAIC0yOTcsOSArMjg3LDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7 Ci0gCi0gICAgIGlmIChkaUJ1aWxkZXIpCi0gICAgICAgICBkaUJ1aWxkZXItPmZpbmFsaXplKCk7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiT3B0aW1pemUiKTsKLS0jZW5kaWYKLSAgICAgaWYgKGVy cm9yQ291bnQgPT0gMCkKLSAgICAgICAgIE9wdGltaXplKG1vZHVsZSwgZy0+b3B0LmxldmVsKTsK LSAKLUBAIC0xMjQzLDE1ICsxMjMxLDggQEAgYm9vbCBNb2R1bGU6OndyaXRlT2JqZWN0RmlsZU9y QXNzZW1ibHkobGx2bTo6VGFyZ2V0TWFjaGluZSAqdGFyZ2V0TWFjaGluZSwgbGx2bToKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRGaWxlTmFt ZSkgewotICAgICAvLyBGaWd1cmUgb3V0IGlmIHdlJ3JlIGdlbmVyYXRpbmcgb2JqZWN0IGZpbGUg b3IgYXNzZW1ibHkgb3V0cHV0LCBhbmQKLSAgICAgLy8gc2V0IGJpbmFyeSBvdXRwdXQgZm9yIG9i amVjdCBmaWxlcwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAg IEFzc2VydCghZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0tICAgIGxsdm06OlRhcmdldE1h Y2hpbmU6OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9Ci0tICAgICAgICAob3V0cHV0VHlwZSA9 PSBPYmplY3QpID8gbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q0dGVF9PYmplY3RGaWxlIDogbGx2bTo6 VGFyZ2V0TWFjaGluZTo6Q0dGVF9Bc3NlbWJseUZpbGU7Ci0tICAgIGJvb2wgYmluYXJ5ID0gKGZp bGVUeXBlID09IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfT2JqZWN0RmlsZSk7Ci0tI2Vsc2Ug Ly8gTExWTSAxMC4wKwotICAgICBsbHZtOjpDb2RlR2VuRmlsZVR5cGUgZmlsZVR5cGUgPSAob3V0 cHV0VHlwZSA9PSBPYmplY3QpID8gbGx2bTo6Q0dGVF9PYmplY3RGaWxlIDogbGx2bTo6Q0dGVF9B c3NlbWJseUZpbGU7Ci0gICAgIGJvb2wgYmluYXJ5ID0gKGZpbGVUeXBlID09IGxsdm06OkNHRlRf T2JqZWN0RmlsZSk7Ci0tI2VuZGlmCi0gCi0gICAgIGxsdm06OnN5czo6ZnM6Ok9wZW5GbGFncyBm bGFncyA9IGJpbmFyeSA/IGxsdm06OnN5czo6ZnM6OkZfTm9uZSA6IGxsdm06OnN5czo6ZnM6OkZf VGV4dDsKLSAKLUBAIC0yMjE5LDExICsyMjAwLDcgQEAgdm9pZCBNb2R1bGU6OmV4ZWNQcmVwcm9j ZXNzb3IoY29uc3QgY2hhciAqaW5maWxlbmFtZSwgbGx2bTo6cmF3X3N0cmluZ19vc3RyZWFtICoK LSAgICAgaW5zdC5zZXRUYXJnZXQodGFyZ2V0KTsKLSAgICAgaW5zdC5jcmVhdGVTb3VyY2VNYW5h Z2VyKGluc3QuZ2V0RmlsZU1hbmFnZXIoKSk7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9 IElTUENfTExWTV85XzAKLS0gICAgY2xhbmc6OkZyb250ZW5kSW5wdXRGaWxlIGlucHV0RmlsZShp bmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kOjpVbmtub3duKTsKLS0jZWxzZSAvLyBMTFZNIDEw LjArCi0gICAgIGNsYW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwg Y2xhbmc6OklucHV0S2luZCgpKTsKLS0jZW5kaWYKLSAKLSAgICAgaW5zdC5Jbml0aWFsaXplU291 cmNlTWFuYWdlcihpbnB1dEZpbGUpOwotIAotQEAgLTI3MjIsOSArMjY5OSw3IEBAIGludCBNb2R1 bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3JjRmlsZSwgQXJjaCBhcmNoLCBjb25z dCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICBtID0gbmV3IE1vZHVsZShzcmNGaWxlKTsKLSAg ICAgICAgIGlmIChtLT5Db21waWxlRmlsZSgpID09IDApIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBU aW1lU2NvcGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQK LSAgICAgICAgICAgICBpZiAob3V0cHV0VHlwZSA9PSBBc20gfHwgb3V0cHV0VHlwZSA9PSBPYmpl Y3QpIHsKLSAgICAgICAgICAgICAgICAgaWYgKGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpIHsK LUBAIC0yODU1LDkgKzI4MzAsNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGNvbnN0 IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBzdAotIAotICAgICAg ICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAgICAgICAgIGludCBjb21waWxl RmlsZUVycm9yID0gbS0+Q29tcGlsZUZpbGUoKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2Nv cGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICBpZiAoY29tcGlsZUZpbGVFcnJv ciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgZGlzcGF0Y2ggbW9kdWxl LCB1bmxlc3MgYWxyZWFkeSBjcmVhdGVkOwotICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbGF0 dGVyIGNhc2UsIGp1c3QgZG8gdGhlIGNoZWNraW5nCi1kaWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5o IGIvc3JjL21vZHVsZS5oCi1pbmRleCA2MWQzY2ZlYTAuLjYwMzEyNGQ1MCAxMDA2NDQKLS0tLSBh L3NyYy9tb2R1bGUuaAotKysrIGIvc3JjL21vZHVsZS5oCi1AQCAtNDMsOSArNDMsNyBAQAotIAot ICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGltZVByb2ZpbGVy Lmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gI2luY2x1ZGUgIm9j bF9pZ2NfaW50ZXJmYWNlL2lnY19vY2xfZGV2aWNlX2N0eC5oIgotZGlmZiAtLWdpdCBhL3NyYy9v cHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGE2NTVhODM0NC4uNWIxYWM3YjYzIDEwMDY0NAot LS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtNjYsNiArNjYsNyBAQAot ICNpbmNsdWRlIDxsbHZtL0lSL0luc3RydWN0aW9ucy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0lu dHJpbnNpY0luc3QuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNzLmg+Ci0rI2luY2x1 ZGUgPGxsdm0vSVIvSW50cmluc2ljc1g4Ni5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0xlZ2FjeVBh c3NNYW5hZ2VyLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvTW9kdWxlLmg+Ci0gI2luY2x1ZGUgPGxs dm0vSVIvUGF0dGVybk1hdGNoLmg+Ci1AQCAtODUsOSArODYsNiBAQAotICNpbmNsdWRlIDxsbHZt L1RyYW5zZm9ybXMvU2NhbGFyL0luc3RTaW1wbGlmeVBhc3MuaD4KLSAjaW5jbHVkZSA8bGx2bS9U cmFuc2Zvcm1zL1V0aWxzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9VdGlscy9CYXNp Y0Jsb2NrVXRpbHMuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LS0jaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNzWDg2Lmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVm IElTUENfSE9TVF9JU19MSU5VWAotICNpbmNsdWRlIDxhbGxvY2EuaD4KLUBAIC0xMDAzLDEwICsx MDAxLDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg YWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIg PyA0IDogODsKLSAgICAgICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5n ZXRBcmdPcGVyYW5kKDApLCAiX2xvYWQiKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQ Q19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3Qg PQotLSAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUs IGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYWxpZ24sIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5V TEwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAgICAgICAgICAgICAgIGxsdm06 Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1l LCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFs aWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vsc2UKLUBAIC0xMDQzLDEzICsx MDM4LDggQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXRO YXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg ICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhN YXNrZWRTdG9yZTMyID8gNCA6IDg7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExW TV85XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICpzdG9yZUluc3QgPSBuZXcg bGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgY2FzdFB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVM TCk7Ci0tICAgICAgICAgICAgICAgIHN0b3JlSW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0j ZWxzZQotICAgICAgICAgICAgICAgICBsbHZtOjpTdG9yZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBs bHZtOjpTdG9yZUluc3QocnZhbHVlLCBjYXN0UHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxM LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpKTsKLS0jZW5k aWYKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShzdG9yZUluc3QsIGNhbGxJbnN0KTsK LSAgICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgc3Rv cmVJbnN0KTsKLSAKLUBAIC0xMDY2LDkgKzEwNTYsNyBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW50cmluc2lj c09wdDo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBG dW5jU2NvcGUoIkludHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0t I2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpC YXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNC bG9jayhCQik7Ci1AQCAtMTIzOSw5ICsxMjI3LDcgQEAgYm9vbCBJbnN0cnVjdGlvblNpbXBsaWZ5 UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJ bnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikg ewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5P bkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55 ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAg ICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTI5NzQsMTYgKzI5NjAs MTAgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRTdG9yZShsbHZtOjpDYWxsSW5zdCAqY2Fs bEluc3QpIHsKLSAKLSAgICAgICAgICAgICBsdmFsdWUgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3Qo bHZhbHVlLCBwdHJUeXBlLCAibHZhbHVlX3RvX3B0cl90eXBlIiwgY2FsbEluc3QpOwotICAgICAg ICAgICAgIGxDb3B5TWV0YWRhdGEobHZhbHVlLCBjYWxsSW5zdCk7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICBzdG9yZSA9Ci0tICAgICAgICAg ICAgICAgIG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVlLCBsdmFsdWUsIGZhbHNlIC8qIG5vdCB2 b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLT5vcHQu Zm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KSA6IGluZm8tPmFsaWduKTsKLS0jZWxzZQotICAgICAgICAgICAgIHN0b3JlID0gbmV3IGxsdm06 OlN0b3JlSW5zdCgKLSAgICAgICAgICAgICAgICAgcnZhbHVlLCBsdmFsdWUsIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT5vcHQu Zm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KSA6IGluZm8tPmFsaWduKQotICAgICAgICAgICAgICAgICAgICAgLnZhbHVlT3JPbmUoKSk7Ci0t I2VuZGlmCi0gICAgICAgICB9Ci0gICAgICAgICBpZiAoc3RvcmUgIT0gTlVMTCkgewotICAgICAg ICAgICAgIGxDb3B5TWV0YWRhdGEoc3RvcmUsIGNhbGxJbnN0KTsKLUBAIC0zMDU5LDExICszMDM5 LDcgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRMb2FkKGxsdm06OkNhbGxJbnN0ICpjYWxs SW5zdCwgbGx2bTo6QmFzaWNCbG9jazo6aXRlcmEKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBs bHZtOjpUeXBlICpwdHJUeXBlID0gbGx2bTo6UG9pbnRlclR5cGU6OmdldChjYWxsSW5zdC0+Z2V0 VHlwZSgpLCAwKTsKLSAgICAgICAgICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRy LCBwdHJUeXBlLCAicHRyX2Nhc3RfZm9yX2xvYWQiLCBjYWxsSW5zdCk7Ci0tI2lmIElTUENfTExW TV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICBsb2FkID0gbmV3IGxsdm06 OkxvYWRJbnN0KHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZy0+b3B0LmZvcmNl QWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBp bmZvLT5hbGlnbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsbHZt OjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAg ICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgKLSAgICAgICAgICAgICAgICAgcHRy LCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbikKLUBAIC0z MTI5LDkgKzMxMDUsNyBAQCBib29sIEltcHJvdmVNZW1vcnlPcHNQYXNzOjpydW5PbkJhc2ljQmxv Y2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEltcHJvdmVNZW1vcnlPcHNQYXNz OjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNT Y29wZSgiSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7 Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZt OjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFz aWNCbG9jayhCQik7Ci1AQCAtMzQyNCw5ICszMzk4LDcgQEAgbGx2bTo6VmFsdWUgKmxHRVBBbmRM b2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNldCwgaW50IGFsaWduLCBsbHZt OjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqdHlwZSkgewotICAgICBs bHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExWTUludDY0KG9mZnNldCksICJu ZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5z dChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCksICJwdHJfY2FzdCIsIGluc2Vy dEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAg cmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywgYWxpZ24sIGluc2VydEJlZm9yZSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19M TFZNXzEwXzAKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJfbG9h ZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIGlu c2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwotICAgICByZXR1cm4gbmV3IGxsdm06 OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUo KSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi1AQCAtNDEzNSw5ICs0MTA3LDcgQEAg Ym9vbCBHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotIAotIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06 OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiR2F0aGVyQ29hbGVzY2VQ YXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1v ZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7 Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTQ0Njcs OSArNDQzNyw3IEBAIGJvb2wgUmVwbGFjZVBzZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVBzZXVkb01lbW9y eU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgRnVuY1Njb3BlKCJSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbiIs IEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwot ICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRB bnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NTczLDkgKzQ1NDEsNyBAQCBib29sIElz Q29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotIAotIGJvb2wgSXNDb21waWxlVGltZUNvbnN0YW50UGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIklzQ29tcGls ZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlm Ci0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Js b2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhC Qik7Ci1AQCAtNTIwMSw5ICs1MTY3LDcgQEAgYm9vbCBQZWVwaG9sZVBhc3M6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUGVlcGhvbGVQYXNzOjpydW5P bkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgi UGVlcGhvbGVQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTUyOTksOSArNTI2Myw3IEBAIGJvb2wgUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlU3RkbGli U2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIEZ1bmNTY29wZSgiUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mzk5LDkgKzUzNjEsNyBAQCBsbHZtOjpJbnN0 cnVjdGlvbiAqRml4Qm9vbGVhblNlbGVjdFBhc3M6OmZpeFNlbGVjdChsbHZtOjpTZWxlY3RJbnN0 ICpzZWwsIGxsdm06OgotIH0KLSAKLSBib29sIEZpeEJvb2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1 bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4Qm9v bGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAKLSAgICAgcmV0dXJuIG1vZGlmaWVkQW55 OwotQEAgLTU5NjQsOSArNTkyNCw3IEBAIGJvb2wgR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9u QmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIEdlblhHYXRo ZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIEZ1bmNTY29wZSgiR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9uRnVuY3Rpb24iLCBGLmdl dE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAg Zm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9 IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjExMyw5ICs2MDcxLDcgQEAgYm9vbCBQcm9tb3Rl VG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gCi0gYm9vbCBQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25GdW5jdGlvbihs bHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlByb21vdGVUb1By aXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgot ICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9j ayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIp OwotQEAgLTYxODEsOSArNjEzNyw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VMTFZN SW50cmluc2ljczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VT Y29wZSBGdW5jU2NvcGUoIlJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02Mjc4LDkgKzYyMzIsNyBAQCBib29sIFJlcGxh Y2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAKLSBib29sIFJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uKGxsdm06 OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVVuc3VwcG9y dGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJv b2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6 IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAt NjM2OSw5ICs2MzIxLDcgQEAgYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIENoZWNrVW5zdXBwb3J0 ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBG dW5jU2NvcGUoIkNoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFt ZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3Ig KGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVu T25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02NDQwLDkgKzYzOTAsNyBAQCBib29sIE1hbmdsZU9wZW5D TEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSB9Ci0g Ci0gYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlv biAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBs bHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIk1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5P bkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55 ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAg ICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTY4MjgsOSArNjc3Niw3 IEBAIGJvb2wgRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZG KSB7Ci0gICAgIC8vIFRyYW5zZm9ybWF0aW9ucyBhcmUgY29ycmVjdCB3aGVuIHRoZSBmdW5jdGlv biBpcyBub3QgaW50ZXJuYWwuCi0gICAgIC8vIFRoaXMgaXMgZHVlIHRvIGFkZHJlc3Mgc3BhY2Ug Y2FsY3VsYXRpb24gYWxnb3JpdGhtLgotICAgICAvLyBUT0RPOiBwcm9ibGVtcyBjYW4gYmUgbWV0 IGluIGNhc2Ugb2YgU3RhY2sgQ2FsbHMKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJGaXhBZGRyZXNz U3BhY2U6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGlmIChG LmdldExpbmthZ2UoKSA9PSBsbHZtOjpHbG9iYWxWYWx1ZTo6TGlua2FnZVR5cGVzOjpJbnRlcm5h bExpbmthZ2UpCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gCi1AQCAtNjg1NCw5ICs2ODAwLDcg QEAgY2xhc3MgRGVtb3RlUEhJcyA6IHB1YmxpYyBsbHZtOjpGdW5jdGlvblBhc3MgewotIGNoYXIg RGVtb3RlUEhJczo6SUQgPSAwOwotIAotIGJvb2wgRGVtb3RlUEhJczo6cnVuT25GdW5jdGlvbihs bHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkRlbW90ZVBISXM6OnJ1 bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGlmIChGLmlzRGVjbGFy YXRpb24oKSB8fCBza2lwRnVuY3Rpb24oRikpCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg IHN0ZDo6dmVjdG9yPGxsdm06Okluc3RydWN0aW9uICo+IFdvcmtMaXN0OwotZGlmZiAtLWdpdCBh L3NyYy90eXBlLmNwcCBiL3NyYy90eXBlLmNwcAotaW5kZXggNjg4YTRlODc0Li5mYTBjYjA0ZGIg MTAwNjQ0Ci0tLS0gYS9zcmMvdHlwZS5jcHAKLSsrKyBiL3NyYy90eXBlLmNwcAotQEAgLTE4MjIs MTQgKzE4MjIsMTAgQEAgbGx2bTo6RElUeXBlICpTdHJ1Y3RUeXBlOjpHZXRESVR5cGUobGx2bTo6 RElTY29wZSAqc2NvcGUpIGNvbnN0IHsKLSAgICAgbGx2bTo6RElGaWxlICpkaUZpbGUgPSBwb3Mu R2V0RElGaWxlKCk7Ci0gICAgIGxsdm06OkRJTmFtZXNwYWNlICpkaVNwYWNlID0gcG9zLkdldERJ TmFtZXNwYWNlKCk7Ci0gICAgIHJldHVybiBtLT5kaUJ1aWxkZXItPmNyZWF0ZVN0cnVjdFR5cGUo ZGlTcGFjZSwgR2V0U3RyaW5nKCksIGRpRmlsZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwgICAgICAgICAgLy8gTGluZSBudW1iZXIK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldFNp emVJbkJpdHMoKSwgLy8gU2l6ZSBpbiBiaXRzCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElT UENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs YXlvdXQtPmdldEFsaWdubWVudCgpICogOCwgLy8gQWxpZ25tZW50IGluIGJpdHMKLS0jZWxzZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gTExWTSAxMC4wKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBvcy5maXJzdF9saW5lLCAgICAgICAgICAgICAgICAgICAgIC8vIExpbmUgbnVtYmVy Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRT aXplSW5CaXRzKCksICAgICAgICAgICAgLy8gU2l6ZSBpbiBiaXRzCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRBbGlnbm1lbnQoKS52YWx1ZSgp ICogOCwgLy8gQWxpZ25tZW50IGluIGJpdHMKLS0jZW5kaWYKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZsYWdaZXJvLCAvLyBGbGFncwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRJTm9kZTo6 RmxhZ1plcm8sICAgICAgICAgICAgIC8vIEZsYWdzCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgZWxlbWVudHMpOwotIH0KLSAKLWRpZmYgLS1naXQgYS90 ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotaW5k ZXggOTgwNjRkODRkLi40ZmViNzNkZDcgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTc3 MS5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi1AQCAtNSw3ICs1LDYgQEAK LSAvLyBSVU46ICV7aXNwY30gJXMgLS10YXJnZXQ9c3NlNC1pMTZ4OCAtLWVtaXQtYXNtIC1vIC0g fCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDS1NTRTRfSTE2WDgKLSAvLyBSVU46ICV7 aXNwY30gJXMgLS10YXJnZXQ9c3NlNC1pOHgxNiAtLWVtaXQtYXNtIC1vIC0gfCBGaWxlQ2hlY2sg JXMgLWNoZWNrLXByZWZpeD1DSEVDS1NTRTRfSThYMTYKLSAKLS0vLyBSRVFVSVJFUzogTExWTV8x MF8wKwotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotIC8vIENIRUNLQVZYMl9JMzJYODog e3tbYS16XSp4b3JbYS16XSp9fSAgJXhtbTAsICV4bW0wLCAleG1tMAotZGlmZiAtLWdpdCBhL3Rl c3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi1pbmRl eCA3OTNhODg2NmMuLjE4OWVkZjRjMyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xODQ0 LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLUBAIC02LDkgKzYsNiBAQAot IAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotLS8vIEl0IGRvZXNuJ3Qgd29yayBmb3Ig YW55dGhpbmcgZWFybGllciB0aGFuIDEwLjAsIGJ1dCBpdCB3aWxsIG5vdCBiZSBmaXhlZCwgc28g ZG9uJ3QgcnVuLgotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0tCi0gZXh0ZXJuIHVuaWZvcm0g dW5zaWduZWQgaW50NjQgdmFyXzY7Ci0gZXh0ZXJuIHVuaWZvcm0gdW5zaWduZWQgaW50MTYgdmFy XzExOwotIGV4dGVybiB1bmlmb3JtIGJvb2wgYXJyXzIwMSBbMV0gWzE1XSBbMjBdOwotZGlmZiAt LWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvMTkyNi5p c3BjCi1pbmRleCA3MGY3Y2MzYzIuLjc5MjFjOTFhNiAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10 ZXN0cy8xOTI2LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLUBAIC0yLDgg KzIsNiBAQAotIC8vIFJVTjogY2F0ICVULzE5MjYuby5qc29uIFwKLSAvLyBSVU46ICAgfCBGaWxl Q2hlY2sgJXMKLSAKLS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwotLQotIC8vIENIRUNLOiAidHJh Y2VFdmVudHMiCi0gLy8gQ0hFQ0s6ICJkZXRhaWwiCi0gZXhwb3J0IHVuaWZvcm0gaW50IGZvbyh1 bmlmb3JtIGludCBhW10sIHVuaWZvcm0gaW50IGNvdW50KSB7Ci1kaWZmIC0tZ2l0IGEvdGVzdHMv bGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwot aW5kZXggNTE2ZWZkZDRjLi40ZDYwMTg2ZjYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMv Y3B1c194ODYuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLUBAIC0y NCw2ICsyNCw4IEBACi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10 YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY2wKLSAvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8g LS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljZWxha2Utc2VydmVyCi0gLy87 IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAt LWNwdT1pY3gKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdl dD1zc2UyLWkzMng0IC0tY3B1PXRpZ2VybGFrZQotKy8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQu byAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGdsCi0gCi0gLy8gUkVRVUlS RVM6IFg4Nl9FTkFCTEVECi0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2 X2xsdm0xMC5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjCi1kZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGVmMDAwMDBlNS4uMDAwMDAwMDAwCi0tLS0gYS90 ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLSsrKyAvZGV2L251bGwKLUBAIC0x LDExICswLDAgQEAKLS0vLyBUaGUgdGVzdCBjaGVja3MgdGhhdCBjcHUgZGVmaW5pdGlvbnMgKGlu Y2x1ZGluZyBhbGwgc3lub255bXMpIGFyZSBzdWNjZXNzZnVsbHkgY29uc3VtZWQgYnkgY29tcGls ZXIuCi0tCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9 c3NlMi1pMzJ4NCAtLWNwdT10aWdlcmxha2UKLS0vLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8g LS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRnbAotLQotLS8vIFJFUVVJUkVT OiBYODZfRU5BQkxFRAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0tCi0tdW5pZm9ybSBpbnQg aTsKLS0KLS12b2lkIGZvbygpIHt9Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzL2xpdC5j ZmcgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotaW5kZXggMTcwMTY1NzlkLi4wNDVlNjk0Mzcg MTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotKysrIGIvdGVzdHMvbGl0LXRl c3RzL2xpdC5jZmcKLUBAIC0zMCwxMSArMzAsNiBAQCBwcmludCgiQ29uZmlnOiIpCi0gCi0gIyBM TFZNIHZlcnNpb24KLSBsbHZtX3ZlcnNpb24gPSBMb29zZVZlcnNpb24oaXNwY19sbHZtX3ZlcnNp b25fbnVtYmVyKQotLWlmIGxsdm1fdmVyc2lvbiA+PSBMb29zZVZlcnNpb24oIjEwLjAuMCIpOgot LSAgICBwcmludCgiTExWTV8xMF8wKzogWUVTIikKLS0gICAgY29uZmlnLmF2YWlsYWJsZV9mZWF0 dXJlcy5hZGQoIkxMVk1fMTBfMCsiKQotLWVsc2U6Ci0tICAgIHByaW50KCJMTFZNXzEwXzArOiBO TyIpCi0gCi0gaWYgbGx2bV92ZXJzaW9uID49IExvb3NlVmVyc2lvbigiMTIuMC4wIik6Ci0gICAg IHByaW50KCJMTFZNXzEyXzArOiBZRVMiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwMy5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MjNhZmM5ZTNmOS4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxNTA0ICswLDAgQEAKLUZyb20gMTg1MWQxOGIyMTNkYmFkMTY5OTM3MDc2MTc2 YjJkNTUwOTczM2M3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERlZXBhayBSYWpl bmRyYWt1bWFyYW4gPGRlZXBhay5yYWplbmRyYWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogVHVl LCAxMiBKYW4gMjAyMSAyMjoxNToxMiAtMDgwMAotU3ViamVjdDogW1BBVENIXSBmaXhlcyAjMTgy MSAtIFJlbW92aW5nIExMVk1HZXROYW1lKCkgYW5kIHN3aXRjaGluZyB0bwotIExMVk06OlR3aW5l LgotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgIHwgMzA0ICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2N0eC5oICAgICAgICB8ICA3MiArKysrKy0t LS0tLQotIHNyYy9leHByLmNwcCAgICAgfCAgMzYgKysrLS0tCi0gc3JjL2xsdm11dGlsLmNwcCB8 ICAxNyAtLS0KLSBzcmMvbGx2bXV0aWwuaCAgIHwgICA1IC0KLSBzcmMvb3B0LmNwcCAgICAgIHwg MTAzICsrKysrKysrKy0tLS0tLS0KLSA2IGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCsp LCAyODIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHgu Y3BwCi1pbmRleCA0MmM0ZWEwOWQuLmRlZDUyNGI3MSAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3Bw Ci0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAsOCArMTAyMCw4IEBAIHZvaWQgRnVuY3Rpb25F bWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQgdmFsdWUsIGJvb2wgY2hlY2tNYXNrLCBTb3Vy Y2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxvY2sgKmJiQ2FzZUltcGwgPSBOVUxMOwotICAg ICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkgewotICAgICAgICAgLy8gQ3JlYXRlIGJhc2lj IGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVtZW50YXRpb24KLS0gICAgICAgIHN0ZDo6c3Ry aW5nIGJiTmFtZSA9IGJiQ2FzZS0+Z2V0TmFtZSgpLnN0cigpICsgIl9pbXBsIjsKLS0gICAgICAg IGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJiTmFtZS5jX3N0cigpLCBiYkNhc2UpOwot KyAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdpbmUoYmJDYXNlLT5nZXROYW1l KCkpICsgIl9pbXBsIjsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJi TmFtZSwgYmJDYXNlKTsKLSAgICAgfQotICNlbmRpZgotIAotQEAgLTExODUsNyArMTE4NSw3IEBA IGJvb2wgRnVuY3Rpb25FbWl0Q29udGV4dDo6aW5pdExhYmVsQkJsb2NrcyhBU1ROb2RlICpub2Rl LCB2b2lkICpkYXRhKSB7Ci0gICAgIGlmIChjdHgtPmxhYmVsTWFwLmZpbmQobHMtPm5hbWUpICE9 IGN0eC0+bGFiZWxNYXAuZW5kKCkpCi0gICAgICAgICBFcnJvcihscy0+cG9zLCAiTXVsdGlwbGUg bGFiZWxzIG5hbWVkIFwiJXNcIiBpbiBmdW5jdGlvbi4iLCBscy0+bmFtZS5jX3N0cigpKTsKLSAg ICAgZWxzZSB7Ci0tICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFz aWNCbG9jayhscy0+bmFtZS5jX3N0cigpKTsKLSsgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJi ID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1lKTsKLSAgICAgICAgIGN0eC0+bGFiZWxN YXBbbHMtPm5hbWVdID0gYmI7Ci0gICAgIH0KLSAgICAgcmV0dXJuIHRydWU7Ci1AQCAtMTI5OSw3 ICsxMjk5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFueShsbHZtOjpW YWx1ZSAqbWFzaykgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBz aW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0g aXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rp b247Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1h c2ssICJfYW55IikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZt OjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9hbnkiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAqbWFzaykgewotQEAgLTEzMTUs NyArMTMxNSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGwobGx2bTo6 VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwg c2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVt IGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0 aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZSht YXNrLCAiX2FsbCIpKTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2 bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfYWxsIik7Ci0gfQotIAotIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMz MSw3ICsxMzMxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vbmUobGx2 bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9u ZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lz dGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1 bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFt ZShtYXNrLCAiX25vbmUiKSk7Ci0rICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ss IGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX25vbmUiKTsKLSB9Ci0gCi0gbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxhbmVNYXNrKGxsdm06OlZhbHVlICp2KSB7Ci1A QCAtMTM0OSw3ICsxMzQ5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okxh bmVNYXNrKGxsdm06OlZhbHVlICp2KSB7Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVp dGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0 eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1t WzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgdiwgTExWTUdl dE5hbWUodiwgIl9tb3Ztc2siKSk7Ci0rICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHYs IGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX21vdm1zayIpOwotIH0KLSAKLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFza3NBbGxFcXVhbChsbHZtOjpWYWx1ZSAqdjEs IGxsdm06OlZhbHVlICp2MikgewotQEAgLTEzNjQsMTEgKzEzNjQsMTIgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZt OjpWYWx1ZSAqdjIKLSAjZWxzZQotICAgICBpZiAoZy0+dGFyZ2V0LT5nZXRBcmNoKCkgPT0gQXJj aDo6d2FzbTMyKSB7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbS0+bW9kdWxlLT5n ZXRGdW5jdGlvbigiX193YXNtX2NtcF9tc2tfZXEiKTsKLS0gICAgICAgIHJldHVybiBDYWxsSW5z dChmbW0sIE5VTEwsIHt2MSwgdjJ9LCBMTFZNR2V0TmFtZSgid2FzbV9jbXBfbXNrX2VxIiwgdjEs IHYyKSk7Ci0rICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB7djEsIHYyfSwgKChs bHZtOjpUd2luZSgid2FzbV9jbXBfbXNrX2VxXyIpICsgdjEtPmdldE5hbWUoKSkgKyAiXyIpICsg djItPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAgICAgbGx2bTo6VmFsdWUgKm1tMSA9IExhbmVNYXNr KHYxKTsKLSAgICAgbGx2bTo6VmFsdWUgKm1tMiA9IExhbmVNYXNrKHYyKTsKLS0gICAgcmV0dXJu IENtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIGxsdm06OkNtcEluc3Q6OklDTVBfRVEs IG1tMSwgbW0yLCBMTFZNR2V0TmFtZSgiZXF1YWwiLCB2MSwgdjIpKTsKLSsgICAgcmV0dXJuIENt cEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIGxsdm06OkNtcEluc3Q6OklDTVBfRVEsIG1t MSwgbW0yLAotKyAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJlcXVhbF8iKSArIHYx LT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkpOwotICNlbmRpZgotIH0KLSAKLUBA IC0xMzkyLDcgKzEzOTMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 U3RyaW5nUHRyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIpIHsKLSAgICAgcmV0dXJuIG5ldyBsbHZt OjpCaXRDYXN0SW5zdChsc3RyUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgInN0cl92 b2lkX3B0ciIsIGJibG9jayk7Ci0gfQotIAotLWxsdm06OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6QmFzaWNC bG9jayAqaW5zZXJ0QWZ0ZXIpIHsKLStsbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNp Y0Jsb2NrICppbnNlcnRBZnRlcikgewotICAgICBsbHZtOjpCYXNpY0Jsb2NrICpuZXdCQiA9IGxs dm06OkJhc2ljQmxvY2s6OkNyZWF0ZSgqZy0+Y3R4LCBuYW1lLCBsbHZtRnVuY3Rpb24pOwotICAg ICBpZiAoaW5zZXJ0QWZ0ZXIpCi0gICAgICAgICBuZXdCQi0+bW92ZUFmdGVyKGluc2VydEFmdGVy KTsKLUBAIC0xNDE2LDE0ICsxNDE3LDE1IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpJMVZlY1RvQm9vbFZlYyhsbHZtOjpWYWx1ZSAqYikgewotIAotICAgICAgICAgZm9yICh1 bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBhdC0+Z2V0TnVtRWxlbWVudHMoKTsgKytpKSB7Ci0gICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmVsdCA9IEV4dHJhY3RJbnN0KGIsIGkpOwotLSAgICAgICAg ICAgIGxsdm06OlZhbHVlICpzZXh0ID0gU3dpdGNoQm9vbFNpemUoZWx0LCBMTFZNVHlwZXM6OkJv b2xWZWN0b3JTdG9yYWdlVHlwZSwgTExWTUdldE5hbWUoZWx0LCAiX3RvX2Jvb2x2ZWMiKSk7Ci0r ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNleHQgPQotKyAgICAgICAgICAgICAgICBTd2l0Y2hC b29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0b3JhZ2VUeXBlLCBsbHZtOjpUd2lu ZShlbHQtPmdldE5hbWUoKSkgKyAiX3RvX2Jvb2x2ZWMiKTsKLSAgICAgICAgICAgICByZXQgPSBJ bnNlcnRJbnN0KHJldCwgc2V4dCwgaSk7Ci0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gcmV0 OwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gRm9yIG5vbi1hcnJheSB0eXBlcywgY29udmVy dCB0byAnTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZScgaWYKLSAgICAgICAgIC8vIG5lY2Vzc2Fy eS4KLS0gICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6ZShiLCBMTFZNVHlwZXM6OkJvb2xWZWN0 b3JUeXBlLCBMTFZNR2V0TmFtZShiLCAiX3RvX2Jvb2x2ZWMiKSk7Ci0rICAgICAgICByZXR1cm4g U3dpdGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUo Yi0+Z2V0TmFtZSgpKSArICJfdG9fYm9vbHZlYyIpOwotICAgICB9Ci0gfQotIAotQEAgLTE1NjMs NyArMTU2NSw3IEBAIHN0YXRpYyBpbnQgbEFycmF5VmVjdG9yV2lkdGgobGx2bTo6VHlwZSAqdCkg ewotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0 b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbnN0LCBsbHZtOjpWYWx1ZSAqdjAsIGxs dm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTU3 Myw3ICsxNTc1LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4KLSAgICAgbGx2bTo6VHlwZSAq dHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0b3JX aWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqYm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShpbnN0LCB2MCwg djEsIG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlv biAqYm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShpbnN0LCB2MCwgdjEsIG5hbWUs IGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1Bvcyhib3ApOwotICAgICAgICAgcmV0dXJuIGJv cDsKLSAgICAgfSBlbHNlIHsKLUBAIC0xNTkxLDcgKzE1OTMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFy eU9wcyBpbgotICAgICB9Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotQEAgLTE2MDMsMTQgKzE2MDUsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1l KQotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdi0+Z2V0VHlwZSgpOwotICAgICBpbnQgYXJyYXlT aXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChhcnJheVNpemUgPT0gMCkg ewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJpbnN0ID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZU5vdCh2LCBuYW1lID8gbmFtZSA6ICJub3QiLCBiYmxvY2spOwotKyAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmJpbnN0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5v dCh2LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJub3QiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgICAgIEFkZERlYnVnUG9zKGJpbnN0KTsKLSAgICAgICAgIHJldHVybiBiaW5zdDsKLSAgICAg fSBlbHNlIHsKLSAgICAgICAgIGxsdm06OlZhbHVlICpyZXQgPSBsbHZtOjpVbmRlZlZhbHVlOjpn ZXQodHlwZSk7Ci0gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5U2l6ZTsgKytpKSB7 Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmEgPSBFeHRyYWN0SW5zdCh2LCBpKTsKLS0gICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90 KGEsIG5hbWUgPyBuYW1lIDogIm5vdCIsIGJibG9jayk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFs dWUgKm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdChhLCBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICJub3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgICAgICBBZGREZWJ1 Z1BvcyhvcCk7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9wLCBpKTsKLSAg ICAgICAgIH0KLUBAIC0xNjM4LDcgKzE2NDAsNyBAQCBzdGF0aWMgbGx2bTo6VHlwZSAqbEdldE1h dGNoaW5nQm9vbFZlY3RvclR5cGUobGx2bTo6VHlwZSAqdHlwZSkgewotIH0KLSAKLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3Ro ZXJPcHMgaW5zdCwgbGx2bTo6Q21wSW5zdDo6UHJlZGljYXRlIHByZWQsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1 ZSAqdjEsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwgfHwgdjEgPT0gTlVMTCkgewot ICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAg ICAgIHJldHVybiBOVUxMOwotQEAgLTE2NDgsNyArMTY1MCw4IEBAIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0 LCBsbHZtCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0VHlwZSgpOwotICAgICBpbnQg YXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChhcnJheVNpemUg PT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmNpID0gbGx2bTo6Q21wSW5zdDo6 Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwgbmFtZSA/IG5hbWUgOiAiY21wIiwgYmJsb2NrKTsK LSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpjaSA9Ci0rICAgICAgICAgICAgbGx2bTo6Q21w SW5zdDo6Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAiY21wIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhjaSk7Ci0gICAg ICAgICByZXR1cm4gY2k7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTY1NywxNCArMTY2MCwxNCBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5zdChsbHZtOjpJbnN0cnVjdGlv bjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJh eVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICphID0gRXh0cmFjdEluc3Qo djAsIGkpOwotICAgICAgICAgICAgIGxsdm06OlZhbHVlICpiID0gRXh0cmFjdEluc3QodjEsIGkp OwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IENtcEluc3QoaW5zdCwgcHJlZCwgYSwg YiwgbmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9wID0gQ21wSW5zdChpbnN0LCBw cmVkLCBhLCBiLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJjbXAiIDogbmFtZSk7Ci0gICAg ICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9wLCBpKTsKLSAgICAgICAgIH0KLSAgICAg ICAgIHJldHVybiByZXQ7Ci0gICAgIH0KLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxs dm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZh bHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNzA0LDIxICsxNzA3LDE5IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFs dWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgIHJldHVybiByZXQ7Ci0gfQotIAotLWxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09 IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfYml0Y2FzdCIpOwot LQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdCh2 YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfYml0Y2Fz dCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJu IGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0lu dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0g ICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAg ICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTcyOCwyMyArMTcyOSwxOSBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3Qg Y2hhciAqbgotICAgICAgICAgLy8gbm8tb3AgZm9yIHZhcnlpbmcgcG9pbnRlcnM7IHRoZXkncmUg YWxyZWFkeSB2ZWN0b3JzIG9mIGludHMKLSAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAKLS0gICAg aWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9w dHIyaW50Iik7Ci0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSBMTFZNVHlwZXM6OlBvaW50ZXJJbnRU eXBlOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludElu c3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpp bnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9w dHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICBy ZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0 clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3Qg Y2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0lu dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5V TEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBM TFZNR2V0TmFtZSh2YWx1ZSwgIl9wdHIyaW50Iik7Ci0tCi0gICAgIGxsdm06OlR5cGUgKmZyb21U eXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0b3JU eXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcgotQEAgLTE3NTIs MjcgKzE3NDksMjYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnQKLSAgICAgICAgICAgICAvLyBh bHJlYWR5IHRoZSByaWdodCB0eXBlLS1kb25lCi0gICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwot ICAgICAgICAgZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA+IHRvVHlw ZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKQotLSAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3Qo dmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1 ZSwgdG9UeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBu YW1lKTsKLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpIDwgdG9UeXBlLT5nZXRTY2FsYXJTaXpl SW5CaXRzKCkpOwotLSAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBu YW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRy MmludCIgOiBuYW1lKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSwg YmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9J bnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lLCBiYmxv Y2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAot LWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnRUb1B0ckluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAg IGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJf aW50MnB0ciIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBl KCk7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0g ICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzgwLDk1ICsxNzc2LDg3IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gZG9uZQotICAgICAgICAgICAgIHJl dHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5C aXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSkKLS0gICAgICAgICAgICByZXR1 cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBU cnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAi X2ludDJwdHIiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA8IHRvVHlwZS0+ Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFs dWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0 b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5h bWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHZhbHVlLCB0 b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3 IGxsdm06OkludFRvUHRySW5zdCgKLSsgICAgICAgIHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2ludDJwdHIi IDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBp bnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1 bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAq bmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpUcnVuY0lu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwot ICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdl dE5hbWUodmFsdWUsICJfdHJ1bmMiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2Jh Ymx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0 KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KHZhbHVlLCB0eXBl LCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZt OjpUcnVuY0luc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiIDogbmFtZSwgYmJs b2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAK LSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FzdEluc3QobGx2bTo6 SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09 IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfY2FzdCIpOwotLQot ICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFz IGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBu ZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxs dm06OkNhc3RJbnN0OjpDcmVhdGUob3AsIHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoCi0rICAg ICAgICBvcCwgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVj dGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlv biAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1 ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3Vu dCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUg PT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0t Ci0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2Ug YXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5 IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsK LSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlRlBD YXN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2 bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJ bnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U0V4dEluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZh bHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3NleHQiKTsK LS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2Fz ZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50 bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBuZXcgbGx2bTo6U0V4dEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNFeHRJbnN0KAotKyAgICAgICAgdmFs dWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3NleHQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5z dCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rp b25FbWl0Q29udGV4dDo6WkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3pleHQiKTsKLS0KLSAgICAgLy8gVE9ETzog d2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBl LmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0 aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6WkV4dElu c3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpp bnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNU cml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3pleHQi IDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBp bnN0OwotIH0KLUBAIC0xOTEzLDE0ICsxOTAxLDE1IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZh Ci0gICAgICAgICBzY2FsZSA9IFNtZWFyVW5pZm9ybShzY2FsZSk7Ci0gICAgICAgICBBc3NlcnQo aW5kZXggIT0gTlVMTCk7Ci0gICAgICAgICAvLyBvZmZzZXQgPSBpbmRleCAqIHNjYWxlCi0tICAg ICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBzY2Fs ZSwgaW5kZXgsIExMVk1HZXROYW1lKCJtdWwiLCBzY2FsZSwgaW5kZXgpKTsKLSsgICAgICAgIG9m ZnNldCA9IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRl eCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8i KSArIHNjYWxlLT5nZXROYW1lKCkpICsgIl8iKSArIGluZGV4LT5nZXROYW1lKCkpOwotICAgICB9 Ci0gCi0gICAgIC8vIEZvciA2NC1iaXQgdGFyZ2V0cywgaWYgd2UndmUgYmVlbiBkb2luZyBvdXIg b2Zmc2V0IGNhbGN1bGF0aW9ucyBpbgotICAgICAvLyAzMiBiaXRzLCB3ZSBzdGlsbCBoYXZlIHRv IGNvbnZlcnQgdG8gYSA2NC1iaXQgdmFsdWUgYmVmb3JlIHdlCi0gICAgIC8vIGFjdHVhbGx5IGFk ZCB0aGUgb2Zmc2V0IHRvIHRoZSBwb2ludGVyLgotICAgICBpZiAoZy0+dGFyZ2V0LT5pczMyQml0 KCkgPT0gZmFsc2UgJiYgZy0+b3B0LmZvcmNlMzJCaXRBZGRyZXNzaW5nID09IHRydWUpCi0tICAg ICAgICBvZmZzZXQgPSBTRXh0SW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50NjRWZWN0b3JUeXBl LCBMTFZNR2V0TmFtZShvZmZzZXQsICJfdG9fNjQiKSk7Ci0rICAgICAgICBvZmZzZXQgPSBTRXh0 SW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50NjRWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShvZmZz ZXQtPmdldE5hbWUoKSkgKyAiX3RvXzY0Iik7Ci0gCi0gICAgIC8vIFNtZWFyIG91dCB0aGUgcG9p bnRlciB0byBiZSB2YXJ5aW5nOyBlaXRoZXIgdGhlIGJhc2UgcG9pbnRlciBvciB0aGUKLSAgICAg Ly8gaW5kZXggbXVzdCBiZSB2YXJ5aW5nIGZvciB0aGlzIG1ldGhvZCB0byBiZSBjYWxsZWQuCi1A QCAtMTkyOSw3ICsxOTE4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmFw cGx5VmFyeWluZ0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmEKLSAgICAgbGx2bTo6 VmFsdWUgKnZhcnlpbmdQdHIgPSBiYXNlSXNVbmlmb3JtID8gU21lYXJVbmlmb3JtKGJhc2VQdHIp IDogYmFzZVB0cjsKLSAKLSAgICAgLy8gbmV3UHRyID0gcHRyICsgb2Zmc2V0Ci0tICAgIHJldHVy biBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YXJ5aW5nUHRyLCBvZmZz ZXQsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0IikpOwotKyAgICByZXR1cm4gQmluYXJ5 T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0ciwgb2Zmc2V0LCBsbHZt OjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9vZmZzZXQiKTsKLSB9Ci0gCi0gdm9pZCBG dW5jdGlvbkVtaXRDb250ZXh0OjpNYXRjaEludGVnZXJUeXBlcyhsbHZtOjpWYWx1ZSAqKnYwLCBs bHZtOjpWYWx1ZSAqKnYxKSB7Ci1AQCAtMjAwNiwxMyArMTk5NSwxMyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6TWFrZVNsaWNlUG9pbnRlcihsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpWYWx1ZQotICAgICBsbHZtOjpTdHJ1Y3RUeXBlICpzdCA9IGxsdm06OlN0cnVjdFR5cGU6 OmdldCgqZy0+Y3R4LCBlbHRUeXBlcyk7Ci0gCi0gICAgIGxsdm06OlZhbHVlICpyZXQgPSBsbHZt OjpVbmRlZlZhbHVlOjpnZXQoc3QpOwotLSAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgcHRyLCAw LCBMTFZNR2V0TmFtZShyZXQsICJfc2xpY2VfcHRyIikpOwotLSAgICByZXQgPSBJbnNlcnRJbnN0 KHJldCwgb2Zmc2V0LCAxLCBMTFZNR2V0TmFtZShyZXQsICJfc2xpY2Vfb2Zmc2V0IikpOwotKyAg ICByZXQgPSBJbnNlcnRJbnN0KHJldCwgcHRyLCAwLCBsbHZtOjpUd2luZShyZXQtPmdldE5hbWUo KSkgKyAiX3NsaWNlX3B0ciIpOwotKyAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb2Zmc2V0LCAx LCBsbHZtOjpUd2luZShyZXQtPmdldE5hbWUoKSkgKyAiX3NsaWNlX29mZnNldCIpOwotICAgICBy ZXR1cm4gcmV0OwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleCwg Y29uc3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAoYmFzZVB0ciA9PSBOVUxMIHx8IGluZGV4ID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLUBAIC0yMDY1LDggKzIwNTQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxs dm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBlbWl0IHRoZSByZWd1bGFyIExMVk0g R0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqaW5kWzFdID0ge2luZGV4fTsK LSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IGFycmF5UmVmKCZpbmRbMF0s ICZpbmRbMV0pOwotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPQotLSAgICAgICAg ICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQ dHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJnZXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBU WVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICJnZXAiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9z KGluc3QpOwotICAgICAgICAgcmV0dXJuIGluc3Q7Ci0gICAgIH0gZWxzZQotQEAgLTIwNzQsNyAr MjA2Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRy SW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gfQotIAotIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgbGx2bTo6VmFsdWUgKmluZGV4MCwgbGx2bTo6VmFsdWUgKmluZGV4MSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHlwZSAqcHRy UmVmVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlICpwdHJSZWZUeXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoYmFzZVB0ciA9PSBOVUxMIHx8IGluZGV4MCA9 PSBOVUxMIHx8IGluZGV4MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjExNCw4 ICsyMTAzLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQ dHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAgICAgICAgIC8vIHVuaWZvcm0s IHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0cnVjdGlvbgotICAgICAgICAg bGx2bTo6VmFsdWUgKmluZGljZXNbMl0gPSB7aW5kZXgwLCBpbmRleDF9OwotICAgICAgICAgbGx2 bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJmluZGljZXNbMF0sICZpbmRpY2Vz WzJdKTsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0KLS0gICAgICAgICAgICBs bHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBh cnJheVJlZiwgbmFtZSA/IG5hbWUgOiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShi YXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAiZ2VwIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0 KTsKLSAgICAgICAgIHJldHVybiBpbnN0OwotICAgICB9IGVsc2UgewotQEAgLTIxMzgsNyArMjEy Nyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5z dChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0 ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlKSB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUs IGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSkgewotICAgICBpZiAocmVzdWx0UHRy VHlwZSAhPSBOVUxMKQotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clJlZlR5cGUg IT0gTlVMTCk7Ci0gCi1AQCAtMjE5NSw4ICsyMTg0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBp bnQKLSAgICAgICAgIC8vIElmIHRoZSBwb2ludGVyIGlzIHVuaWZvcm0sIHdlIGNhbiB1c2UgdGhl IHJlZ3VsYXIgTExWTSBHRVAuCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqb2Zmc2V0c1syXSA9IHtM TFZNSW50MzIoMCksIExMVk1JbnQzMihlbGVtZW50TnVtKX07Ci0gICAgICAgICBsbHZtOjpBcnJh eVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmb2Zmc2V0c1swXSwgJm9mZnNldHNbMl0pOwot LSAgICAgICAgcmVzdWx0UHRyID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRySW5z dDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5hbWUg OiAic3RydWN0X29mZnNldCIsIGJibG9jayk7Ci0rICAgICAgICByZXN1bHRQdHIgPSBsbHZtOjpH ZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJl ZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAic3RydWN0X29mZnNldCIgOiBuYW1lLCBiYmxvY2sp OwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNlIGRvIHRoZSBtYXRoIHRvIGZp bmQgdGhlIG9mZnNldCBhbmQgYWRkIGl0IHRvIHRoZSBnaXZlbgotICAgICAgICAgLy8gdmFyeWlu ZyBwb2ludGVycwotQEAgLTIyMzcsNyArMjIyNiw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50 Ci0gICAgICAgICByZXR1cm4gcmVzdWx0UHRyOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICgodmFsdWUgPT0g TlVMTCkgfHwgKHRvVHlwZSA9PSBOVUxMKSkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIyNDgs MjAgKzIyMzcsMTggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJv b2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZQotICAgICBsbHZtOjpWYWx1ZSAq bmV3Qm9vbCA9IHZhbHVlOwotICAgICBpZiAoZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdl dFR5cGVTaXplSW5CaXRzKGZyb21UeXBlKSA+Ci0gICAgICAgICBnLT50YXJnZXQtPmdldERhdGFM YXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewotLSAgICAgICAgaWYgKG5hbWUg PT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfc3dpdGNo Qm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1l KTsKLSsgICAgICAgIG5ld0Jvb2wgPQotKyAgICAgICAgICAgIFRydW5jSW5zdCh2YWx1ZSwgdG9U eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFt ZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0gZWxzZSBpZiAoZy0+dGFyZ2V0 LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKGZyb21UeXBlKSA8Ci0gICAgICAg ICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKHRv VHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0gICAgICAgIG5ld0Jvb2wgPSBT RXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgIG5ld0Jvb2wgPQotKyAgICAg ICAgICAgIFNFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zd2l0Y2hCb29sIikgOiBuYW1lKTsK LSAgICAgfQotIAotICAgICByZXR1cm4gbmV3Qm9vbDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUg KnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHB0ciA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci1AQCAtMjI3MCwxMyArMjI1NywxMyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwot ICAgICBsbHZtOjpQb2ludGVyVHlwZSAqcHQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVy VHlwZT4ocHRyLT5nZXRUeXBlKCkpOwotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHQgIT0g TlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdl dE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzExXzAKLS0gICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3Qo cHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxs dm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0 UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X2xvYWQiKSA6IG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAgbGx2bTo6TG9hZEluc3QgKmlu c3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpM b2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLmlz VHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQi KSA6IG5hbWUsIGJibG9jayk7Ci0gI2VuZGlmCi0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VBbGln bmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVt ZW50VHlwZSgpKSkgewotQEAgLTIzMDcsOCArMjI5NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBl LCBjCi0gc3RhdGljIGxsdm06OlZhbHVlICpsRmluYWxTbGljZU9mZnNldChGdW5jdGlvbkVtaXRD b250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICoqcHRyVHlw ZSkgewotICAgICBBc3NlcnQoQ2FzdFR5cGU8UG9pbnRlclR5cGU+KCpwdHJUeXBlKSAhPSBOVUxM KTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlUHRyID0gY3R4LT5FeHRyYWN0SW5zdChwdHIs IDAsIExMVk1HZXROYW1lKHB0ciwgIl9wdHIiKSk7Ci0tICAgIGxsdm06OlZhbHVlICpzbGljZU9m ZnNldCA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAxLCBMTFZNR2V0TmFtZShwdHIsICJfb2Zmc2V0 IikpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VQdHIgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwg MCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9wdHIiKTsKLSsgICAgbGx2bTo6VmFs dWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDEsIGxsdm06OlR3aW5lKHB0 ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gCi0gICAgIC8vIHNsaWNlUHRyIHNob3VsZCBi ZSBhIHBvaW50ZXIgdG8gYW4gc29hLXdpZHRoIHdpZGUgYXJyYXkgb2YgdGhlCi0gICAgIC8vIGZp bmFsIGF0b21pYy9lbnVtL3BvaW50ZXIgdHlwZQotQEAgLTIzMjcsMTQgKzIzMTQsMTQgQEAgc3Rh dGljIGxsdm06OlZhbHVlICpsRmluYWxTbGljZU9mZnNldChGdW5jdGlvbkVtaXRDb250ZXh0ICpj dHgsIGxsdm06OlZhbHVlICpwdHIKLSAgICAgICAgIHNsaWNlUHRyID0gY3R4LT5CaXRDYXN0SW5z dChzbGljZVB0ciwgKCpwdHJUeXBlKS0+TExWTVR5cGUoZy0+Y3R4KSk7Ci0gCi0gICAgIC8vIEFu ZCBmaW5hbGx5IGluZGV4IGJhc2VkIG9uIHRoZSBzbGljZSBvZmZzZXQKLS0gICAgcmV0dXJuIGN0 eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIsIHNsaWNlT2Zmc2V0LCAqcHRyVHlwZSwgTExW TUdldE5hbWUoc2xpY2VQdHIsICJfZmluYWxfZ2VwIikpOwotKyAgICByZXR1cm4gY3R4LT5HZXRF bGVtZW50UHRySW5zdChzbGljZVB0ciwgc2xpY2VPZmZzZXQsICpwdHJUeXBlLCBsbHZtOjpUd2lu ZShzbGljZVB0ci0+Z2V0TmFtZSgpKSArICJfZmluYWxfZ2VwIik7Ci0gfQotIAotIC8qKiBVdGls aXR5IHJvdXRpbmUgdGhhdCBsb2FkcyBmcm9tIGEgdW5pZm9ybSBwb2ludGVyIHRvIHNvYTw+IGRh dGEsCi0gICAgIHJldHVybmluZyBhIHJlZ3VsYXIgdW5pZm9ybSAobm9uLVNPQSByZXN1bHQpLgot ICAqLwotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0Ojpsb2FkVW5pZm9ybUZyb21T T0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBl ICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgY29uc3QgVHlwZSAqdW5pZlR5cGUgPSBwdHJUeXBlLT5HZXRCYXNlVHlwZSgpLT5HZXRBc1Vu aWZvcm1UeXBlKCk7Ci0gCi0gICAgIGNvbnN0IENvbGxlY3Rpb25UeXBlICpjdCA9IENhc3RUeXBl PENvbGxlY3Rpb25UeXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgpKTsKLUBAIC0yMzYzLDcgKzIz NTAsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9t U09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbAotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgb25lX2VsZW0pIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUsIGJvb2wgb25lX2VsZW0pIHsKLSAgICAgaWYgKHB0ciA9PSBOVUxMKSB7Ci0gICAg ICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAg cmV0dXJuIE5VTEw7Ci1AQCAtMjM3MSw5ICsyMzU4LDYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNr LAotIAotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyUmVmVHlwZSAhPSBOVUxMICYmIG1h c2sgIT0gTlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0g TExWTUdldE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAgICAgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGU7Ci0gICAgIGNvbnN0IFR5cGUgKmVsVHlwZTsKLSAgICAgaWYgKENhc3RUeXBlPFJlZmVy ZW5jZVR5cGU+KHB0clJlZlR5cGUpICE9IE5VTEwpIHsKLUBAIC0yMzkzLDcgKzIzNzcsOCBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIGlmIChwdHJUeXBlLT5Jc1VuaWZvcm1UeXBl KCkpIHsKLSAgICAgICAgIGlmIChwdHJUeXBlLT5Jc1NsaWNlKCkpIHsKLS0gICAgICAgICAgICBy ZXR1cm4gbG9hZFVuaWZvcm1Gcm9tU09BKHB0ciwgbWFzaywgcHRyVHlwZSwgbmFtZSk7Ci0rICAg ICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNPQShwdHIsIG1hc2ssIHB0clR5cGUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUpOwot ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBGSVhNRTogc2FtZSBpc3N1ZSBhcyBh Ym92ZSBsb2FkIGluc3QgcmVnYXJkaW5nIGFsaWdubWVudC4uLgotICAgICAgICAgICAgIC8vCi1A QCAtMjQwNSwxMSArMjM5MCwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAg ICAgY29uc3QgQXRvbWljVHlwZSAqYXRvbWljVHlwZSA9IENhc3RUeXBlPEF0b21pY1R5cGU+KHB0 clR5cGUtPkdldEJhc2VUeXBlKCkpOwotIAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BD X0xMVk1fMTBfMAotLSAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06 OkxvYWRJbnN0KHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwot KyAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAgICAgICAgICAgICAgbmV3 IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdp bmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotICNl bHNlIC8vIExMVk0gMTEuMCsKLSAgICAgICAgICAgICBsbHZtOjpQb2ludGVyVHlwZSAqcHRyX3R5 cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpOwot ICAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLS0gICAgICAgICAgICAgICAgbmV3 IGxsdm06OkxvYWRJbnN0KHB0cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLCBu YW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0rICAgICAgICAgICAgICAg IG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlwZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0 ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGls ZSAqLywgYmJsb2NrKTsKLSAjZW5kaWYKLSAKLSAgICAgICAgICAgICBpZiAoYXRvbWljVHlwZSAh PSBOVUxMICYmIGF0b21pY1R5cGUtPklzVmFyeWluZ1R5cGUoKSkgewotQEAgLTI0MzMsNyArMjQy Miw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8v IE90aGVyd2lzZSB3ZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcHRyIGFuZCBpdCdzIHRpbWUgZm9y IGEKLSAgICAgICAgIC8vIGdhdGhlci4KLS0gICAgICAgIGxsdm06OlZhbHVlICpnYXRoZXJfcmVz dWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2soKSwgbmFtZSk7Ci0rICAgICAg ICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihwdHIsIHB0clR5cGUsIEdldEZ1 bGxNYXNrKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X2xvYWQiKSA6IG5hbWUpOwotICAgICAgICAgaWYgKCFvbmVfZWxlbSkKLSAgICAgICAgICAgICBy ZXR1cm4gZ2F0aGVyX3Jlc3VsdDsKLSAKLUBAIC0yNDUzLDE5ICsyNDQzLDE5IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZt OjpWYWx1ZSAqbWFzaywKLSAgICAgICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBv bmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgICAgICAvLyBMTFZNJ3MgdHlw ZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0g bW1bMF0tPmZ1bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUgKmludF9tYXNrID0gQ2FsbElu c3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX21vdm1zayIpKTsKLSsgICAg ICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2 bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfbW92bXNrIik7Ci0gICAgICAgICBzdGQ6OnZl Y3RvcjxTeW1ib2wgKj4gbHo7Ci0gICAgICAgICBtLT5zeW1ib2xUYWJsZS0+TG9va3VwRnVuY3Rp b24oIl9fY291bnRfdHJhaWxpbmdfemVyb3NfaTY0IiwgJmx6KTsKLSAgICAgICAgIGxsdm06OkZ1 bmN0aW9uICpmbHogPSBselswXS0+ZnVuY3Rpb247Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqZWxl bV9pZHggPSBDYWxsSW5zdChmbHosIE5VTEwsIGludF9tYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAi X2NseiIpKTsKLS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtID0gbGx2bTo6RXh0cmFjdEVsZW1l bnRJbnN0OjpDcmVhdGUoZ2F0aGVyX3Jlc3VsdCwgZWxlbV9pZHgsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1l KGdhdGhlcl9yZXN1bHQsICJfdW1hc2tlZF9lbGVtIiksIGJibG9jayk7Ci0rICAgICAgICBsbHZt OjpWYWx1ZSAqZWxlbV9pZHggPSBDYWxsSW5zdChmbHosIE5VTEwsIGludF9tYXNrLCBsbHZtOjpU d2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9jbHoiKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpl bGVtID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgZ2F0 aGVyX3Jlc3VsdCwgZWxlbV9pZHgsIGxsdm06OlR3aW5lKGdhdGhlcl9yZXN1bHQtPmdldE5hbWUo KSkgKyAiX3VtYXNrZWRfZWxlbSIsIGJibG9jayk7Ci0gICAgICAgICByZXR1cm4gZWxlbTsKLSAg ICAgfQotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Z2F0aGVyKGxs dm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAq bWFzaywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIC8vIFdlIHNob3VsZCBoYXZlIGEgdmFyeWlu ZyBwb2ludGVyIGlmIHdlIGdldCBoZXJlLi4uCi0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBw dHJUeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpOwotIAotQEAgLTI2MDIsNyArMjU5Miw4IEBAIHZvaWQg RnVuY3Rpb25FbWl0Q29udGV4dDo6YWRkR1NNZXRhZGF0YShsbHZtOjpWYWx1ZSAqdiwgU291cmNl UG9zIHBvcykgewotICAgICBpbnN0LT5zZXRNZXRhZGF0YSgibGFzdF9jb2x1bW4iLCBtZCk7Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06 OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgYWxpZ24sIGJvb2wgYXRFbnRy eUJsb2NrKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3Qo bGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdEVu dHJ5QmxvY2spIHsKLSAgICAgaWYgKGxsdm1UeXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLUBAIC0yNjE1LDEyICsyNjA2LDEyIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAg ICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmV0SW5zdCA9IGFsbG9jYUJsb2NrLT5nZXRUZXJtaW5h dG9yKCk7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcmV0SW5zdCk7Ci0gICAgICAg ICB1bnNpZ25lZCBBUyA9IGxsdm1GdW5jdGlvbi0+Z2V0UGFyZW50KCktPmdldERhdGFMYXlvdXQo KS5nZXRBbGxvY2FBZGRyU3BhY2UoKTsKLS0gICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2Nh SW5zdChsbHZtVHlwZSwgQVMsIG5hbWUgPyBuYW1lIDogIiIsIHJldEluc3QpOwotKyAgICAgICAg aW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSwgcmV0SW5zdCk7 Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBVbmxlc3MgdGhlIGNhbGxlciBvdmVycm9kZSB0 aGUgZGVmYXVsdCBhbmQgd2FudHMgaXQgaW4gdGhlCi0gICAgICAgICAvLyBjdXJyZW50IGJhc2lj IGJsb2NrCi0gICAgICAgICB1bnNpZ25lZCBBUyA9IGxsdm1GdW5jdGlvbi0+Z2V0UGFyZW50KCkt PmdldERhdGFMYXlvdXQoKS5nZXRBbGxvY2FBZGRyU3BhY2UoKTsKLS0gICAgICAgIGluc3QgPSBu ZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUgPyBuYW1lIDogIiIsIGJibG9j ayk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBu YW1lLCBiYmxvY2spOwotICAgICB9Ci0gCi0gICAgIC8vIElmIG5vIGFsaWdubWVudCB3YXMgc3Bl Y2lmaWVkIGJ1dCB3ZSBoYXZlIGFuIGFycmF5IG9mIGEgdW5pZm9ybQotQEAgLTI2MzksNyArMjYz MCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06 OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAgIHJldHVybiBpbnN0OwotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChjb25zdCBUeXBl ICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgYWxpZ24sIGJvb2wgYXRFbnRyeUJsb2Nr KSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QoY29uc3Qg VHlwZSAqcHRyVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGludCBhbGlnbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9j aykgewotICAgICBpZiAocHRyVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAt MzA3NSw2NiArMzA2Nyw1OSBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QnJhbmNoSW5zdChsbHZtOjpCYXNpY0Jsb2NrICp0cnVlQmxvY2ssCi0gICAgIHJldHVybiBi OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RXh0cmFjdEluc3Qo bGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBl bHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAg ICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAi X2V4dHJhY3RfJWQiLCBlbHQpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7 Ci0tICAgIH0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmVpID0gTlVMTDsKLSAgICAgaWYgKGxs dm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkpKQotLSAgICAgICAgZWkgPSBs bHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSh2LCBMTFZNSW50MzIoZWx0KSwgbmFtZSwg YmJsb2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUo Ci0rICAgICAgICAgICAgdiwgTExWTUludDMyKGVsdCksCi0rICAgICAgICAgICAgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2V4dHJhY3Rf IikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIGVsc2UKLS0gICAg ICAgIGVpID0gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdDo6Q3JlYXRlKHYsIGVsdCwgbmFtZSwgYmJs b2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdDo6Q3JlYXRlKAotKyAg ICAgICAgICAgIHYsIGVsdCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5l KHYtPmdldE5hbWUoKSkgKyAiX2V4dHJhY3RfIikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUs Ci0rICAgICAgICAgICAgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoZWkpOwotICAgICByZXR1 cm4gZWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJ bnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okluc2VydElu c3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwgfHwgZWx0VmFsID09IE5VTEwp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7 Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihi dWYpLCAiX2luc2VydF8lZCIsIGVsdCk7Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwg YnVmKTsKLS0gICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaWkgPSBOVUxMOwotICAg ICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHYtPmdldFR5cGUoKSkpCi0tICAgICAg ICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUodiwgZWx0VmFsLCBMTFZNSW50 MzIoZWx0KSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0RWxlbWVu dEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHRWYWwsIExMVk1JbnQzMihlbHQpLAot KyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5n ZXROYW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUsIGJibG9j ayk7Ci0gICAgIGVsc2UKLS0gICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0OjpDcmVh dGUodiwgZWx0VmFsLCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBpaSA9IGxsdm06Oklu c2VydFZhbHVlSW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIGVsdFZhbCwgZWx0LAotKyAg ICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXRO YW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUsIGJibG9jayk7 Ci0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0dXJuIGlpOwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBs bHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0r bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNodWZmbGVJbnN0KGxsdm06OlZhbHVl ICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUp IHsKLSAgICAgaWYgKHYxID09IE5VTEwgfHwgdjIgPT0gTlVMTCB8fCBtYXNrID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0t ICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYp LCAiX3NodWZmbGUiKTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2MSwgYnVmKTsKLS0g ICAgfQotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaWkgPSBuZXcgbGx2bTo6U2h1ZmZsZVZl Y3Rvckluc3QodjEsIHYyLCBtYXNrLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaWkgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QoCi0rICAgICAgICB2MSwgdjIs IG1hc2ssIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYxLT5nZXROYW1l KCkpICsgIl9zaHVmZmxlIikgOiBuYW1lLCBiYmxvY2spOwotIAotICAgICBBZGREZWJ1Z1Bvcyhp aSk7Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBl LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMIHx8IHZlY1R5cGUgPT0g TlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAw KTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMxNDgsMTIgKzMxMzMsNiBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYs IGxsdm06OlR5cGUgKnZlYwotICAgICBBc3NlcnQodHkgJiYgdHktPmdldFZlY3RvckVsZW1lbnRU eXBlKCkgPT0gdi0+Z2V0VHlwZSgpKTsKLSAjZW5kaWYKLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVM TCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXpl b2YoYnVmKSwgIl9icm9hZGNhc3QiKTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBi dWYpOwotLSAgICB9Ci0tCi0gICAgIC8vIEdlbmVyYXRlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2U6 Ci0gICAgIC8vICAgJW5hbWVfaW5pdC5pID0gaW5zZXJ0ZWxlbWVudCA8NCB4IGkzMj4gdW5kZWYs IGkzMiAldmFsLCBpMzIgMAotICAgICAvLyAgICVuYW1lLmkgPSBzaHVmZmxldmVjdG9yIDw0IHgg aTMyPiAlbmFtZV9pbml0LmksIDw0IHggaTMyPiB1bmRlZiwKLUBAIC0zMTYzLDcgKzMxNDIsNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBsbHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2 bTo6VW5kZWZWYWx1ZTo6Z2V0KHZlY1R5cGUpOwotIAotICAgICAvLyBJbnNlcnRFbGVtZW50Ci0t ICAgIGxsdm06OlR3aW5lIHR3ID0gbGx2bTo6VHdpbmUobmFtZSkgKyBsbHZtOjpUd2luZSgiX2lu aXQiKTsKLSsgICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChs bHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUgKyBsbHZtOjpU d2luZSgiX2luaXQiKTsKLSAgICAgbGx2bTo6VmFsdWUgKmluc2VydCA9IEluc2VydEluc3QodW5k ZWYxLCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSAKLSAgICAgLy8gU2h1ZmZsZVZlY3Rvcgot QEAgLTMxNzksMjggKzMxNTgsMjcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAgICAg IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChsbHZtOjpFbGVtZW50Q291bnQ6OmdldChz dGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2UpLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50Ojpn ZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotICNlbmRpZgot LSAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gU2h1ZmZsZUluc3QoaW5zZXJ0LCB1bmRlZjIsIHplcm9W ZWMsIG5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gU2h1ZmZsZUluc3QoaW5zZXJ0LCB1 bmRlZjIsIHplcm9WZWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9h ZGNhc3QiKSA6IG5hbWUpOwotIAotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS1sbHZtOjpQSElO b2RlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBj b3VudCwgY29uc3QgY2hhciAqbmFtZSkgewotLSAgICBsbHZtOjpQSElOb2RlICpwbiA9IGxsdm06 OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZSA/IG5hbWUgOiAicGhpIiwgYmJsb2Nr KTsKLStsbHZtOjpQSElOb2RlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQaGlOb2RlKGxsdm06OlR5 cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSsgICAgbGx2 bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVhdGUodHlwZSwgY291bnQsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gInBoaSIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1Bvcyhwbik7Ci0gICAgIHJldHVybiBwbjsKLSB9Ci0gCi0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZh bHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUpIHsKLSAgICAgaWYgKHRlc3QgPT0gTlVMTCB8fCB2YWwwID09IE5VTEwgfHwgdmFs MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3Vu dCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUg PT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh0ZXN0LCAiX3NlbGVjdCIpOwot LQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OlNlbGVjdEluc3Q6OkNyZWF0 ZSh0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IGxsdm06OlNlbGVjdEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgIHRlc3QsIHZhbDAs IHZhbDEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHRlc3QtPmdldE5h bWUoKSkgKyAiX3NlbGVjdCIpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5z dCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLUBAIC0zMjI2LDcgKzMyMDQsNyBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGxDYWxsZWVBcmdDb3VudChsbHZtOjpWYWx1ZSAqY2FsbGVlLCBjb25zdCBG dW5jdGlvblR5cGUgKmZ1bgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5 cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9y PGxsdm06OlZhbHVlICo+ICZhcmdzLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAoZnVuYyA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMzI1OCw5ICszMjM2LDkg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVl ICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLSAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlICpmdW5jX3B0cl90eXBlID0g bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGZ1bmMtPmdldFR5cGUoKSk7Ci0gICAg ICAgICBsbHZtOjpGdW5jdGlvblR5cGUgKmZ1bmNfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OkZ1bmN0aW9uVHlwZT4oZnVuY19wdHJfdHlwZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCkpOwot LSAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0 ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1ZhbHMsIG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0r ICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRl KGZ1bmNfdHlwZSwgZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2NrKTsKLSAjZWxzZQotLSAgICAg ICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5j LCBhcmdWYWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6Q2Fs bEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBhcmdWYWxzLCBu YW1lLCBiYmxvY2spOwotICNlbmRpZgotIAotICAgICAgICAgLy8gV2UgY291bGQgYmUgZGVhbGlu ZyB3aXRoIGEgZnVuY3Rpb24gcG9pbnRlciBpbiB3aGljaCBjYXNlIHRoaXMgd2lsbCBub3QgYmUg YSAnbGx2bTo6RnVuY3Rpb24nLgotQEAgLTM0NjQsMTQgKzM0NDIsMTQgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBG dW5jdGlvblR5cGUKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNh bGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBs bHZtOjpWYWx1ZSAqYXJnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIHN0ZDo6dmVjdG9y PGxsdm06OlZhbHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZyk7Ci0gICAgIHJl dHVybiBDYWxsSW5zdChmdW5jLCBmdW5jVHlwZSwgYXJncywgbmFtZSk7Ci0gfQotIAotIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywg Y29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZzAsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmcxLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwotICAgICBhcmdzLnB1c2hfYmFjayhh cmcwKTsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5o IGIvc3JjL2N0eC5oCi1pbmRleCA2ZTVhZDc0YmEuLjQ4YjNiYjgyNiAxMDA2NDQKLS0tLSBhL3Ny Yy9jdHguaAotKysrIGIvc3JjL2N0eC5oCi1AQCAtMzAyLDcgKzMwMiw3IEBAIGNsYXNzIEZ1bmN0 aW9uRW1pdENvbnRleHQgewotICAgICBsbHZtOjpWYWx1ZSAqR2V0U3RyaW5nUHRyKGNvbnN0IHN0 ZDo6c3RyaW5nICZzdHIpOwotIAotICAgICAvKiogQ3JlYXRlIGEgbmV3IGJhc2ljIGJsb2NrIHdp dGggZ2l2ZW4gbmFtZSAqLwotLSAgICBsbHZtOjpCYXNpY0Jsb2NrICpDcmVhdGVCYXNpY0Jsb2Nr KGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyID0gTlVMTCk7 Ci0rICAgIGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyID0gTlVMTCk7Ci0gCi0gICAg IC8qKiBHaXZlbiBhIHZlY3RvciB3aXRoIGVsZW1lbnQgdHlwZSBpMSwgcmV0dXJuIGEgdmVjdG9y IG9mIHR5cGUKLSAgICAgICAgIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUuICBUaGlzIG1ldGhv ZCBoYW5kbGVzIHRoZSBjb252ZXJzaW9uIGZvcgotQEAgLTM4MCwzMyArMzgwLDMzIEBAIGNsYXNz IEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgdGhpcyBhbHNvIGhhbmRsZXMgYXBwbHlp bmcgdGhlIGdpdmVuIG9wZXJhdGlvbiB0byB0aGUgdmVjdG9yCi0gICAgICAgICBlbGVtZW50cy4g Ki8KLSAgICAgbGx2bTo6VmFsdWUgKkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpC aW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSAKLSAgICAgLyoqIEVtaXQgdGhlICJub3QiIG9wZXJhdG9yLiAgTGlrZSBCaW5hcnlPcGVy YXRvcigpLCB0aGlzIGFsc28gaGFuZGxlcwotICAgICAgICAgYSBWZWN0b3JUeXBlLWJhc2VkIG9w ZXJhbmQuICovCi0tICAgIGxsdm06OlZhbHVlICpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqTm90T3BlcmF0b3Io bGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAv KiogRW1pdCBhIGNvbXBhcmlzb24gaW5zdHJ1Y3Rpb24uICBJZiB0aGUgb3BlcmFuZHMgYXJlIFZl Y3RvclR5cGVzLAotICAgICAgICAgdGhlbiBhIHZhbHVlIGZvciB0aGUgY29ycmVzcG9uZGluZyBi b29sZWFuIFZlY3RvclR5cGUgaXMKLSAgICAgICAgIHJldHVybmVkLiAqLwotICAgICBsbHZtOjpW YWx1ZSAqQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bTo6Q21w SW5zdDo6UHJlZGljYXRlIHByZWQsIGxsdm06OlZhbHVlICp2MCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MSwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBHaXZlbiBhIHNjYWxhciB2YWx1ZSwgcmV0dXJuIGEg dmVjdG9yIG9mIHRoZSBzYW1lIHR5cGUgKG9yIGFuCi0gICAgICAgICBhcnJheSwgZm9yIHBvaW50 ZXIgdHlwZXMpLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU21lYXJVbmlmb3JtKGxsdm06OlZhbHVl ICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqU21l YXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAi Iik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6 VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2 bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkJpdENhc3RJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6VmFs dWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqSW50VG9QdHJJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICpUcnVuY0luc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKkNhc3RJbnN0KGxsdm06Okluc3RydWN0aW9uOjpDYXN0T3BzIG9w LCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Oklu c3RydWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU0V4 dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpaRXh0SW5zdChsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqU0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBHaXZlbiB0d28gaW50 ZWdlci10eXBlZCB2YWx1ZXMgKGJ1dCBwb3NzaWJseSBvbmUgdmVjdG9yIGFuZCB0aGUKLSAgICAg ICAgIG90aGVyIG5vdCwgYW5kIG9yIG9mIHBvc3NpYmx5LWRpZmZlcmVudCBiaXQtd2lkdGhzKSwg dXBkYXRlIHRoZWlyCi1AQCAtNDI2LDkgKzQyNiw5IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRl eHQgewotICAgICAgICAgcG9pbnRlcnMuICBUaGUgdW5kZXJseWluZyB0eXBlIG9mIHRoZSBiYXNl IHBvaW50ZXIgbXVzdCBiZSBwcm92aWRlZAotICAgICAgICAgdmlhIHRoZSBwdHJUeXBlIHBhcmFt ZXRlciAqLwotICAgICBsbHZtOjpWYWx1ZSAqR2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleCwgY29uc3QgVHlwZSAqcHRyVHlwZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotICAgICBsbHZtOjpWYWx1ZSAqR2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFs dWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAsIGxsdm06OlZhbHVlICppbmRleDEsIGNv bnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgbWV0 aG9kIHJldHVybnMgYSBuZXcgcG9pbnRlciB0aGF0IHJlcHJlc2VudHMgb2Zmc2V0dGluZyB0aGUK LSAgICAgICAgIGdpdmVuIGJhc2UgcG9pbnRlciB0byBwb2ludCBhdCB0aGUgZ2l2ZW4gZWxlbWVu dCBudW1iZXIgb2YgdGhlCi1AQCAtNDM2LDI2ICs0MzYsMjYgQEAgY2xhc3MgRnVuY3Rpb25FbWl0 Q29udGV4dCB7Ci0gICAgICAgICBwb2ludGVyIG11c3QgYmUgYSBwb2ludGVyIHRvIGEgc3RydWN0 dXJlIHR5cGUuICBUaGUgcHRyVHlwZSBnaXZlcwotICAgICAgICAgdGhlIHR5cGUgb2YgdGhlIHBv aW50ZXIsIHRob3VnaCBpdCBtYXkgYmUgTlVMTCBpZiB0aGUgYmFzZSBwb2ludGVyCi0gICAgICAg ICBpcyB1bmlmb3JtLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWRkRWxlbWVudE9mZnNldChsbHZt OjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNv bnN0IGNoYXIgKm5hbWUgPSBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5cGUgPSBOVUxMKTsKLSsgICAgbGx2bTo6 VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludCBlbGVtZW50 TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBjb25zdCBQb2ludGVyVHlwZSAqKnJl c3VsdFB0clR5cGUgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEJvb2wgaXMgc3RvcmVkIGFzIGk4IGFu ZCA8V0lEVEggeCBpOD4gYnV0IHJlcHJlc2VudGVkIGluIElSIGFzIGkxIGFuZAotICAgICAgKiA8 V0lEVEggeCBNQVNLPi4gVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlvbiB0byBtYXRjaCBib29sIHNp emUgYXQgc3RvcmFnZQotICAgICAgKiBpbnRlcmZhY2UuICovCi0tICAgIGxsdm06OlZhbHVlICpT d2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29u c3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotICAgICAvKiogTG9hZCBmcm9tIHRoZSBtZW1vcnkgbG9jYXRpb24ocykg Z2l2ZW4gYnkgbHZhbHVlLCB1c2luZyB0aGUgZ2l2ZW4KLSAgICAgICAgIG1hc2suICBUaGUgbHZh bHVlIG1heSBiZSB2YXJ5aW5nLCBpbiB3aGljaCBjYXNlIHRoaXMgY29ycmVzcG9uZHMgdG8KLSAg ICAgICAgIGEgZ2F0aGVyIGZyb20gdGhlIG11bHRpcGxlIG1lbW9yeSBsb2NhdGlvbnMgZ2l2ZW4g YnkgdGhlIGFycmF5IG9mCi0gICAgICAgICBwb2ludGVyIHZhbHVlcyBnaXZlbiBieSB0aGUgbHZh bHVlLiAgSWYgdGhlIGx2YWx1ZSBpcyBub3QgdmFyeWluZywKLSAgICAgICAgIHRoZW4gYm90aCB0 aGUgbWFzayBwb2ludGVyIGFuZCB0aGUgdHlwZSBwb2ludGVyIG1heSBiZSBOVUxMLiAqLwotLSAg ICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1h c2ssIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLAotKyAgICBs bHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ss IGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBib29sIG9uZV9lbGVtID0gZmFsc2UpOwotIAotICAgICAv KiBMb2FkIGZyb20gbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuLgotICAgICAgKiAndHlwZScgbmVl ZHMgdG8gYmUgcHJvdmlkZWQgd2hlbiBzdG9yYWdlIHR5cGUgaXMgZGlmZmVyZW50IGZyb20gSVIg dHlwZS4gRm9yIGV4YW1wbGUsCi0gICAgICAqICd1bmZvcm0gYm9vbCcgaXMgJ2kxJyBpbiBJUiBi dXQgc3RvcmVkIGFzICdpOCcuCi0gICAgICAqIE90aGVyd2lzZSBsZWF2ZSB0aGlzIGFzIE5VTEwu ICovCi0tICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBU eXBlICp0eXBlID0gTlVMTCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpW YWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSA9IE5VTEws IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdHMgYW4gYWxs b2NhIGluc3RydWN0aW9uIHRvIGFsbG9jYXRlIHN0YWNrIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgot ICAgICAgICAgdHlwZS4gIElmIGEgbm9uLXplcm8gYWxpZ25tZW50IGlzIHNwZWNpZmllZCwgdGhl IG9iamVjdCBpcyBhbHNvCi1AQCAtNDYzLDcgKzQ2Myw4IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENv bnRleHQgewotICAgICAgICAgaW5zdHJ1Y3Rpb24gaXMgYWRkZWQgYXQgdGhlIHN0YXJ0IG9mIHRo ZSBmdW5jdGlvbiBpbiB0aGUgZW50cnkKLSAgICAgICAgIGJhc2ljIGJsb2NrOyBpZiBpdCBzaG91 bGQgYmUgYWRkZWQgdG8gdGhlIGN1cnJlbnQgYmFzaWMgYmxvY2ssIHRoZW4KLSAgICAgICAgIHRo ZSBhdEVudHJ5QmxvY2sgcGFyYW1ldGVyIHNob3VsZCBiZSBmYWxzZS4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0RW50cnlCbG9jayA9IHRydWUpOwotKyAgICBs bHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIiwgaW50IGFsaWduID0gMCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSAKLSAgICAgLyoqIEVtaXRzIGFuIGFs bG9jYSBpbnN0cnVjdGlvbiB0byBhbGxvY2F0ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4K LSAgICAgICAgIHR5cGUuICBJZiBhIG5vbi16ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZpZWQsIHRo ZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ3NCw3ICs0NzUsNyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRD b250ZXh0IHsKLSAgICAgICAgIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgcHJlZmVycmVkIHdoZW4g cG9zc2libGUuIEl0IGlzIG5lZWRlZCB3aGVuCi0gICAgICAgICBzdG9yYWdlIHR5cGUgaXMgZGlm ZmVyZW50IGZyb20gSVIgdHlwZS4gRm9yIGV4YW1wbGUsCi0gICAgICAgICAndW5mb3JtIGJvb2wn IGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAq QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwg aW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSsgICAgbGx2bTo6VmFs dWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIiwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSAKLSAg ICAgLyoqIFN0YW5kYXJkIHN0b3JlIGluc3RydWN0aW9uOyBmb3IgdGhpcyB2YXJpYW50LCB0aGUg bHZhbHVlIG11c3QgYmUgYQotICAgICAgICAgc2luZ2xlIHBvaW50ZXIsIG5vdCBhIHZhcnlpbmcg bHZhbHVlLgotQEAgLTUwMiwzOSArNTAzLDQxIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQg ewotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpFeHRy YWN0RWxlbWVudEluc3QgaWYgdGhlCi0gICAgICAgICBnaXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZl Y3RvclR5cGUsIGFuZCB0byBhbiBsbHZtOjpFeHRyYWN0VmFsdWVJbnN0Ci0gICAgICAgICBvdGhl cndpc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwg aW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqRXh0 cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l ID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRob2QgbWFwcyB0byBhbiBs bHZtOjpJbnNlcnRFbGVtZW50SW5zdCBpZiB0aGUKLSAgICAgICAgIGdpdmVuIHZhbHVlIGlzIGEg bGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFuIGxsdm06Okluc2VydFZhbHVlSW5zdAotICAgICAg ICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqSW5zZXJ0SW5zdChsbHZtOjpWYWx1 ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSA9IE5V TEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqSW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6 VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06OlNodWZm bGVWZWN0b3JJbnN0LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFs dWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAq djEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRob2QgdG8gZ2Vu ZXJhdGUgYnJvYWRjYXN0IHBhdHRlcm4uIEl0IHRha2VzIGEgdmFsdWUKLSAgICAgICAgIGFuZCBh IHZlY3RvciB0eXBlLiBUeXBlIG9mIHRoZSB2YWx1ZSBtdXN0IG1hdGNoIGVsZW1lbnQgdHlwZSBv ZiB0aGUKLSAgICAgICAgIHZlY3Rvci4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkJyb2FkY2FzdFZh bHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBlLCBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAq diwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0tICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50 LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpTZWxl Y3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUg KnZhbDEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6UEhJTm9kZSAqUGhp Tm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l ID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAq dGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAK LSAgICAgLyoqIEVtaXRzIElSIHRvIGRvIGEgZnVuY3Rpb24gY2FsbCB3aXRoIHRoZSBnaXZlbiBh cmd1bWVudHMuICBJZiB0aGUKLSAgICAgICAgIGZ1bmN0aW9uIHR5cGUgaXMgYSB2YXJ5aW5nIGZ1 bmN0aW9uIHBvaW50ZXIgdHlwZSwgaXRzIGZ1bGwgdHlwZQotICAgICAgICAgbXVzdCBiZSBwcm92 aWRlZCBpbiBmdW5jVHlwZS4gIGZ1bmNUeXBlIGNhbiBiZSBOVUxMIGlmIGZ1bmMgaXMgYQotICAg ICAgICAgdW5pZm9ybSBmdW5jdGlvbiBwb2ludGVyLiAqLwotICAgICBsbHZtOjpWYWx1ZSAqQ2Fs bEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGNv bnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGlz IGEgY29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2FsbCBpbnN0cnVjdGlvbiB0byBh Ci0gICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIGp1c3QgYSBzaW5nbGUgYXJndW1lbnQuICov Ci0tICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVu Y3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywgY29uc3QgY2hhciAqbmFtZSA9 IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNv bnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAg LyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBpc3N1ZXMgYSBjYWxsIGluc3Ry dWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50cy4g Ki8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBG dW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFy ZzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSAKLSAgICAgLyoqIExhdW5jaCBhbiBhc3luY2hyb25vdXMgdGFzayB0byBydW4gdGhlIGdp dmVuIGZ1bmN0aW9uLCBwYXNzaW5nIGl0Ci0gICAgICAgICBoZSBnaXZlbiBhcmd1bWVudCB2YWx1 ZXMuICovCi1AQCAtNzU2LDkgKzc1OSwxMCBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsK LSAgICAgdm9pZCBtYXNrZWRTdG9yZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpw dHIsIGNvbnN0IFR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrKTsKLSAgICAgdm9pZCBz dG9yZVVuaWZvcm1Ub1NPQShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpwdHIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICp2YWx1ZVR5cGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUpOwotLSAgICBsbHZtOjpWYWx1 ZSAqbG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNr LCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSk7Ci0rICAgIGxs dm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFs dWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAg ICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBl ICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSk7Ci0rICAgIGxs dm06OlZhbHVlICpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGUsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsK LSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQobGx2bTo6VmFs dWUgKnB0ciwgY29uc3QgVHlwZSAqcHRyVHlwZSk7Ci0gfTsKLWRpZmYgLS1naXQgYS9zcmMvZXhw ci5jcHAgYi9zcmMvZXhwci5jcHAKLWluZGV4IDgwY2MzMDIwYS4uNmQzOGQxODg5IDEwMDY0NAot LS0tIGEvc3JjL2V4cHIuY3BwCi0rKysgYi9zcmMvZXhwci5jcHAKLUBAIC0xMDIxLDExICsxMDIx LDExIEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXROZWdhdGUoRXhwciAqYXJnLCBTb3VyY2VQ b3MgcG9zLCBGdW5jdGlvbkVtaXRDb250ZXh0ICpjCi0gICAgIGN0eC0+U2V0RGVidWdQb3MocG9z KTsKLSAgICAgaWYgKHR5cGUtPklzRmxvYXRUeXBlKCkpIHsKLSAgICAgICAgIGxsdm06OlZhbHVl ICp6ZXJvID0gbGx2bTo6Q29uc3RhbnRGUDo6Z2V0WmVyb1ZhbHVlRm9yTmVnYXRpb24odHlwZS0+ TExWTVR5cGUoZy0+Y3R4KSk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihs bHZtOjpJbnN0cnVjdGlvbjo6RlN1YiwgemVybywgYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWws ICJfbmVnYXRlIikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6 SW5zdHJ1Y3Rpb246OkZTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXRO YW1lKCkpICsgIl9uZWdhdGUiKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIGxsdm06OlZhbHVl ICp6ZXJvID0gbExMVk1Db25zdGFudFZhbHVlKHR5cGUsIGctPmN0eCwgMC4pOwotICAgICAgICAg QXNzZXJ0UG9zKHBvcywgdHlwZS0+SXNJbnRUeXBlKCkpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+ QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OlN1YiwgemVybywgYXJnVmFsLCBMTFZN R2V0TmFtZShhcmdWYWwsICJfbmVnYXRlIikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5 T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OlN1YiwgemVybywgYXJnVmFsLCBsbHZtOjpUd2lu ZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIpOwotICAgICB9Ci0gfQotIAotQEAgLTEw NDcsMTEgKzEwNDcsMTEgQEAgbGx2bTo6VmFsdWUgKlVuYXJ5RXhwcjo6R2V0VmFsdWUoRnVuY3Rp b25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICByZXR1cm4gbEVtaXROZWdhdGUo ZXhwciwgcG9zLCBjdHgpOwotICAgICBjYXNlIExvZ2ljYWxOb3Q6IHsKLSAgICAgICAgIGxsdm06 OlZhbHVlICphcmdWYWwgPSBleHByLT5HZXRWYWx1ZShjdHgpOwotLSAgICAgICAgcmV0dXJuIGN0 eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfbG9naWNhbG5vdCIp KTsKLSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUo YXJnVmFsLT5nZXROYW1lKCkpICsgIl9sb2dpY2Fsbm90Iik7Ci0gICAgIH0KLSAgICAgY2FzZSBC aXROb3Q6IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICphcmdWYWwgPSBleHByLT5HZXRWYWx1ZShj dHgpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBMTFZNR2V0TmFt ZShhcmdWYWwsICJfYml0bm90IikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3Io YXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX2JpdG5vdCIpOwotICAg ICB9Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBGQVRBTCgibG9naWMgZXJyb3IiKTsKLUBAIC0x NTE4LDcgKzE1MTgsOCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0QmluYXJ5QXJpdGgoQmlu YXJ5RXhwcjo6T3Agb3AsIGxsdm06OlZhbHVlICp2YWx1ZTAsIGxsdgotICAgICAgICAgICAgIHJl dHVybiBOVUxMOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3Bl cmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsIExMVk1HZXROYW1lKG9wTmFtZSwgdmFsdWUwLCB2 YWx1ZTEpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGluc3QsIHZhbHVl MCwgdmFsdWUxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgobGx2bTo6 VHdpbmUob3BOYW1lKSArICJfIikgKyB2YWx1ZTAtPmdldE5hbWUoKSkgKyAiXyIpICsgdmFsdWUx LT5nZXROYW1lKCkpOwotICAgICB9Ci0gfQotIAotQEAgLTE1NjMsNyArMTU2NCw3IEBAIHN0YXRp YyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlDbXAoQmluYXJ5RXhwcjo6T3Agb3AsIGxsdm06OlZh bHVlICplMFZhbCwgbGx2bTo6Ci0gICAgIH0KLSAKLSAgICAgbGx2bTo6VmFsdWUgKmNtcCA9IGN0 eC0+Q21wSW5zdChpc0Zsb2F0T3AgPyBsbHZtOjpJbnN0cnVjdGlvbjo6RkNtcCA6IGxsdm06Oklu c3RydWN0aW9uOjpJQ21wLCBwcmVkLCBlMFZhbCwgZTFWYWwsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUob3BOYW1lLCBlMFZhbCwgZTFWYWwpKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChsbHZtOjpUd2luZShvcE5hbWUp ICsgIl8iKSArIGUwVmFsLT5nZXROYW1lKCkpICsgIl8iKSArIGUxVmFsLT5nZXROYW1lKCkpOwot ICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHVnbHk6IENtcEluc3QgcmV0dXJucyBpMSB2YWx1ZXMs IGJ1dCB3ZSB1c2UgdmVjdG9ycwotICAgICAvLyBvZiBpMzJzIGZvciB2YXJ5aW5nIGJvb2wgdmFs dWVzOyB0eXBlIGNvbnZlcnQgdGhlIHJlc3VsdCBoZXJlIGlmCi0gICAgIC8vIG5lZWRlZC4KLUBA IC00MTc3LDcgKzQxNzgsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxDb252ZXJ0VG9TbGljZVBv aW50ZXIoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZQotICAgICAvLyBvZmZz ZXRzCi0gICAgIGxsdm06OlZhbHVlICpyZXN1bHQgPSBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZh bHVlKHNsaWNlU3RydWN0VHlwZSk7Ci0gICAgIC8vIEFuZCByZXBsYWNlIHRoZSBwb2ludGVyIGlu IHRoZSBzdHJ1Y3Qgd2l0aCB0aGUgZ2l2ZW4gcG9pbnRlcgotLSAgICByZXR1cm4gY3R4LT5JbnNl cnRJbnN0KHJlc3VsdCwgcHRyLCAwLCBMTFZNR2V0TmFtZShwdHIsICJfc2xpY2UiKSk7Ci0rICAg IHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBwdHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+ Z2V0TmFtZSgpKSArICJfc2xpY2UiKTsKLSB9Ci0gCi0gLyoqIElmIHRoZSBnaXZlbiBhcnJheSBp bmRleCBpcyBhIGNvbXBpbGUgdGltZSBjb25zdGFudCwgY2hlY2sgdG8gc2VlIGlmIGl0Ci1AQCAt NDI1OCw4ICs0MjU5LDggQEAgbGx2bTo6VmFsdWUgKkluZGV4RXhwcjo6R2V0TFZhbHVlKEZ1bmN0 aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAgLy8gQ29udmVydCB0byBhIHNs aWNlIHBvaW50ZXIgaWYgd2UncmUgaW5kZXhpbmcgaW50byBTT0EgZGF0YQotICAgICAgICAgYmFz ZVB0clZhbHVlID0gbENvbnZlcnRQdHJUb1NsaWNlSWZOZWVkZWQoY3R4LCBiYXNlUHRyVmFsdWUs ICZiYXNlRXhwclR5cGUpOwotIAotLSAgICAgICAgbGx2bTo6VmFsdWUgKnB0ciA9Ci0tICAgICAg ICAgICAgY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFsdWUsIGluZGV4VmFsdWUsIGJh c2VFeHByVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0clZhbHVlLCAiX29mZnNldCIpKTsKLSsgICAg ICAgIGxsdm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHJWYWx1 ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoYmFzZVB0clZhbHVlLT5nZXROYW1l KCkpICsgIl9vZmZzZXQiKTsKLSAgICAgICAgIHJldHVybiBsQWRkVmFyeWluZ09mZnNldHNJZk5l ZWRlZChjdHgsIHB0ciwgR2V0TFZhbHVlVHlwZSgpKTsKLSAgICAgfQotIAotQEAgLTQyOTAsOCAr NDI5MSw4IEBAIGxsdm06OlZhbHVlICpJbmRleEV4cHI6OkdldExWYWx1ZShGdW5jdGlvbkVtaXRD b250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotIAotICAg ICAvLyBBbmQgZG8gdGhlIGFjdHVhbCBpbmRleGluZyBjYWxjdWxhdGlvbi4uCi0tICAgIGxsdm06 OlZhbHVlICpwdHIgPQotLSAgICAgICAgY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyLCBM TFZNSW50MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRy LCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGN0eC0+R2V0RWxlbWVudFB0 ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVlLCBiYXNlUHRyVHlwZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUo YmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAgIHJldHVybiBsQWRkVmFyeWlu Z09mZnNldHNJZk5lZWRlZChjdHgsIHB0ciwgR2V0TFZhbHVlVHlwZSgpKTsKLSB9Ci0gCi1AQCAt NDc4OCwxNSArNDc4OSwxNCBAQCBsbHZtOjpWYWx1ZSAqVmVjdG9yTWVtYmVyRXhwcjo6R2V0VmFs dWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICBmb3IgKHNpemVf dCBpID0gMDsgaSA8IGlkZW50aWZpZXIuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICBjaGFy IGlkU3RyWzJdID0ge2lkZW50aWZpZXJbaV0sICdcMCd9OwotICAgICAgICAgICAgIGxsdm06OlZh bHVlICplbGVtZW50UHRyID0KLS0gICAgICAgICAgICAgICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0 KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCBp ZFN0cikpOwotKyAgICAgICAgICAgICAgICBjdHgtPkFkZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwg aW5kaWNlc1tpXSwgYmFzZVB0clR5cGUsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkg KyBpZFN0cik7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1lbnRWYWx1ZSA9IGN0eC0+ TG9hZEluc3QoZWxlbWVudFB0ciwgZWxlbWVudE1hc2ssIGVsZW1lbnRQdHJUeXBlKTsKLSAKLS0g ICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHROYW1lID0gTExWTUdldE5hbWUocmVzdWx0UHRy LCBpZFN0cik7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0bXAgPSBjdHgtPkFkZEVsZW1l bnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCByZXN1bHROYW1lKTsKLSsgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNldChyZXN1bHRQdHIsIGksIE5V TEwsIGxsdm06OlR3aW5lKHJlc3VsdFB0ci0+Z2V0TmFtZSgpKSArIGlkU3RyKTsKLSAgICAgICAg ICAgICBjdHgtPlN0b3JlSW5zdChlbGVtZW50VmFsdWUsIHB0bXAsIGVsZW1lbnRQdHJUeXBlLCBl eHByLT5HZXRUeXBlKCktPklzVW5pZm9ybVR5cGUoKSk7Ci0gICAgICAgICB9Ci0gCi0tICAgICAg ICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJlclR5cGUsIExMVk1HZXROYW1l KGJhc2VQdHIsICJfc3dpenpsZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KHJl c3VsdFB0ciwgbWVtYmVyVHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJf c3dpenpsZSIpOwotICAgICB9Ci0gfQotIAotQEAgLTQ5MzIsNyArNDkzMiw3IEBAIGxsdm06OlZh bHVlICpNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0 IHsKLSAKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAgICBzdGQ6OnN0cmluZyBzdWZm aXggPSBzdGQ6OnN0cmluZygiXyIpICsgaWRlbnRpZmllcjsKLS0gICAgcmV0dXJuIGN0eC0+TG9h ZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBMTFZNR2V0TmFtZShsdmFsdWUsIHN1ZmZp eC5jX3N0cigpKSk7Ci0rICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZh bHVlVHlwZSwgbGx2bTo6VHdpbmUobHZhbHVlLT5nZXROYW1lKCkpICsgc3VmZml4KTsKLSB9Ci0g Ci0gY29uc3QgVHlwZSAqTWVtYmVyRXhwcjo6R2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE5VTEw7 IH0KLUBAIC02NTAyLDcgKzY1MDIsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxUeXBlQ29udkF0 b21pYyhGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpleHByVgotICAgICAg ICAgICAgICAgICAvLyBkb2VzIGZvciBldmVyeW9uZSBlbHNlLi4uCi0gICAgICAgICAgICAgICAg IEFzc2VydChjYXN0KTsKLSAgICAgICAgICAgICAgICAgY2FzdCA9IGN0eC0+U3dpdGNoQm9vbFNp emUoY2FzdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZS0+Z2V0RWxlbWVudFR5cGUoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY2Fz dCwgInRvX2lfYm9vbCIpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VHdpbmUoY2FzdC0+Z2V0TmFtZSgpKSArICJ0b19pX2Jvb2wiKTsKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8vIGZyb21UeXBlLT5J c1ZhcnlpbmdUeXBlKCkpCi1AQCAtODI0Niw3ICs4MjQ2LDcgQEAgbGx2bTo6VmFsdWUgKk5ld0V4 cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAg Ly8gcG9pbnRlciBvZiB0aGUgcmV0dXJuIHR5cGUgYW5kIHRvIHJ1biB0aGUgY29kZSBmb3IgaW5p dGlhbGl6ZXJzLAotICAgICAgICAgLy8gaWYgcHJlc2VudC4KLSAgICAgICAgIGxsdm06OlR5cGUg KnB0clR5cGUgPSByZXRUeXBlLT5MTFZNVHlwZShnLT5jdHgpOwotLSAgICAgICAgcHRyVmFsdWUg PSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJUeXBlLCBMTFZNR2V0TmFtZShwdHJWYWx1 ZSwgIl9jYXN0X3B0ciIpKTsKLSsgICAgICAgIHB0clZhbHVlID0gY3R4LT5CaXRDYXN0SW5zdChw dHJWYWx1ZSwgcHRyVHlwZSwgbGx2bTo6VHdpbmUocHRyVmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nh c3RfcHRyIik7Ci0gCi0gICAgICAgICBpZiAoaW5pdEV4cHIgIT0gTlVMTCkKLSAgICAgICAgICAg ICBJbml0U3ltYm9sKHB0clZhbHVlLCBhbGxvY1R5cGUsIGluaXRFeHByLCBjdHgsIHBvcyk7Ci1k aWZmIC0tZ2l0IGEvc3JjL2xsdm11dGlsLmNwcCBiL3NyYy9sbHZtdXRpbC5jcHAKLWluZGV4IDk3 MDE3NWRiZi4uZDBiZWNiOWY1IDEwMDY0NAotLS0tIGEvc3JjL2xsdm11dGlsLmNwcAotKysrIGIv c3JjL2xsdm11dGlsLmNwcAotQEAgLTE2MDUsMjMgKzE2MDUsNiBAQCBsbHZtOjpWYWx1ZSAqTExW TVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBpbnQzMl90 IHNodWZbXQotICAgICByZXR1cm4gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KHYxLCB2Miwg dmVjLCAic2h1ZmZsZSIsIGluc2VydEJlZm9yZSk7Ci0gfQotIAotLWNvbnN0IGNoYXIgKkxMVk1H ZXROYW1lKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpzKSB7Ci0tICAgIGlmICh2ID09IE5V TEwpCi0tICAgICAgICByZXR1cm4gczsKLS0gICAgc3RkOjpzdHJpbmcgcmV0ID0gc3RkOjpzdHJp bmcodi0+Z2V0TmFtZSgpKTsKLS0gICAgcmV0ICs9IHM7Ci0tICAgIHJldHVybiBzdHJkdXAocmV0 LmNfc3RyKCkpOwotLX0KLS0KLS1jb25zdCBjaGFyICpMTFZNR2V0TmFtZShjb25zdCBjaGFyICpv cCwgbGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsKLS0gICAgc3RkOjpzdHJpbmcg ciA9IG9wOwotLSAgICByICs9ICJfIjsKLS0gICAgciArPSB2MS0+Z2V0TmFtZSgpLnN0cigpOwot LSAgICByICs9ICJfIjsKLS0gICAgciArPSB2Mi0+Z2V0TmFtZSgpLnN0cigpOwotLSAgICByZXR1 cm4gc3RyZHVwKHIuY19zdHIoKSk7Ci0tfQotLQotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAot IGJvb2wgbElzU1ZNTG9hZChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQo aW5zdCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xsdm11dGlsLmggYi9zcmMvbGx2bXV0aWwuaAotaW5k ZXggNDJjY2U0ZDgzLi4wN2QwODliYjQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGx2bXV0aWwuaAotKysr IGIvc3JjL2xsdm11dGlsLmgKLUBAIC0zMjgsMTEgKzMyOCw2IEBAIGV4dGVybiBsbHZtOjpWYWx1 ZSAqTExWTUNvbmNhdFZlY3RvcnMobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxs dm06OkluCi0gZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZsZVZlY3RvcnMobGx2bTo6VmFs dWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1ZltdLCBpbnQgc2h1ZlNpemUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc2VydEJlZm9yZSk7Ci0gCi0tLyoqIFV0aWxpdHkgcm91dGluZXMgdG8gY29uY2F0IHN0cmlu Z3Mgd2l0aCB0aGUgbmFtZXMgb2YgZXhpc3RpbmcgdmFsdWVzIHRvCi0tICAgIGNyZWF0ZSBtZWFu aW5nZnVsIG5ldyBuYW1lcyBmb3IgaW5zdHJ1Y3Rpb24gdmFsdWVzLgotLSovCi0tZXh0ZXJuIGNv bnN0IGNoYXIgKkxMVk1HZXROYW1lKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICopOwotLWV4 dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShjb25zdCBjaGFyICpvcCwgbGx2bTo6VmFsdWUg KnYxLCBsbHZtOjpWYWx1ZSAqdjIpOwotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotIGVudW0g QWRkcmVzc1NwYWNlIHsgTG9jYWwsIEdsb2JhbCwgRXh0ZXJuYWwgfTsKLSAKLWRpZmYgLS1naXQg YS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCA1YjFhYzdiNjMuLjlkNmNhZTA1OCAx MDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTI1Nyw3ICsy NTcsNyBAQCBzdGF0aWMgYm9vbCBsR2V0U291cmNlUG9zRnJvbU1ldGFkYXRhKGNvbnN0IGxsdm06 Okluc3RydWN0aW9uICppbnN0LCBTb3VyY2VQb3MgKgotICAgICByZXR1cm4gdHJ1ZTsKLSB9Ci0g Ci0tc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1 bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFt ZSwKLStzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAq ZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJn c1syXSA9IHthcmcwLCBhcmcxfTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4g bmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzJdKTsKLUBAIC0yNjUsMjEgKzI2NSwyMiBAQCBz dGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywg bGx2bTo6VmFsdWUgKmFyZzAsIGxsdgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24g KmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06 OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0 QmVmb3JlID0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0g TlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1szXSA9IHthcmcwLCBhcmcxLCBhcmcyfTsK LSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0s ICZhcmdzWzNdKTsKLSAgICAgcmV0dXJuIGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgbmV3 QXJnQXJyYXksIG5hbWUsIGluc2VydEJlZm9yZSk7Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0 cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJn MCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBjb25zdCBjaGFyICpuYW1l LCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJn c1s0XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczfTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2 bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzRdKTsKLSAgICAgcmV0dXJu IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgbmV3QXJnQXJyYXksIG5hbWUsIGluc2VydEJl Zm9yZSk7Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06 OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxs dm06OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgY29uc3QgY2hhciAqbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2 bTo6VmFsdWUgKmFyZzQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBO VUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzVdID0ge2FyZzAsIGFyZzEsIGFyZzIsIGFy ZzMsIGFyZzR9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJh eSgmYXJnc1swXSwgJmFyZ3NbNV0pOwotQEAgLTI4Nyw3ICsyODgsNyBAQCBzdGF0aWMgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUg KmFyZzAsIGxsdgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChs bHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcx LCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVlICphcmc1 LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxs dm06OlZhbHVlICphcmdzWzZdID0ge2FyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzV9 OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1sw XSwgJmFyZ3NbNl0pOwotQEAgLTk5MSwyMyArOTkyLDI0IEBAIGJvb2wgSW50cmluc2ljc09wdDo6 cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAg IGxsdm06OlR5cGUgKnJldHVyblR5cGUgPSBjYWxsSW5zdC0+Z2V0VHlwZSgpOwotICAgICAgICAg ICAgICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldHVyblR5cGUpKTsK LSAgICAgICAgICAgICAgICAgLy8gY2FzdCB0aGUgaTggKiB0byB0aGUgYXBwcm9wcmlhdGUgdHlw ZQotLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTExWTUdldE5hbWUoY2FsbElu c3QtPmdldEFyZ09wZXJhbmQoMCksICJfY2FzdCIpOwotLSAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXR1cm5UeXBlLCAwKSwgbmFt ZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9Ci0r ICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFy Z09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwgMCksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbElu c3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBjYWxsSW5zdCk7Ci0g ICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoY2FzdFB0ciwgY2FsbEluc3QpOwotICAgICAg ICAgICAgICAgICBpbnQgYWxpZ247Ci0gICAgICAgICAgICAgICAgIGlmIChnLT5vcHQuZm9yY2VB bGlnbmVkTWVtb3J5KQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg ICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2 eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSAgICAgICAgICAgICAgICBuYW1lID0gTExWTUdldE5h bWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfbG9hZCIpOwotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotLSAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2Ug Lyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChs bHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqbG9hZEluc3QgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0 KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1l KCkpICsgIl9sb2FkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QoCi0tICAgICAgICAgICAgICAg ICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4oY2FzdFB0ci0+Z2V0VHlwZSgp KS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNhc3RQdHIsIG5hbWUsCi0tICAgICAgICAgICAg ICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24p LnZhbHVlT3JPbmUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAgICAgICAgICAg ICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4oY2FzdFB0ci0+Z2V0VHlw ZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNhc3RQdHIsCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSAr ICJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsgICAgICAgICAgICAgICAgICAg IGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSwgKGxsdm06Okluc3RydWN0aW9u ICopTlVMTCk7Ci0gI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEobG9hZElu c3QsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5z dChjYWxsSW5zdCwgbG9hZEluc3QpOwotQEAgLTEwMjgsOSArMTAzMCw5IEBAIGJvb2wgSW50cmlu c2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAg ICAgICAgICAgIC8vIGFsbCBsYW5lcyBzdG9yaW5nLCBzbyByZXBsYWNlIHdpdGggYSByZWd1bGFy IHN0b3JlCi0gICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpydmFsdWUgPSBjYWxsSW5zdC0+ Z2V0QXJnT3BlcmFuZCgyKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqc3RvcmVUeXBl ID0gcnZhbHVlLT5nZXRUeXBlKCk7Ci0tICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg PSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9wdHJjYXN0Iik7Ci0t ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0gbmV3IGxsdm06OkJpdENhc3RJ bnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpQb2ludGVyVHlwZTo6 Z2V0KHN0b3JlVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsKLSsgICAgICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkJpdENh c3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0 KHN0b3JlVHlwZSwgMCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAi X3B0cmNhc3QiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoY2Fz dFB0ciwgY2FsbEluc3QpOwotIAotICAgICAgICAgICAgICAgICBpbnQgYWxpZ247Ci1AQCAtMTMz OSw4ICsxMzQxLDggQEAgc3RhdGljIGxsdm06OlZhbHVlICpsR2V0QmFzZVBvaW50ZXIobGx2bTo6 VmFsdWUgKnYsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWYKLSAgICAgICAgIGlmICh0ID09 IE5VTEwpIHsKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICAgcmV0dXJuIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2ktPmdldE9wY29kZSgp LCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCksIExMVk1HZXROYW1lKHQsICJfY2Fz dCIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJl Zm9yZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2ktPmdl dE9wY29kZSgpLCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUodC0+Z2V0TmFtZSgp KSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLUBAIC0x NTgzLDEzICsxNTg1LDEzIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2 bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgIGlmIChj byA9PSBOVUxMKQotICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IE5VTEw7Ci0gICAgICAgICBl bHNlCi0tICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0KLS0gICAgICAgICAgICAgICAgbGx2bTo6 Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28sIGNhc3QtPmdldFR5cGUoKSwg TExWTUdldE5hbWUoY28sICJfY2FzdCIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICpj b25zdE9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0T3Bjb2RlKCksIGNv LCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpUd2luZShjby0+Z2V0TmFtZSgpKSArICJfY2FzdCIsIGluc2Vy dEJlZm9yZSk7Ci0gICAgICAgICBpZiAodm8gPT0gTlVMTCkKLSAgICAgICAgICAgICAqdmFyaWFi bGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICp2YXJpYWJsZU9m ZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0 T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXROYW1lKHZvLCAiX2Nhc3QiKSwg aW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpDYXN0 SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywgY2FzdC0+Z2V0VHlwZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 VHdpbmUodm8tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAg cmV0dXJuOwotICAgICB9Ci0gCi1AQCAtMTYwOCwxNiArMTYxMCwxOCBAQCBzdGF0aWMgdm9pZCBs RXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29u c3RPZmZzZXQsCi0gICAgICAgICAgICAgZWxzZSBpZiAoYzEgPT0gTlVMTCB8fCBsbHZtOjppc2E8 bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPihjMSkpCi0gICAgICAgICAgICAgICAgICpjb25z dE9mZnNldCA9IGMwOwotICAgICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6 QWRkLCBjMCwgYzEsIExMVk1HZXROYW1lKCJhZGQiLCBjMCwgYzEpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9y ZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9y OjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCBj MCwgYzEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIGMx LT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotIAotICAg ICAgICAgICAgIGlmICh2MCA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3Jl Z2F0ZVplcm8+KHYwKSkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdjE7Ci0g ICAgICAgICAgICAgZWxzZSBpZiAodjEgPT0gTlVMTCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3Rh bnRBZ2dyZWdhdGVaZXJvPih2MSkpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9 IHYwOwotICAgICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0 ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2 MCwgdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFkZCIsIHYwLCB2MSksIGluc2VydEJlZm9yZSk7 Ci0rICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9y OjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2 MCwgdjEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIHYx LT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAg ICAgICAgIHJldHVybjsKLSAgICAgICAgIH0gZWxzZSBpZiAoYm9wLT5nZXRPcGNvZGUoKSA9PSBs bHZtOjpJbnN0cnVjdGlvbjo6U2hsKSB7Ci0gICAgICAgICAgICAgbEV4dHJhY3RDb25zdGFudE9m ZnNldChvcDAsICZjMCwgJnYwLCBpbnNlcnRCZWZvcmUpOwotQEAgLTE2MzMsMTAgKzE2MzcsMTIg QEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBs bHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQg PSB2ZWM7Ci0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IE5VTEw7Ci0gICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6Qmlu YXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCBjMCwgYzEsIExMVk1H ZXROYW1lKCJzaGwiLCBjMCwgYzEpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0tICAgICAgICAgICAg ICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKCJzaGwiLCB2MCwg YzEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb246OlNobCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJzaGxfIikgKyBjMC0+Z2V0TmFt ZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0 QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5 T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9u OjpTaGwsIHYwLCBjMSwgKChsbHZtOjpUd2luZSgic2hsXyIpICsgdjAtPmdldE5hbWUoKSkgKyAi XyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7 Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0gZWxzZSBp ZiAoYm9wLT5nZXRPcGNvZGUoKSA9PSBsbHZtOjpJbnN0cnVjdGlvbjo6TXVsKSB7Ci1AQCAtMTY0 OCwyNSArMTY1NCwzMCBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06 OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgLy8g Tm90ZSB0aGF0IHRoZSBmaXJzdCB0ZXJtIGlzIGEgY29uc3RhbnQgYW5kIHRoZSBsYXN0IHRocmVl IGFyZQotICAgICAgICAgICAgIC8vIHZhcmlhYmxlLgotICAgICAgICAgICAgIGlmIChjMCAhPSBO VUxMICYmIGMxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIGMxLCBM TFZNR2V0TmFtZSgibXVsIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAg ICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAg ICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIGMxLCAoKGxsdm06 OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAot KyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IE5VTEw7Ci0gCi0gICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKnZhID0gTlVMTCwgKnZiID0gTlVMTCwgKnZjID0gTlVMTDsKLSAgICAgICAgICAg ICBpZiAodjAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YSA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMx LCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIGMxKSwKLSsgICAgICAgICAgICAgICAgdmEgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCBjMSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2 bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmIChjMCAhPSBOVUxMICYmIHYxICE9IE5VTEwpCi0t ICAgICAgICAgICAgICAgIHZiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6TXVsLCBjMCwgdjEsIExMVk1HZXROYW1lKCJtdWwiLCBjMCwgdjEpLAotKyAg ICAgICAgICAgICAgICB2YiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5z dHJ1Y3Rpb246Ok11bCwgYzAsIHYxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgYzAtPmdldE5hbWUoKSkg KyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgaWYgKHYwICE9 IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmMgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCB2MSwgTExWTUdldE5h bWUoIm11bCIsIHYwLCB2MSksCi0rICAgICAgICAgICAgICAgIHZjID0gbGx2bTo6QmluYXJ5T3Bl cmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgdjEsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJt dWxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsK LSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmFiID0gTlVMTDsKLSAgICAgICAgICAgICBp ZiAodmEgIT0gTlVMTCAmJiB2YiAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YWIgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhLCB2Yiwg TExWTUdldE5hbWUoImFkZCIsIHZhLCB2YiksCi0rICAgICAgICAgICAgICAgIHZhYiA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmEsIHZiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2 bTo6VHdpbmUoImFkZF8iKSArIHZhLT5nZXROYW1lKCkpICsgIl8iKSArIHZiLT5nZXROYW1lKCks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5z ZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2YSAhPSBOVUxMKQotICAgICAgICAg ICAgICAgICB2YWIgPSB2YTsKLUBAIC0xNjc0LDggKzE2ODUsOSBAQCBzdGF0aWMgdm9pZCBsRXh0 cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RP ZmZzZXQsCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZiOwotIAotICAgICAgICAgICAgIGlmICh2 YWIgIT0gTlVMTCAmJiB2YyAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZz ZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQs IHZhYiwgdmMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFkZCIsIHZhYiwgdmMpLCBpbnNlcnRCZWZv cmUpOwotKyAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVy YXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFk ZCwgdmFiLCB2YywgKChsbHZtOjpUd2luZSgiYWRkXyIpICsgdmFiLT5nZXROYW1lKCkpICsgIl8i KSArIHZjLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwot ICAgICAgICAgICAgIGVsc2UgaWYgKHZhYiAhPSBOVUxMKQotICAgICAgICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPSB2YWI7Ci0gICAgICAgICAgICAgZWxzZQotQEAgLTE5NDMsNyArMTk1NSw3 IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVP ZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICAgICAgLy8gYWxsIHplcm9zIChp LmUuIGEgQ29uc3RhbnRBZ2dyZWdhdGVaZXJvLCBidXQganVzdCBpbiBjYXNlLAotICAgICAgICAg ICAgIC8vIGRvIHRoZSBtb3JlIGdlbmVyYWwgY2hlY2sgd2l0aCBsVmVjdG9ySXMzMkJpdEludHMo KS4KLSAgICAgICAgICAgICB2YXJpYWJsZU9mZnNldCA9IG5ldyBsbHZtOjpUcnVuY0luc3QodmFy aWFibGVPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZSh2YXJpYWJsZU9m ZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2YXJpYWJsZU9mZnNldC0+Z2V0 TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgZWxzZQotICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotQEAgLTE5NTIsNyArMTk2NCw3IEBAIHN0YXRp YyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIs IGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICBpZiAobFZlY3RvcklzMzJCaXRJbnRzKGNvbnN0 T2Zmc2V0KSkgewotICAgICAgICAgICAgIC8vIFRydW5jYXRlIHRoZW0gc28gd2UgaGF2ZSBhIDMy LWJpdCB2ZWN0b3IgdHlwZSBmb3IgdGhlbS4KLSAgICAgICAgICAgICBjb25zdE9mZnNldCA9IG5l dyBsbHZtOjpUcnVuY0luc3QoY29uc3RPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBl LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0 TmFtZShjb25zdE9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjb25zdE9mZnNl dC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAvLyBGSVhNRTogb3RoZXJ3aXNlIHdlIGp1c3QgYXNzdW1lIHRoYXQg YWxsIGNvbnN0YW50IG9mZnNldHMKLSAgICAgICAgICAgICAvLyBjYW4gYWN0dWFsbHkgYWx3YXlz IGZpdCBpbnRvIDMyLWJpdHMuLi4gIChUaGlzIGNvdWxkIGJlCi1AQCAtMTk2Myw3ICsxOTc1LDcg QEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9m ZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAgICAgICAgICAgICAvLyBsbHZtOjpDb25zdGFu dEZvbGRJbnN0cnVjdGlvbigpIGRvZXNuJ3Qgc2VlbSB0byBiZSBkb2luZwotICAgICAgICAgICAg IC8vIGVub3VnaCBmb3IgdXMgaW4gc29tZSBjYXNlcyBpZiB3ZSBjYWxsIGl0IGZyb20gaGVyZS4K LSAgICAgICAgICAgICBjb25zdE9mZnNldCA9IG5ldyBsbHZtOjpUcnVuY0luc3QoY29uc3RPZmZz ZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjb25zdE9mZnNldCwgIl90cnVuYyIp LCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpUd2luZShjb25zdE9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBp bnNlcnRCZWZvcmUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMjAxMiw4ICsyMDI0LDgg QEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKipvZmZzZXRQdHIs IGxsdm06Okluc3RydWN0aW9uICppbnNlcnQKLSAKLSAgICAgICAgIC8vIEFsdGVybmF0aXZlbHks IG9mZnNldCBjb3VsZCBiZSBhIHNlcXVlbmNlIG9mIGFkZHMgdGVybWluYXRpbmcKLSAgICAgICAg IC8vIGluIHNhZmUgY29uc3RhbnQgdmVjdG9ycyBvciBhIFNFeHQuCi0tICAgICAgICAqb2Zmc2V0 UHRyID0KLS0gICAgICAgICAgICBuZXcgbGx2bTo6VHJ1bmNJbnN0KG9mZnNldCwgTExWTVR5cGVz OjpJbnQzMlZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRC ZWZvcmUpOwotKyAgICAgICAgKm9mZnNldFB0ciA9IG5ldyBsbHZtOjpUcnVuY0luc3Qob2Zmc2V0 LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1l KCkpICsgIl90cnVuYyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0gZWxzZQotICAg ICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyMjksNyArMjI0MSw4IEBAIHN0YXRpYyBib29sIGxH U1RvR1NCYXNlT2Zmc2V0cyhsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgfQotICAg ICAvLyBDYXN0IHRoZSBiYXNlIHBvaW50ZXIgdG8gYSB2b2lkICosIHNpbmNlIHRoYXQncyB3aGF0 IHRoZQotICAgICAvLyBfX3BzZXVkb18qX2Jhc2Vfb2Zmc2V0c18qIGZ1bmN0aW9ucyB3YW50Lgot LSAgICBiYXNlUHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6 OlZvaWRQb2ludGVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl8ydm9pZCIpLCBjYWxsSW5z dCk7Ci0rICAgIGJhc2VQdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KGJhc2VQdHIsIExMVk1U eXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsg Il8ydm9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxJbnN0 KTsKLSAgICAgbENvcHlNZXRhZGF0YShiYXNlUHRyLCBjYWxsSW5zdCk7Ci0gICAgIGxsdm06OkZ1 bmN0aW9uICpnYXRoZXJTY2F0dGVyRnVuYyA9IGluZm8tPmJhc2VPZmZzZXRzRnVuYzsKLSAKLUBA IC0yODAzLDcgKzI4MTYsNyBAQCBzdGF0aWMgYm9vbCBsR1NUb0xvYWRTdG9yZShsbHZtOjpDYWxs SW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShwdHIsIGNh bGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgRGVidWcocG9zLCAiVHJhbnNmb3JtZWQgZ2F0aGVy IHRvIHVuYWxpZ25lZCB2ZWN0b3IgbG9hZCEiKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKm5ld0NhbGwgPQotLSAgICAgICAgICAgICAgICAgICAgbENhbGxJbnN0KGdhdGhl ckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIsIG1hc2ssIExMVk1HZXROYW1lKHB0ciwgIl9tYXNr ZWRfbG9hZCIpKTsKLSsgICAgICAgICAgICAgICAgICAgIGxDYWxsSW5zdChnYXRoZXJJbmZvLT5s b2FkTWFza2VkRnVuYywgcHRyLCBtYXNrLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X21hc2tlZF9sb2FkIik7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEobmV3Q2FsbCwg Y2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNh bGxJbnN0LCBuZXdDYWxsKTsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoIGIvc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg M2E5NGQ4NDQzYTVlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gYzAzYTUx NDI0NDQ0NzZhMWNhYTVjMmJhN2ZhMmQ5MmQ3NzkzZDZmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IERlZXBhayBSYWplbmRyYWt1bWFyYW4gPGRlZXBhay5yYWplbmRyYWt1bWFyYW5A aW50ZWwuY29tPgotRGF0ZTogTW9uLCAyNSBKYW4gMjAyMSAwOToyMjo0OSAtMDgwMAotU3ViamVj dDogW1BBVENIXSBGaXhpbmcgYnVpbGQgb24gbGx2bSB0cnVuay4KLQotLS0tCi0gc3JjL2N0eC5j cHAgfCA3ICsrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXgg ZGVkNTI0YjcxLi5iNjBlNmZlODQgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3Jj L2N0eC5jcHAKLUBAIC0xMDIwLDggKzEwMjAsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6 OkVtaXRDYXNlTGFiZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFzaywgU291cmNlUG9zIHBvcwot ICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVMTDsKLSAgICAgaWYgKGVtaXRH ZW5YSGFyZHdhcmVNYXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0ZSBiYXNpYyBibG9jayB3aXRo IGFjdHVhbCBjYXNlIGltcGxlbWVudGF0aW9uCi0tICAgICAgICBsbHZtOjpUd2luZSBiYk5hbWUg PSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiOwotLSAgICAgICAgYmJD YXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNhc2UpOwotKyAgICAgICAgYmJD YXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2sobGx2bTo6VHdpbmUoYmJDYXNlLT5nZXROYW1lKCkp ICsgIl9pbXBsIiwgYmJDYXNlKTsKLSAgICAgfQotICNlbmRpZgotIAotQEAgLTMxNDIsOCArMzE0 MSw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShs bHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgIGxsdm06OlZhbHVlICp1bmRlZjIg PSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodmVjVHlwZSk7Ci0gCi0gICAgIC8vIEluc2VydEVsZW1l bnQKLS0gICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZt OjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUgKyBsbHZtOjpUd2lu ZSgiX2luaXQiKTsKLS0gICAgbGx2bTo6VmFsdWUgKmluc2VydCA9IEluc2VydEluc3QodW5kZWYx LCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSsgICAgbGx2bTo6VmFsdWUgKmluc2VydCA9Ci0r ICAgICAgICBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgIl9p bml0Iik7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTFfMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwNS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZTk2YjAwYWJmYS4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwzNzIgKzAsMCBAQAotRnJvbSBjMWQwYTUxYmY4NDE2ZDQyMTQ0ZGU5ZTJiZGQ1OTgyNWVhZWZm MWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJp bmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBGcmksIDggSmFuIDIwMjEgMTQ6MTM6NDkg LTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gTExWTSAxMSBzdXBwb3J0IGZvciBnZW4gY29kZQotCi0t LS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgIDEzICsrLQotIHNyYy9nZW4v R2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgfCAgIDkgKy0KLSBzcmMvb3B0LmNwcCAgICAgICAgICAg ICAgICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gMyBmaWxl cyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBiNjBlNmZlODQuLjJhNzJlNjgz NyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEsNSAr MSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAxMC0yMDIwLCBJbnRlbCBDb3Jwb3JhdGlv bgotKyAgQ29weXJpZ2h0IChjKSAyMDEwLTIwMjEsIEludGVsIENvcnBvcmF0aW9uCi0gICBBbGwg cmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAtMzY4NSw4ICszNjg1LDE3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZt Ojppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSkpOwotICAgICBsbHZtOjpW ZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbHVlLT5n ZXRUeXBlKCkpOwotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVMTCkgewotLSAgICAgICAgZGVmYXVs dHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodmFsdWUtPmdldFR5cGUoKS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTFfMAotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQo dnQtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5n ZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZN XzExXzAKLSsgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2V9 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbHNl Ci0rICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsg ICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBp bnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2UpLAotKyAgICAgICAgICAgIGxsdm06OkNv bnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZW5kaWYKLSAg ICAgfQotIAotICAgICBhdXRvIEZuID0gbGx2bTo6R2VuWEludHJpbnNpYzo6Z2V0R2VuWERlY2xh cmF0aW9uKG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6Z2VueF9zaW1kY2ZfcHJlZGlj YXRlLAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgYi9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRleCBhMTc2ZTk0NjIuLjQxZjNiMDBlMiAx MDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLSsrKyBiL3NyYy9n ZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC0xLDUgKzEsNSBAQAotIC8qCi0tICBDb3B5 cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24KLSsgIENvcHlyaWdo dCAoYykgMjAxNCwgMjAxNi0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgotICAgQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KLSAKLSAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotQEAgLTUzLDggKzUzLDEwIEBACi0gI2luY2x1ZGUg PGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWEludHJPcHRzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2Vu WEludHJpbnNpY3MvR2VuWEludHJpbnNpY3MuaD4KLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmlu c2ljcy9HZW5YTWV0YWRhdGEuaD4KLS0jaW5jbHVkZSA8bGx2bS9JUi9DRkcuaD4KLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICNpbmNsdWRlIDxsbHZtL0lSL0NhbGxT aXRlLmg+Ci0rI2VuZGlmCi0rI2luY2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0gI2luY2x1ZGUgPGxs dm0vSVIvRGVidWdJbmZvLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRG9taW5hdG9ycy5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0Z1bmN0aW9uLmg+Ci1AQCAtNDcwLDcgKzQ3Miw4IEBAIHZvaWQgR2xv YmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxzKExvY2FsaXphdGlvbkluZm8gJkxJKSB7 Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0gKkZuLT5nZXRFbnRyeUJsb2NrKCkuYmVn aW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdWLT5nZXRUeXBlKCktPmdldEVsZW1lbnRU eXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxvY2EgPSBuZXcgQWxsb2NhSW5zdChFbGVt VHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwgJkZpcnN0SSk7Ci0tICAgICAgICBBbGxv Y2EtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkpOwot KyAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihHVi0+Z2V0QWxp Z25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0rCi0gICAgICAgICBpZiAoIWlzYTxVbmRlZlZhbHVl PihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAgbmV3IFN0b3JlSW5zdChHVi0+ Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMv b3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBkNThkNzdmNzMuLjE3ODliODQ3NiAxMDA2NDQK LS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTI4OTksMTUgKzI4OTks MTcgQEAgc3RhdGljIGxsdm06OkZ1bmN0aW9uICpsR2VuWE1hc2tlZEludDhJbnN0KGxsdm06Oklu c3RydWN0aW9uICppbnN0LCBib29sIGlzU3RvcmUKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxH ZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06Oklu c3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgp KTsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUo KSkpOwotLSAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWwtPmdldFR5cGUoKS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQodmFsLT5nZXRUeXBlKCktPmdldFBy aW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSsKLSsgICAgbGx2bTo6VmVj dG9yVHlwZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZh bC0+Z2V0VHlwZSgpKTsKLSsgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsVmVjVHlw ZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0UHJpbWl0 aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotIAotICAgICAvLyBUaGUgZGF0YSB3 cml0ZSBvZiBzdm0gc3RvcmUgbXVzdCBoYXZlIGEgc2l6ZSB0aGF0IGlzIGEgcG93ZXIgb2YgdHdv IGZyb20gMTYgdG8gMTI4Ci0gICAgIC8vIGJ5dGVzLiBIb3dldmVyIGZvciBpbnQ4IHR5cGUgYW5k IHNpbWQgd2lkdGggPSA4LCB0aGUgZGF0YSB3cml0ZSBzaXplIGlzIDguCi0gICAgIC8vIFNvIHdl IHVzZSBtYXNrZWQgc3RvcmUgZnVuY3Rpb24gaGVyZSBpbnN0ZWFkIG9mIHN2bSBzdG9yZSB3aGlj aCBwcm9jZXNzIGludDggdHlwZQotICAgICAvLyBjb3JyZWN0bHkuCi0tICAgIGlmICh2YWwtPmdl dFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0tICAgICAgICBB c3NlcnQodmFsLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhU eXBlKTsKLSsgICAgaWYgKHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDgg PCAxNikgewotKyAgICAgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBM TFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZtOjpGdW5jdGlvbiAqbWFza2Vk RnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgdHJ1ZSkpCi0gICAgICAgICAgICAgcmV0 dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2FsbEluc3QobWFza2VkRnVuYywg cHRyLCB2YWwsIExMVk1NYXNrQWxsT24sICIiKSk7Ci0gICAgICAgICBlbHNlIHsKLUBAIC0yOTIz LDE1ICsyOTI1LDE3IEBAIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2 bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6Ci0gCi0gc3RhdGljIGxsdm06 OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlR5cGUgKnJl dFR5cGUsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChsbHZtOjppc2E8 bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLSAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9m Ml8zMihyZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0tICAgIEFzc2VydChyZXRU eXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotLSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0 UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotKwotKyAgICBsbHZtOjpW ZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o cmV0VHlwZSk7Ci0rICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFZlY1R5cGUtPmdl dE51bUVsZW1lbnRzKCkpKTsKLSsgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNp emVJbkJpdHMoKSk7Ci0rICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5C aXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gICAgIC8vIFRoZSBkYXRhIHJlYWQgb2Ygc3ZtIGxv YWQgbXVzdCBoYXZlIGEgc2l6ZSB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIGZyb20gMTYgdG8gMTI4 Ci0gICAgIC8vIGJ5dGVzLiBIb3dldmVyIGZvciBpbnQ4IHR5cGUgYW5kIHNpbWQgd2lkdGggPSA4 LCB0aGUgZGF0YSByZWFkIHNpemUgaXMgOC4KLSAgICAgLy8gU28gd2UgdXNlIG1hc2tlZCBsb2Fk IGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gbG9hZCB3aGljaCBwcm9jZXNzIGludDggdHlw ZQotICAgICAvLyBjb3JyZWN0bHkuCi0tICAgIGlmIChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXpl SW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydChyZXRUeXBlLT5nZXRTY2FsYXJU eXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlmIChyZXRWZWNUeXBlLT5nZXRQ cmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAgICAgIEFzc2VydChyZXRWZWNU eXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0gICAgICAgICBp ZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1hc2tlZEludDhJbnN0KGluc3Qs IGZhbHNlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbElu c3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIExMVk1NYXNrQWxsT24sICIiKSk7Ci0gICAg ICAgICBlbHNlIHsKLUBAIC01NjIyLDE1ICs1NjI2LDI0IEBAIHN0YXRpYyBib29sIGxWZWN0b3Jp emVHRVBzKGxsdm06OlZhbHVlICpwdHIsIHN0ZDo6dmVjdG9yPFB0clVzZT4gJnB0clVzZXMsIHN0 ZDo6Ci0gICAgICAgICBsbHZtOjpQdHJUb0ludEluc3QgKnB0clRvSW50ID0KLSAgICAgICAgICAg ICBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHB0ciwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsICJ2ZWN0 b3JpemVkX3B0cnRvaW50IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGxsdm06Okluc3RydWN0 aW9uICphZGRyID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZUFkZChwdHJUb0ludCwgb2Zm c2V0LCAidmVjdG9yaXplZF9hZGRyZXNzIiwgaW5zZXJ0QmVmb3JlKTsKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUg PSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJfdHlwZSwgcmVxU2l6ZSAvIHRfc2l6 ZSk7Ci0rI2Vsc2UKLSAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBsbHZtOjpWZWN0b3JU eXBlOjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUpOwotKyNlbmRpZgotICAgICAg ICAgbGx2bTo6RnVuY3Rpb24gKmZuID0gbGx2bTo6R2VuWEludHJpbnNpYzo6Z2V0R2VuWERlY2xh cmF0aW9uKAotICAgICAgICAgICAgIG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6Z2Vu eF9zdm1fYmxvY2tfbGRfdW5hbGlnbmVkLCB7cmV0VHlwZSwgYWRkci0+Z2V0VHlwZSgpfSk7Ci0g ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbGQgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZu LCB7YWRkcn0sICJ2ZWN0b3JpemVkX2xkIiwgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgIGlm IChsb2FkaW5nUHRyKSB7Ci0gICAgICAgICAgICAgLy8gQ2FzdCBpbnQgdG8gcHRyIHZpYSBpbnR0 b3B0cgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAg ICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2bTo6Rml4ZWRWZWN0b3JUeXBl OjpnZXQob3JpZ2luYWxUeXBlLCByZXFTaXplIC8gdF9zaXplKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcml6ZWRfaW50dG9wdHIiLCBpbnNlcnRCZWZv cmUpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGQgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KGxk LCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQob3JpZ2luYWxUeXBlLCByZXFTaXplIC8gdF9zaXplKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcml6ZWRfaW50 dG9wdHIiLCBpbnNlcnRCZWZvcmUpOwotKyNlbmRpZgotICAgICAgICAgfQotIAotICAgICAgICAg Ly8gU2NhbGFyIGV4dHJhY3RzIGZvciBhbGwgbG9hZGVkIGVsZW1lbnRzCi1AQCAtNjE2MCwxOSAr NjE3MywzNCBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxs dm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 ICYqSTsKLSAgICAgICAgIGlmIChsbHZtOjpDYWxsSW5zdCAqY2kgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpDYWxsSW5zdD4oaW5zdCkpIHsKLSAgICAgICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZnVu YyA9IGNpLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAgICAgICAgICAgIGlmIChmdW5jICYmIGZ1 bmMtPmdldE5hbWUoKSA9PSAibGx2bS50cmFwIikgewotKyAgICAgICAgICAgIGlmIChmdW5jICYm IGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0udHJhcCIpKSB7Ci0gICAgICAgICAgICAgICAg IGxsdm06OlR5cGUgKmFyZ1R5cGVzW10gPSB7TExWTVR5cGVzOjpJbnQxVmVjdG9yVHlwZSwgTExW TVR5cGVzOjpJbnQxNlZlY3RvclR5cGV9OwotICAgICAgICAgICAgICAgICAvLyBEZXNjcmlwdGlv biBvZiBwYXJhbWV0ZXJzIGZvciBnZW54X3Jhd19zZW5kX25vcmVzdWx0IGNhbiBiZSBmb3VuZCBp biB0YXJnZXQtZ2VueC5sbAotICAgICAgICAgICAgICAgICBhdXRvIEZuID0gK2xsdm06OkdlblhJ bnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgIG0tPm1v ZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6Z2VueF9yYXdfc2VuZF9ub3Jlc3VsdCwgYXJnVHlw ZXMpOwotICAgICAgICAgICAgICAgICBsbHZtOjpTbWFsbFZlY3RvcjxsbHZtOjpWYWx1ZSAqLCA4 PiBBcmdzOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudElu dDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKSk7Ci0tICAgICAgICAgICAgICAgIEFyZ3Mu cHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvcldpZHRoKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudEludDo6Z2V0VHJ1ZSgqZy0+ Y3R4KSkpOwotKyAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAK LSsgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwK LSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAg ICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVW ZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0gMTIuMCsKLSsgICAgICAgICAg ICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu dD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotKyNlbmRpZgot KyAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRydWUoKmctPmN0eCkp KTsKLSsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6 OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMzkpKTsKLSAgICAgICAgICAgICAgICAgQXJncy5w dXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMzM1 NTQ0NDgpKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotLSAgICAgICAgICAgICAgICAgICAgZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLCBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxs dm06OlR5cGU6OmdldEludDE2VHkoKmctPmN0eCkpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8x MV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0rI2Vsc2UgLy8gTExWTSAx Mi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGlj X2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBm YWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0 TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDE2VHkoKmctPmN0eCkpKTsKLSAgICAgICAgICAg ICAgICAgQXJncy5wdXNoX2JhY2soemVyb01hc2spOwotIAotICAgICAgICAgICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqbmV3SW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoRm4sIEFyZ3Ms IGNpLT5nZXROYW1lKCkpOwotQEAgLTYxODEsNyArNjIwOSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1J bnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAg ICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg IGdvdG8gcmVzdGFydDsKLSAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0gZWxzZSBp ZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0uYXNzdW1lIikgewotKyAgICAgICAg ICAgIH0gZWxzZSBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkuZXF1YWxzKCJsbHZtLmFzc3Vt ZSIpKSB7Ci0gICAgICAgICAgICAgICAgIGNpLT5lcmFzZUZyb21QYXJlbnQoKTsKLSAgICAgICAg ICAgICAgICAgbW9kaWZpZWRBbnkgPSB0cnVlOwotICAgICAgICAgICAgICAgICBnb3RvIHJlc3Rh cnQ7Ci1AQCAtNjMzNSw3ICs2MzYzLDcgQEAgYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBj b250aW51ZTsKLSAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHVuc3VwcG9ydGVkRnVu Y3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgc3RkOjpzbWF0Y2ggbWF0Y2g7Ci0t ICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpOwot KyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5z dHIoKTsKLSAgICAgICAgICAgICAgICAgaWYgKHN0ZDo6cmVnZXhfbWF0Y2goZnVuY05hbWUsIG1h dGNoLCB1bnN1cHBvcnRlZEZ1bmNzW2ldKSkgewotICAgICAgICAgICAgICAgICAgICAgLy8gV2Ug Zm91bmQgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uIEdlbmVyYXRlIGVycm9yIGFuZCBzdG9wIGNvbXBp bGF0aW9uLgotICAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zIHBvczsKLUBAIC02NDE4LDEy ICs2NDQ2LDE0IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uQmFzaWNCbG9jayhs bHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgIGlmIChmdW5jLT5nZXROYW1lKCku c3RhcnRzd2l0aCgiX19zcGlydl9vY2wiKSkgewotICAgICAgICAgICAgICAgICBzdGQ6OnN0cmlu ZyBtYW5nbGVkTmFtZTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGZ1 bmMtPmdldFJldHVyblR5cGUoKTsKLS0gICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05h bWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNO YW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rv cjxsbHZtOjpUeXBlICo+IEFyZ1R5OwotICAgICAgICAgICAgICAgICAvLyBzcGlydiBPcGVuQ0wg YnVpbHRpbnMgYXJlIHVzZWQgZm9yIGRvdWJsZSB0eXBlcyBvbmx5Ci0tICAgICAgICAgICAgICAg IEFzc2VydChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYgcmV0VHlwZS0+Z2V0VmVjdG9yRWxlbWVu dFR5cGUoKS0+aXNEb3VibGVUeSgpIHx8Ci0rICAgICAgICAgICAgICAgIEFzc2VydChyZXRUeXBl LT5pc1ZlY3RvclR5KCkgJiYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxlbWVudFR5cGUoKS0+aXNEb3Vi bGVUeSgpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXRUeXBlLT5pc1NpbmdsZVZhbHVl VHlwZSgpICYmIHJldFR5cGUtPmlzRG91YmxlVHkoKSk7Ci0tICAgICAgICAgICAgICAgIGlmIChy ZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYgcmV0VHlwZS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKS0+ aXNEb3VibGVUeSgpKSB7Ci0rICAgICAgICAgICAgICAgIGlmIChyZXRUeXBlLT5pc1ZlY3RvclR5 KCkgJiYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkpIHsKLSAgICAgICAg ICAgICAgICAgICAgIEFyZ1R5LnB1c2hfYmFjayhMTFZNVHlwZXM6OkRvdWJsZVZlY3RvclR5cGUp OwotICAgICAgICAgICAgICAgICAgICAgLy8gX0R2V0lEVEggc3VmZml4IGlzIHVzZWQgaW4gdGFy Z2V0IGZpbGUgdG8gZGlmZmVyZW50aWF0ZSBzY2FsYXIKLSAgICAgICAgICAgICAgICAgICAgIC8v IGFuZCB2ZWN0b3IgdmVyc2lvbnMgb2YgaW50cmluc2ljcy4gSGVyZSB3ZSByZW1vdmUgdGhpcwot QEAgLTY1MTEsOCArNjU0MSwxNSBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxj dWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotIAotICAgICAv LyBDYXN0IG9mZnNldHMgdG8gaW50NjQKLSAgICAgT2Zmc2V0cyA9IG5ldyBsbHZtOjpaRXh0SW5z dCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIE9m ZnNldHMsCi0rICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6Oklu dDY0VHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KE9mZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRz KCkpLAotKyAgICAgICAgInN2bV9vZmZzZXRfemV4dCIsIEluc2VydEJlZm9yZSk7Ci0rI2Vsc2UK LSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0 VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSwKLSAgICAg ICAgICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotKyNlbmRpZgotIAotICAgICBp ZiAoIWxsdm06OmlzYTxsbHZtOjpDb25zdGFudFBvaW50ZXJOdWxsPihQdHIpKSB7Ci0gICAgICAg ICAvLyBDYXN0IHB0ciB0byBpbnQ2NAotQEAgLTY1MjAsMTMgKzY1NTcsMzEgQEAgbGx2bTo6VmFs dWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6 VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgICAgIC8vIFZlY3Rvcml6ZSBwdHIKLSAgICAgICAgIGxs dm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVlID0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRU eXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51 bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6Omdl dChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBl LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlmCi0gICAgICAgICBhZGRyZXNzID0g bGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSh1bmRlZkluc2VydFZhbHVlLCBhZGRyZXNz LCBMTFZNSW50MzIoMCksICJzdm1fcHRyX2llaSIsIEluc2VydEJlZm9yZSk7Ci0gICAgICAgICBs bHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgK LSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFk ZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotKyNlbGlmIElTUENfTExWTV9WRVJT SU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotKyNl bHNlCi0rICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRk cmVzc1R5cGUtPmdldE51bUVsZW1lbnRzKCksIGZhbHNlKSwKLSsjZW5kaWYKLSAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHkoSW5z ZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0rCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5k ZWZTaHVmZmxlVmFsdWUgPQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFf MAotKyAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5 cGU6OmdldCgKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5 bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkp OwotKyNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3Rv clR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51 bUVsZW1lbnRzKCkpKTsKLSsjZW5kaWYKLSAgICAgICAgIGFkZHJlc3MgPSBuZXcgbGx2bTo6U2h1 ZmZsZVZlY3Rvckluc3QoYWRkcmVzcywgdW5kZWZTaHVmZmxlVmFsdWUsIHplcm9WZWMsICJzdm1f cHRyX3N2aSIsIEluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAvLyBDYWxjdWxhdGUgYWRkcmVz cwotQEAgLTY1NTMsOSArNjYwOCwxMiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1Nw YWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAqTEkpIHsKLSAgICAgaWYgKHJl dFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgaXNQdHJM b2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMzMkJp dCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIHJldFR5cGUgPSBs bHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rI2Vsc2UKLSAgICAg ICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgcmV0VHlwZS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0gICAgIH0KLS0KLSAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKnJlcyA9IGxHZW5YTG9hZEluc3QocHRyLCByZXRUeXBlLCBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4oTEkpKTsKLSAgICAgQXNzZXJ0KHJlcyk7Ci0gCi1AQCAt NjU4MCwxMSArNjYzOCwxNiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpw cm9jZXNzU1ZNVmVjdG9yTG9hZChsbHZtOjpJbnN0cnVjdGlvbiAqQ0kpCi0gICAgIHB0ciA9IG5l dyBsbHZtOjpJbnRUb1B0ckluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHJldFR5cGUs IDApLCBDSS0+Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIsIENJKTsKLSAgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmxvYWRJbnN0ID0gTlVMTDsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzExXzAKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nh c3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRU eXBlKCksIGxvYWRJbnN0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSS0+ Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgbG9hZEluc3QgPSBu ZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+ Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWdu KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0aW9uICopTlVM TCk7Ci0gI2Vsc2UKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBDSS0+ Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgbG9hZEluc3QgPSBu ZXcgbGx2bTo6TG9hZEluc3QocHRyLCBDSS0+Z2V0TmFtZSgpLCBmYWxzZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbmRpZgotKwot ICAgICBBc3NlcnQobG9hZEluc3QpOwotICAgICByZXR1cm4gbG9hZEluc3Q7Ci0gfQotQEAgLTY2 MDYsNyArNjY2OSwxMSBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9j ZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkgewotICAgICAvLyBOb3RlOiBpdCBk b2Vzbid0IGxvb2sgbGlrZSBhIG5vcm1hbCBjYXNlIGZvciBHZW5YIHRhcmdldAotICAgICBpZiAo dmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBhdXRv IHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBl IDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMV8wCi0rICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQo c2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsVHlwZSktPmdl dE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICB2YWxUeXBlID0gbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZhbFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwot KyNlbmRpZgotICAgICAgICAgdmFsID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWwsIHZhbFR5 cGUsICJzdm1fc3RfdmFsX3B0cnRvaW50IiwgU0kpOwotICAgICB9Ci0gCi1AQCAtNjYzMSwxMiAr NjY5OCw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1W ZWN0b3JTdG9yZShsbHZtOjpJbnN0cnVjdGlvbiAqQ0kpCi0gICAgIHB0ciA9IG5ldyBsbHZtOjpJ bnRUb1B0ckluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHZhbFR5cGUsIDApLCBDSS0+ Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIsIENJKTsKLSAKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KnN0b3JlSW5zdCA9IE5VTEw7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MV8wCi0tICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWwsIGxsdm06OmR5bl9j YXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50 VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVJbnN0LCBD SS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxzZQotLSAgICBz dG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRyLCAobGx2bTo6SW5zdHJ1Y3Rp b24gKilOVUxMKTsKLS0jZW5kaWYKLSsgICAgc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5z dCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0gICAgIEFzc2VydChzdG9yZUluc3Qp OwotICAgICByZXR1cm4gc3RvcmVJbnN0OwotIH0KLUBAIC02NjQ1LDE1ICs2NzA4LDE4IEBAIGxs dm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OmNyZWF0ZUludDhXclJlZ2lvbihsbHZt OjpWYWx1ZSAqVmFsLCBsbHZtOjpWCi0gICAgIGludCB3aWR0aCA9IGctPnRhcmdldC0+Z2V0VmVj dG9yV2lkdGgoKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKkFyZ3NbOF07Ci0tCi0rI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFyZ3NbMF0gPSBsbHZtOjpVbmRl ZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlw ZSwgd2lkdGggKiA0KSk7IC8vIG9sZCB2YWx1ZQotKyNlbHNlCi0gICAgIEFyZ3NbMF0gPSBsbHZt OjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5 cGUsIHdpZHRoICogNCkpOyAvLyBvbGQgdmFsdWUKLS0gICAgQXJnc1sxXSA9IFZhbDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0tICAgIEFyZ3NbMl0gPSBsbHZtOjpDb25zdGFu dEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB2c3RyaWRlCi0tICAgIEFyZ3NbM10gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0 KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB3aWR0aAotLSAgICBBcmdzWzRdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDMyVHlwZSwgNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RyaWRlCi0t ICAgIEFyZ3NbNV0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MTZUeXBl LCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXRzCi0tICAgIEFyZ3Nb Nl0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXJlbnQgd2lkdGggKGlnbm9yZWQpCi0tICAg IEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXNrCi0rI2VuZGlmCi0rICAgIEFy Z3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0rICAgIEFyZ3NbMl0gPSBsbHZtOjpDb25zdGFudEludDo6 Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHZzdHJpZGUKLSsgICAgQXJnc1sz XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIHdpZHRoKTsg Ly8gd2lkdGgKLSsgICAgQXJnc1s0XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQzMlR5cGUsIDQpOyAgICAgLy8gc3RyaWRlCi0rICAgIEFyZ3NbNV0gPSBsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MTZUeXBlLCAwKTsgICAgIC8vIG9mZnNldHMKLSsg ICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUs IDApOyAgICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotKyAgICBBcmdzWzddID0gTWFzazsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXNrCi0g Ci0gICAgIGxsdm06OlR5cGUgKlR5c1s0XTsKLSAKLUBAIC02NzA4LDcgKzY3NzQsMTIgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc0dhdGhlclNjYXR0ZXJQcml2 YXRlKGxsdm06OkNhbGxJbnN0ICoKLSAgICAgICAgIHJldHVybiBOVUxMOwotIAotICAgICBsbHZt OjpWYWx1ZSAqYWRkcmVzcyA9IGNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKHB0ciwgb2Zm c2V0cywgQ0kpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAg ICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChMTFZN VHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpOwotKyNlbHNlCi0gICAgIGxsdm06OlR5cGUgKmk4 VmVjVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0 aCAqIDQpOwotKyNlbmRpZgotKwotICAgICBib29sIGlzSW50OCA9ICh2YWx1ZS0+Z2V0VHlwZSgp LT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0gCi0gICAgIEFzc2Vy dChhZGRyZXNzICYmICJCYWQgZ2F0aGVyL3NjYXR0ZXIgYWRkcmVzcyEiKTsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDA2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODI5 ZWE0ODM5MWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLUZyb20gYmIzZjQ5M2Qx ZmJkNDVjNzllMWQ5ZGVlNjdhMDQzMGJhMzEzZWFhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0 ZTogVHVlLCAxOSBKYW4gMjAyMSAxMTowNzozMyAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXhl ZCBpZmRlZnMgZm9yIExMVk1fMTEKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAgNiArKystLS0KLSBz cmMvb3B0LmNwcCB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTIg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNw cCBiL3NyYy9jdHguY3BwCi1pbmRleCAyYTcyZTY4MzcuLjUyN2EwMmYzMCAxMDA2NDQKLS0tLSBh L3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTE2OTEsNyArMTY5MSw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUg KnZhbHVlLCBjb25zdCBsbHZtOjpUCi0gICAgIGlmIChsbHZtOjpDb25zdGFudCAqY29uc3RfdmFs ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q29uc3RhbnQ+KHZhbHVlKSkgewotICNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICByZXQgPSBsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpLCBjb25zdF92YWwp OwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgcmV0ID0KLSAgICAgICAg ICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVk IGludD4oZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LCBjb25zdF92YWwpOwot ICNlbHNlIC8vIExMVk0gMTIuMCsKLUBAIC0zMTQ4LDcgKzMxNDgsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06 OlR5cGUgKnZlYwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAg IGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KAotICAgICAgICAgdmVjVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwgbGx2bTo6Q29uc3Rh bnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpnLT5jdHgpKSk7Ci0tI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0K LSAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5z aWduZWQgaW50Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxs dm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLUBAIC0zNjg4LDcgKzM2ODgsNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQt PmdldEVsZW1lbnRUeXBlKCkpKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAg ICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2Fz dDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6 OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotICNlbHNlCi1kaWZmIC0tZ2l0 IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggMTc4OWI4NDc2Li4zZmYxOTFhMGEg MTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0xMDQ1LDcg KzEwNDUsNyBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNp Y0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg ICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2 eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAg ICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0gICAgICAgICAgICAgICAg ICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdl dEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5 YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotQEAgLTE0NzIsNyAr MTQ3Miw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06 OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNlCi0gICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqemVyb01hc2sgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6Omdl dFNwbGF0KGN2LT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lP TiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY3YtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRz KCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1AQCAtMTQ5NSw3ICsxNDk1LDcgQEAg c3RhdGljIGxsdm06OlZhbHVlICpsR2V0QmFzZVB0ckFuZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0 cnMsIGxsdm06OlZhbHVlICoqb2Zmc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9wX3Zhcl90eXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENf TExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYm9wX3Zhcl90eXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwg ZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi1AQCAtMjgwMyw3ICsyODAzLDcgQEAgc3RhdGlj IGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0 U3BsYXQoY2FsbEluc3QtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRW ZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KGNhbGxJbnN0LT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpLCBm YWxzZX0sCi0gCi1AQCAtMzEwMCw3ICszMTAwLDcgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNr ZWRMb2FkKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCwgbGx2bTo6QmFzaWNCbG9jazo6aXRlcmEK LSAgICAgICAgIHsKLSAgICAgICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gbGx2bTo6UG9p bnRlclR5cGU6OmdldChjYWxsSW5zdC0+Z2V0VHlwZSgpLCAwKTsKLSAgICAgICAgICAgICBwdHIg PSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBwdHJUeXBlLCAicHRyX2Nhc3RfZm9yX2xvYWQi LCBjYWxsSW5zdCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBsb2Fk ID0gbmV3IGxsdm06OkxvYWRJbnN0KAotICAgICAgICAgICAgICAgICBwdHIsIGNhbGxJbnN0LT5n ZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2 bTo6TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXRO YXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotQEAgLTM0NTksNyArMzQ1OSw3 IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50NjRf dCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGxHRVBJbnN0KGJhc2VQ dHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNlcnRCZWZvcmUpOwotICAgICBw dHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHR5 cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8x MV8wCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRC ZWZvcmUpOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2Fk SW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5n ZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotQEAgLTYxODMsNyArNjE4Myw3IEBAIGJvb2wg UmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0g ICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICB7c3RhdGlj X2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBm YWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjE5NSw3ICs2MTk1LDcgQEAgYm9v bCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpD b25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y V2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNl bGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICAgICAg ICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y V2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi0gICAgICAgICAgICAgICAg ICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLUBAIC02NTY3LDcgKzY1 NjcsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0 dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICAgICAgICAgbGx2bTo6Q29uc3RhbnQg Knplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElTUENfTExW TV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAg ICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5n ZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLSAgICAgICAgIGxsdm06OkVsZW1lbnRD b3VudDo6Z2V0KApkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5w YXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDFiOTc1Zjg5NmM3ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjAg KzAsMCBAQAotRnJvbSA2MmY1YTZjMzdiZjI2ZmMyNWE3Y2Y4MTg2ODA1MmQzNDcyODc0NjEwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVz aGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIzIE1hciAyMDIxIDIzOjA3OjMwIC0wNzAw Ci1TdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBnZW5lcmF0ZSBmdW5jdGlvbiBtYXNrIHdoZW4gaXQg aXMgbm90IHJlcXVpcmVkCi0KLS0tLQotIHNyYy9jdHguY3BwICAgICAgICAgICAgICAgICAgICB8 IDM5ICsrKysrKysrKysrKysrLS0tLS0tLQotIHRlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNw YyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5n ZWQsIDkwIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHgu Y3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDUyN2EwMmYzMC4uOWU3NzVmYzVjIDEwMDY0NAotLS0t IGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMjMxLDEwICsyMzEsMTggQEAg RnVuY3Rpb25FbWl0Q29udGV4dDo6RnVuY3Rpb25FbWl0Q29udGV4dChGdW5jdGlvbiAqZnVuYywg U3ltYm9sICpmdW5TeW0sIGxsdm06OkYKLSAgICAgaW50ZXJuYWxNYXNrUG9pbnRlciA9IEFsbG9j YUluc3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImludGVybmFsX21hc2tfbWVtb3J5Iik7Ci0gICAg IFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBpbnRlcm5hbE1hc2tQb2ludGVyKTsKLSAKLS0gICAg ZnVuY3Rpb25NYXNrVmFsdWUgPSBMTFZNTWFza0FsbE9uOwotLQotLSAgICBmdWxsTWFza1BvaW50 ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5cGUsICJmdWxsX21hc2tfbWVtb3J5Iik7 Ci0tICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICAv LyBJZiB0aGUgZnVuY3Rpb24gZG9lc24ndCBoYXZlIF9fbWFzayBpbiBwYXJhbWV0ZXJzLCB0aGVy ZSBpcyBubyBuZWVkIHRvCi0rICAgIC8vIGhhdmUgZnVuY3Rpb24gbWFzawotKyAgICBpZiAoKGZ1 bmMtPkdldFR5cGUoKS0+aXNFeHBvcnRlZCAmJgotKyAgICAgICAgIChsZi0+Z2V0RnVuY3Rpb25U eXBlKCktPmdldE51bVBhcmFtcygpID09IGZ1bmMtPkdldFR5cGUoKS0+R2V0TnVtUGFyYW1ldGVy cygpKSkgfHwKLSsgICAgICAgIChmdW5jLT5HZXRUeXBlKCktPmlzVW5tYXNrZWQpIHx8IChmdW5j LT5HZXRUeXBlKCktPmlzVGFzaykpIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTlVM TDsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IE5VTEw7Ci0rICAgIH0gZWxzZSB7Ci0rICAg ICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IExMVk1NYXNrQWxsT247Ci0rICAgICAgICBmdWxsTWFz a1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5cGUsICJmdWxsX21hc2tfbWVt b3J5Iik7Ci0rICAgICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxPbiwgZnVsbE1hc2tQb2ludGVy KTsKLSsgICAgfQotIAotICAgICBibG9ja0VudHJ5TWFzayA9IE5VTEw7Ci0gICAgIGJyZWFrTGFu ZXNQdHIgPSBjb250aW51ZUxhbmVzUHRyID0gTlVMTDsKLUBAIC0zODksMjAgKzM5NywyNiBAQCBs bHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRDdXJyZW50QmFzaWNCbG9j aygpIHsgcmV0dXJuIGJibG9jazsgfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0 Q3VycmVudEJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAqYmIpIHsgYmJsb2NrID0gYmI7IH0K LSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVuY3Rpb25NYXNrKCkg eyByZXR1cm4gZnVuY3Rpb25NYXNrVmFsdWU7IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6R2V0RnVuY3Rpb25NYXNrKCkgeyByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gZnVu Y3Rpb25NYXNrVmFsdWUgOiBMTFZNTWFza0FsbE9uOyB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdldEludGVybmFsTWFzaygpIHsgcmV0dXJuIExvYWRJbnN0KGludGVy bmFsTWFza1BvaW50ZXIsIE5VTEwsICJsb2FkX21hc2siKTsgfQotIAotIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFzaygpIHsKLS0gICAgcmV0dXJuIEJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVybmFsTWFzaygpLCBmdW5jdGlv bk1hc2tWYWx1ZSwgImludGVybmFsX21hc2smZnVuY3Rpb25fbWFzayIpOwotKyAgICByZXR1cm4g ZnVsbE1hc2tQb2ludGVyID8gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFuZCwg R2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVybmFsX21hc2smZnVuY3Rpb25fbWFzayIp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHZXRJbnRlcm5hbE1hc2soKTsKLSB9Ci0g Ci0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bGxNYXNrUG9pbnRlcigp IHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlcjsgfQotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7Ci0rICAgIHJldHVybiBmdWxsTWFza1BvaW50 ZXIgPyBmdWxsTWFza1BvaW50ZXIgOiBpbnRlcm5hbE1hc2tQb2ludGVyOwotK30KLSAKLSB2b2lk IEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEZ1bmN0aW9uTWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUp IHsKLS0gICAgZnVuY3Rpb25NYXNrVmFsdWUgPSB2YWx1ZTsKLS0gICAgaWYgKGJibG9jayAhPSBO VUxMKQotLSAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7 Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIgIT0gTlVMTCkgewotKyAgICAgICAgZnVuY3Rpb25N YXNrVmFsdWUgPSB2YWx1ZTsKLSsgICAgICAgIGlmIChiYmxvY2sgIT0gTlVMTCkKLSsgICAgICAg ICAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgfQot IH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEJsb2NrRW50cnlNYXNrKGxsdm06 OlZhbHVlICp2YWx1ZSkgeyBibG9ja0VudHJ5TWFzayA9IHZhbHVlOyB9Ci1AQCAtNDEwLDcgKzQy NCw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6 VmFsdWUgKnZhbHVlKSB7IGJsb2NrRW50cnlNYXNrCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpTZXRJbnRlcm5hbE1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0gICAgIFN0b3JlSW5zdCh2 YWx1ZSwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gICAgIC8vIGtsdWRnZSBzbyB0aGF0IF9fbWFz ayByZXR1cm5zIHRoZSByaWdodCB2YWx1ZSBpbiBpc3BjIGNvZGUuCi0tICAgIFN0b3JlSW5zdChH ZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBpZiAoZnVsbE1hc2tQb2ludGVy KQotKyAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0g fQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50ZXJuYWxNYXNrQW5kKGxsdm06 OlZhbHVlICpvbGRNYXNrLCBsbHZtOjpWYWx1ZSAqdGVzdCkgewotQEAgLTEyNjUsNyArMTI4MCw3 IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3VycmVudExhbmVzUmV0dXJuZWQoRXhwciAq ZXhwciwgYm9vbCBkb0NvaGVyZW5jZUNoZWNrCi0gICAgICAgICAvLyBsYW5lcyBoYXZlIHJldHVy bmVkCi0gICAgICAgICBpZiAoZG9Db2hlcmVuY2VDaGVjaykgewotICAgICAgICAgICAgIC8vIGlm IG5ld1JldHVybmVkTGFuZXMgPT0gZnVuY3Rpb25NYXNrVmFsdWUsIGdldCBvdXQgb2YgaGVyZSEK LS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NBbGxFcXVhbChmdW5jdGlvbk1h c2tWYWx1ZSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNt cCA9IE1hc2tzQWxsRXF1YWwoR2V0RnVuY3Rpb25NYXNrKCksIG5ld1JldHVybmVkTGFuZXMpOwot ICAgICAgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJEb1JldHVybiA9IENyZWF0ZUJhc2ljQmxv Y2soImRvX3JldHVybiIpOwotICAgICAgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJOb1JldHVy biA9IENyZWF0ZUJhc2ljQmxvY2soIm5vX3JldHVybiIpOwotICAgICAgICAgICAgIEJyYW5jaElu c3QoYkRvUmV0dXJuLCBiTm9SZXR1cm4sIGNtcCk7Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRl c3RzL2Z1bGxfbWFzay5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjCi1uZXcg ZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5hYzBiMGJjYTMKLS0tLSAvZGV2L251 bGwKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYwotQEAgLTAsMCArMSw2MyBA QAotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfRVhQT1JUIC0tZW1pdC1sbHZtLXRleHQgLU8w IC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0Lmxs IC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19FWFBPUlQgJXMKLSsKLSsvLyBSVU46ICV7aXNwY30g JXMgLURJU1BDX1VOTUFTS0VEIC0tZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0Lmxs Ci0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hF Q0tfSVNQQ19VTk1BU0tFRCAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfTk9RVUFM SUYgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46IEZpbGVD aGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX05PUVVBTElG ICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19UQVNLIC0tZW1pdC1sbHZtLXRleHQg LU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0 LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19UQVNLICVzCi0rCi0rc3RydWN0IFBhcmFtZXRl cnMgewotKyAgICBmbG9hdCAqdm91dDsKLSsgICAgaW50IHBhcmFtOwotK307Ci0rCi0rI2lmZGVm IElTUENfRVhQT1JUCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6IGRlZmluZSB2b2lkIEBzaW1wbGVf ZXhwb3J0X19fCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxs b2NhCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6IGRlZmluZSB2b2lkIEBzaW1wbGVfZXhwb3J0KAot Ky8vIENIRUNLX0lTUENfRVhQT1JULU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLStl eHBvcnQgdm9pZCBzaW1wbGVfZXhwb3J0KHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1l dGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHBy b2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0g cHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19V Tk1BU0tFRAotKy8vIENIRUNLX0lTUENfVU5NQVNLRUQ6IGRlZmluZSB2b2lkIEBzaW1wbGVfdW5t YXNrZWQKLSsvLyBDSEVDS19JU1BDX1VOTUFTS0VELU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBh bGxvY2EKLSt1bm1hc2tlZCB2b2lkIHNpbXBsZV91bm1hc2tlZCh2b2lkICp1bmlmb3JtIF9wKSB7 Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7 Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJv Z3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0r I2lmZGVmIElTUENfTk9RVUFMSUYKLSsvLyBDSEVDS19JU1BDX05PUVVBTElGOiBkZWZpbmUgdm9p ZCBAc2ltcGxlCi0rLy8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogJWZ1bGxfbWFza19tZW1vcnkgPSBh bGxvY2EKLSt2b2lkIHNpbXBsZSh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMg KnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFt SW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dy YW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfVEFTSwot KwotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNpbXBsZV90YXNrCi0rLy8gQ0hF Q0tfSVNQQ19UQVNLLU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBDSEVDS19J U1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50cnlfcG9pbnRfXwotKy8vIENIRUNLX0lT UENfVEFTSzogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBDSEVDS19JU1BDX1RBU0s6 IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50cnlfcG9pbnQoCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLLU5P VDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt0YXNrIHZvaWQgc2ltcGxlX3Rhc2sodm9p ZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVy cyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAg ICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7 Ci0rfQotK2V4cG9ydCB2b2lkIHNpbXBsZV9lbnRyeV9wb2ludCh2b2lkICp1bmlmb3JtIHBhcmFt ZXRlcnMsIHVuaWZvcm0gaW50IGRpbTAsIHVuaWZvcm0gaW50IGRpbTEsIHVuaWZvcm0gaW50IGRp bTIpIHsKLSsgICAgbGF1bmNoW2RpbTAsIGRpbTEsIGRpbTJdIHNpbXBsZV90YXNrKHBhcmFtZXRl cnMpOwotK30KLSsjZW5kaWYKLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4 NDEzZDhiNzg4Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotRnJvbSBhZmFkMTQy MjdkOTIwNGEzYzhhNjI2Y2E2MDhmNWI0M2MzMjE4ZmU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1E YXRlOiBUdWUsIDQgTWF5IDIwMjEgMTE6NDM6NTIgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4 ZWQgSVNQQyBnZW4gYnVpbGQgZm9yIExMVk0xMgotCi0tLS0KLSBzcmMvY3R4LmNwcCB8ICA0ICsr KysKLSBzcmMvb3B0LmNwcCB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggMGM3 MDUwNTkxLi5mN2RjMDY5MzkgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0zNzM4LDcgKzM3MzgsMTEgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkdlblhTaW1kQ0ZBbnkobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0gCi0gbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpWYWx1ZSAqZGVmYXVsdHMpIHsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKSk7Ci0rI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIGxsdm06OkZpeGVkVmVj dG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHZhbHVl LT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0g ICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSB7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQ Q19MTFZNXzExXzAKLSAgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6Omdl dFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotZGlmZiAtLWdpdCBhL3NyYy9vcHQu Y3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGNlYTRhZmEyMy4uNGUzM2Q2YjFhIDEwMDY0NAotLS0t IGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjkxNiw5ICsyOTE2LDEzIEBA IHN0YXRpYyBsbHZtOjpGdW5jdGlvbiAqbEdlblhNYXNrZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCwgYm9vbCBpc1N0b3JlCi0gCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2Vu WFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7 Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFzc2VydChs bHZtOjppc2E8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSkpOwotKyAgICBs bHZtOjpGaXhlZFZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpG aXhlZFZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICBBc3NlcnQobGx2 bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0tCi0gICAgIGxsdm06 OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl Pih2YWwtPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2Yy XzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAgICAgQXNzZXJ0KHZhbFZlY1R5 cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSAKLUBAIC0y OTQyLDkgKzI5NDYsMTMgQEAgc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChs bHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjoKLSB9Ci0gCi0gc3RhdGlj IGxsdm06OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlR5 cGUgKnJldFR5cGUsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0rI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6Rml4 ZWRWZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0rICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZSAqcmV0 VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSk7 Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBl KSk7Ci0tCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZW5kaWYKLSAgICAgQXNzZXJ0KGxsdm06 OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICAgICBBc3Nl cnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpKTsKLSAgICAgQXNzZXJ0KHJl dFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLUBA IC01NDg1LDggKzU0OTMsMTMgQEAgc3RhdGljIHZvaWQgbENyZWF0ZUJsb2NrTERVc2UobGx2bTo6 SW5zdHJ1Y3Rpb24gKmN1cnJJbnN0LCBzdGQ6OnZlY3RvcjxsbHZtOjpFeHQKLSAgICAgICAgIH0g ZWxzZSBpZiAoYXV0byBnYXRoZXIgPSBsR2V0UHNldWRvR2F0aGVyKGxsdm06OmR5bl9jYXN0PGxs dm06Okluc3RydWN0aW9uPih1aS0+Z2V0VXNlcigpKSkpIHsKLSAgICAgICAgICAgICAvLyBDb2xs ZWN0IGlkeHMgZnJvbSBnYXRoZXIgYW5kIGZpeCB1c2VycwotICAgICAgICAgICAgIGxsdm06OlZh bHVlICpyZXMgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQoZ2F0aGVyLT5nZXRUeXBlKCkpOwotLSAg ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsK LS0gICAgICAgICAgICAgICAgICsraSkgewotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGVuZCA9IGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmVzLT5nZXRUeXBlKCkpLT5nZXROdW1F bGVtZW50cygpOyBpIDwgZW5kOwotKyAgICAgICAgICAgICAgICAgKytpKQotKyNlbHNlCi0rICAg ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4ocmVzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOyAr K2kpCi0rI2VuZGlmCi0rICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAvLyBHZXQgZWxl bWVudCB2aWEgSUVJCi0gICAgICAgICAgICAgICAgIHJlcyA9IGxsdm06Okluc2VydEVsZW1lbnRJ bnN0OjpDcmVhdGUocmVzLCBFRUlzW3B0clVzZS5pZHhzW2N1cnJfaWR4KytdXSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCBpKSwKLUBAIC01NTIyLDEwICs1NTM1 LDExIEBAIHN0YXRpYyBib29sIGxWZWN0b3JpemVHRVBzKGxsdm06OlZhbHVlICpwdHIsIHN0ZDo6 dmVjdG9yPFB0clVzZT4gJnB0clVzZXMsIHN0ZDo6Ci0gCi0gICAgIC8vIEFkanVzdCB2YWx1ZXMg Zm9yIHZlY3RvciBsb2FkCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8w Ci0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JU eXBlPih0eXBlKSkgewotKyAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpCi0gI2Vsc2UKLS0gICAgaWYgKGF1dG8gdmVjVHkgPSBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih0eXBlKSkgewotKyAgICBpZiAoYXV0byB2 ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHR5cGUpKQotICNlbmRpZgot KyAgICB7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQgc2l6ZQotICAgICAgICAgdF9z aXplIC89IHZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotICAgICAgICAgLy8gR2V0IHNpbmdsZSBl bGVtZW50IHR5cGUKLUBAIC02NDc3LDcgKzY0OTEsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVz c1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBs bAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgT2Zm c2V0cywKLSAgICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50 NjRUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4oT2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMo KSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxs bHZtOjpGaXhlZFZlY3RvclR5cGU+KE9mZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRz KCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4dCIsIEluc2VydEJlZm9yZSk7Ci0gI2Vsc2UK LSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0 VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSwKLUBAIC02 NDkyLDcgKzY1MDYsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVH YXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICAgICAgICAgbGx2bTo6 VmFsdWUgKnVuZGVmSW5zZXJ0VmFsdWUgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhl ZFZlY3RvclR5cGU6OmdldCgKLS0gICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUs IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxl bWVudHMoKSkpOwotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1l bnRzKCkpKTsKLSAjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRW ZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1AQCAtNjUwMSwxNyArNjUxNSwxNiBAQCBs bHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVz cyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCks Ci0gI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotLSAgICAgICAgICAg IHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVs ZW1lbnRzKCksIGZhbHNlfSwKLSsgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4 ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAj ZWxzZQotLSAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFk ZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZSksCi0rICAgICAgICAgICAgbGx2bTo6 RWxlbWVudENvdW50OjpnZXQobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihh ZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlKSwKLSAjZW5kaWYKLSAgICAgICAg ICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHko SW5zZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0gCi0gICAgICAgICBsbHZtOjpWYWx1ZSAq dW5kZWZTaHVmZmxlVmFsdWUgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3Rv clR5cGU6OmdldCgKLS0gICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMo KSkpOwotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkp KTsKLSAjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0 b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JO dW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1AQCAtNjU0Miw3ICs2NTU1LDggQEAgbGx2bTo6SW5z dHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvckxvYWQobGx2bTo6TG9hZElu c3QgKkxJKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVlOwotICAgICAgICAgYXV0byBzY2Fs YXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExM Vk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotLSAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxh clR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXROdW1F bGVtZW50cygpKTsKLSsgICAgICAgIHJldFR5cGUgPQotKyAgICAgICAgICAgIGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVj dG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotICNlbHNlCi0gICAgICAgICBy ZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJldFR5cGUtPmdldFZl Y3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgotQEAgLTY2MDQsNyArNjYxOCw4IEBAIGxsdm06 Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JTdG9yZShsbHZtOjpT dG9yZUluc3QgKlNJKSB7Ci0gICAgIGlmICh2YWxUeXBlLT5nZXRTY2FsYXJUeXBlKCktPmlzUG9p bnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMzMkJp dCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgICAgIHZhbFR5cGUgPSBs bHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rICAgICAgICB2YWxU eXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBl LCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1F bGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgdmFsVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6 OmdldChzY2FsYXJUeXBlLCB2YWxUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSAjZW5k aWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2ggYi9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBkM2VhNjc4Mjg1ODIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEwOSArMCwwIEBA Ci1Gcm9tIDk3YjEzYzMyMTMyZTI3MDRhNWUzZTdiMmVhZTQ5ZDg1NGQwODdlM2UgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZh QGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAyMSAxMTozMTo1NSAtMDcwMAotU3ViamVj dDogW1BBVENIXSBVcGRhdGVkIGJ1aWx0aW5zLWNtKiBmb3Igc3dpdGNoIHRvIExMVk0xMgotCi0t LS0KLSBidWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCB8IDIzNCArKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwgfCAyMzIgKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAyMzMg aW5zZXJ0aW9ucygrKSwgMjMzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVpbHRpbnMv YnVpbHRpbnMtY20tMzIubGwgYi9idWlsdGlucy9idWlsdGlucy1jbS0zMi5sbAotaW5kZXggMzJk ZWJmMzJlLi40ODFiYmRjNDggMTAwNjQ0Ci0tLS0gYS9idWlsdGlucy9idWlsdGlucy1jbS0zMi5s bAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLUBAIC01NTcsNyArNTU3LDcgQEAg JF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2RUV2diA9IGNvbWRhdCBhbnkKLSBA LnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs1IHggaThdIGMiJTA4WFww MCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNj KGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQp ICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MTgsNyArNjE4LDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlM aTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNsYXJlIDwxIHggaTg+IEBsbHZtLmdlbngu cmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMy KSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1Nf KDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4Pikg IzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYz NCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4Pikg IzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAl NSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012 YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJu YWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4 IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8 MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHgg aTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBh bGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg c2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4 IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAsNyArODkwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4 dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4s IDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAl MyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVm aW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkzMiw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4 PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi OF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHgg aTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxv Y2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1A QCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwx NiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLSAg ICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4 PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAs NyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3 NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0r ZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHgg aTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fc1MxX1MxX3Uy Q00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkxNi52MWkxNi5p MTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDc0LDcgKzEwNzQs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xMTQzLDcgKzExNDMsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1 MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9z U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcgKzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRf X3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1Nf KDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+ LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0g YWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5l IGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1 MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25l eHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2 PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7 Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1 OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBp MTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9 IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxp Z24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDcz LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAg JTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5l IGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhf c1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NT Xyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzExIHsKLStkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2 X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDE2IHgg aTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAgLTE1MTUsNyArMTUxNSw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2 NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNTI5LDcgKzE1Mjks NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxv Y2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAsNyArMTczMCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRf X2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFp MzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMy PiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0 IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEg eCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0x NzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4 IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAg JTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4s IGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTE5MzIsNyAr MTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikg IzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFs bG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWdu IDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkw LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikg IzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2 NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJu YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAg ZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIs IGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5h bCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4 IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMy PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi Ml9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwg PDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8 NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkz Mj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWdu IDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHgg aTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikg IzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2Nh IDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIK LUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBp MzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkz Mj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBh bGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFs aWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8 MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIg eCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgo aTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQp ICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0 LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewot K2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYwLDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18o PDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBf Wk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQg eCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0 IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4 IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0 LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHgg aTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAl MyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3 ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1w bF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEg ewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBp OD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9l eHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJv ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hT Xyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+ KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAg LTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHgg aTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24g MgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0 X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICszMTU4LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHgg aTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4 IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0g YWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24g OAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBp OD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAj MTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgot QEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4s IDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcg ewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAg LTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJv ZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0g YWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJD TXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNf KDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyArMzI5NCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEg eCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBp MTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQK LSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBp MTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX3RTMV9TMV91 MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRf dFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0 IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQg PSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFs aWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBA X1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX190UzFfUzFfdQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8 MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwz MiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAg JTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkx Nj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4 IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9fdFMxX1Mx X3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2 IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx NiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4 dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2 LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjUwLDcg KzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4p ICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NjQsNyArMzY2NCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8 MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzY3OCw3ICszNjc4LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmlu ZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0 X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjkyLDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNf KDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMxNiB7Ci0rZGVmaW5lIGludGVy bmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4 IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGln biAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2Eg PDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyArMzcwNiw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDgg eCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18o PDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4s IGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBh bGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0zNzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx Nl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmlu ZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIg eCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkz MiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9falMx X1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwx IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMy PiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pT Xyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4 IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0g YWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGln biA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHgg aTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikg IzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYK LUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2Rl dGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIgeCBp MzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkz Mj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0g YWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwg YWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkz Mj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9falMxX1MxX3UK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQg ewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihp MzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00 NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi Ml9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pT Xyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRl cm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8 NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxp Z24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcgKzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0 IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFs IDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHgg aTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAz MgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDgg eCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBp MzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFs IDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2 IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFs aWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxv Y2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9q U18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJf alNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAg JTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBp OCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLStkZWZpbmUgaW50 ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwg aTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAlOSA9 IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLUBAIC00 OTg4LDcgKzQ5ODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pON2RldGFpbHMxNl9jbV9w cmludF9mb3JtYXRJTGkxMjhFRUV2MTVjbV9zdXJmYWNlaW5kZXhqdQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19k b19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzMikg IzI2ICFkYmcgITExNyB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMy LCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMzIpICMyNiAhZGJnICExMTcg ewotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTExID0gYWxsb2NhIGk4KiwgYWxp Z24gNAotICAgJTEyID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTUwNjksNyArNTA2OSw3IEBA IGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQs IGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0gICAlNjcgPSBsb2FkIGk2NCwgaTY0KiAlMTMsIGFs aWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5Ci0gICAlNjggPSBsb2FkIDw1IHggaTMyPiwgPDUg eCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJnICExNjAsICF0YmFhICE3Ci0gICBjYWxsIHZvaWQg QF9aTjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJDTXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMjMsIGkzMiogZGVyZWZlcmVuY2VhYmxlKDQpICUxOSwgaTMyKiogZGVyZWZlcmVuY2Vh YmxlKDQpICUxNCwgaTMyICU2NiwgaTY0ICU2NywgPDUgeCBpMzI+ICU2OCksICFkYmcgITE2MQot LSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2ln bmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMjIsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSsgICU2OSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYy LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSAgIGJyIGxhYmVsICU3MCwgIWRiZyAhMTYzCi0g Ci0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHBy ZWRzID0gJTYwCi1AQCAtNTE4Nyw3ICs1MTg3LDcgQEAgZGVmaW5lIGludGVybmFsIDw1IHggaTMy PiBAX1oxN2dldF9hdXhpbGlhcnlfc3RydigpICMyOCBjb21kYXQgIWRiZyAhMTc4IHsKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9 IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLUBAIC01MTk2LDcgKzUxOTYs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE5NgotICAgJTkgPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE5NgotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlOCwgaTgqIGFsaWduIDMyICU5LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTEwID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5p Zm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSsgICUxMCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1X cml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNSksICFkYmcgITE5OAot ICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxhYmVsICUxMSwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFi ZWw+OjExOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMK LUBAIC01MjA0LDcgKzUyMDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAgJTEzID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTYgdG8gaTgqLCAhZGJnICEyMDEKLSAgICUx NCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyIHRvIGk4KiwgIWRiZyAhMjAxCi0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUxMywg aTgqIGFsaWduIDMyICUxNCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwMSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNo RW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2ln bmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNiksICFkYmcg ITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNv ZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0 ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiAlNiksICFkYmcgITIwMgotICAgYnIgbGFiZWwgJTE2LCAhZGJnICExOTkKLSAKLSA7 IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlMTEsICUzCi1AQCAtNTI3OSw3ICs1Mjc5LDcgQEAgZGVmaW5lIGludGVybmFsIHZvaWQgQF9a TjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJDTXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGUK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLStkZWZpbmUgaW50ZXJu YWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotICAgcmV0IGkzMiAtMSwgIWRi ZyAhMjM3Ci0gfQotIAotQEAgLTg4NjAsNyArODg2MCw3IEBAIGRlY2xhcmUgZHNvX2xvY2FsIHZv aWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJpbnNpY19pbXBsX3N2bV9zY2F0dGVyX3dyaXRlSWlM aTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdlbnguc3ZtLnNjYXR0ZXIudjFpMS52MWk2NC52MWkz Mig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4sIDwxIHggaTMyPikgIzI3Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1Vu aWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3Jt STEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyKSAjMjUgY29t ZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxs b2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24gMQotQEAgLTg4NjksNyArODg2 OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hF bmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gICAlNyA9IGJpdGNhc3QgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY0NwotICAgJTggPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NDcKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwg aTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NDcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8o aTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU1KSwg IWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0gICByZXQgaTEgJTksICFkYmcgITE2 NDkKLSB9Ci0gCi1AQCAtODg3Nyw3ICs4ODc3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUK LSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIG5vY2FwdHVyZSB3 cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVhZG9ubHksIGkzMiwgaTEpICMzMgotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJ MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFy eWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1 IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9 IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBAIC04ODg2LDEy ICs4ODg2LDEyIEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJz d2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlCi0gICAlNyA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY1MgotICAgJTggPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NTIKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAz MiAlOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NTIsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx ICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTQsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0gICByZXQgaTEgJTksICFk YmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhp bnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE2NTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVj bGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24gMQotQEAgLTg5MTQsNyArODkxNCw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2NTcKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1NwotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGkz MiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAl NSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSAg IGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcgITE2NTkKLSAKLSA7IDxsYWJl bD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwot QEAgLTg5MjIsNyArODkyMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjcgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNyB0byBpOCosICFkYmcgITE2NjEKLSAgICUy OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2MQot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjcs IGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjYxLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMTY2MgotKyAgJTI5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkxICUyOSwgbGFiZWwgJTYwLCBsYWJlbCAlMzAsICFk YmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04OTMwLDcgKzg5MzAsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTkgdG8g aTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJn ICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSAgIGJyIGkxICUzNCwg bGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITE2NjcKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC04OTM4LDcg Kzg5MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgJTM4ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWdu IDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjksICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMiks ICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITE2 NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlMzUKLUBAIC04OTQ2LDcgKzg5NDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEzIHRvIGk4Kiwg IWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0MywgaTMyIDY0LCBpMSBmYWxzZSksICFk YmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcgITE2 NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCksICFkYmcgITE2NzQKLSAgIGJyIGkxICU0NCwgbGFi ZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2NzUKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDAKLUBAIC04OTU0LDcgKzg5 NTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMTY3NwotICAgJTQ4ID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjc3Ci0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMy ICU0OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzcsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNiksICFk YmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITE2NzkK LSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlNDUKLUBAIC04OTYyLDcgKzg5NjIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE3IHRvIGk4KiwgIWRi ZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcg ITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUx LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITE2ODIK LSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFkYmcgITE2ODIKLSAgIGJyIGkxICU1NCwgbGFiZWwg JTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC04OTcwLDcgKzg5NzAs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMTY4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjg1Ci0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1 OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl NTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBh bGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTIwKSwgIWRi ZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjYwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0 NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTg5NzksNyArODk3OSw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4IHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAl NSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMDUsNyArOTAwNSw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwg YWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMzEsNyArOTAzMSw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLStkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxp Z24gMSwgIXRiYWEgITE5MwotQEAgLTkwNTcsNyArOTA1Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24g MSwgIXRiYWEgITE5MwotQEAgLTkwODMsNyArOTA4Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Vu aWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTkxMDksNyArOTEwOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZv Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTkxMzUsNyArOTEzNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEg ITE5MwotQEAgLTkxNjEsNyArOTE2MSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTk4NCw3ICs5OTg0LDcgQEAgZGVmaW5lIGludGVybmFsIGkzMiBAX1pON2RldGFp bHMxOF9jbV9wcmludF90eXBlX29jbElQdkVFTlNfMThTSEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIwNTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNTUgewotICAg JTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3Jp dGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTEwMDA3LDcgKzEwMDA3LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU1IHRv IGk4KiwgIWRiZyAhMjA1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTMyIDY0LCBpMSBmYWxz ZSksICFkYmcgITIwNTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJn ICEyMDU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU2KSwgIWRiZyAhMjA1OAotICAgYnIgaTEgJTI0LCBs YWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMjA1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtMTAwMTUsNyAr MTAwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTcgdG8gaTgqLCAhZGJnICEyMDYxCi0gICAlMjggPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjEKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24g MzIgJTI4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2MSwgIXRiYWEuc3RydWN0ICExOTcK LS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTgpLCAhZGJn ICEyMDYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICEyMDYzCi0g Ci0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHBy ZWRzID0gJTI1Ci1AQCAtMTAwMjMsNyArMTAwMjMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRl cgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTkgdG8gaTgqLCAhZGJn ICEyMDY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITIwNjUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MjA2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICEyMDY2Ci0r ICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxICUxMCksICFkYmcgITIwNjYKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYw LCBsYWJlbCAlMzUsICFkYmcgITIwNjcKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0xMDAzMSw3ICsxMDAzMSw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICEyMDY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjkKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4 LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUz OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUz NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGln biAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAh MjA3MAotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMjA3MQotIAot IDsgPGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICUzNQotQEAgLTEwMDM5LDcgKzEwMDM5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIK LSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMyB0byBpOCosICFkYmcg ITIwNzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4Kiwg IWRiZyAhMjA3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBh bGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEy MDczLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDc0Ci0r ICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2 MCwgbGFiZWwgJTQ1LCAhZGJnICEyMDc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtMTAwNDcsNyArMTAwNDcs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFy eWluZ1dyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMjA3NwotICAgJTQ4ID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc3Ci0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0 OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl NDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCBhbGlnbiAxICUxNiksICFkYmcgITIwNzgKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl NDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNiksICFkYmcg ITIwNzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITIwNzkKLSAK LSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJl ZHMgPSAlNDUKLUBAIC0xMDA1NSw3ICsxMDA1NSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVy Ci0gICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJn ICEyMDgxCi0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITIwODEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MjA4MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4Mgot KyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAl NjAsIGxhYmVsICU1NSwgIWRiZyAhMjA4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTEwMDYzLDcgKzEwMDYz LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICUxOSB0byBpOCosICFkYmcgITIwODUKLSAgICU1OCA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4NQotICAgY2FsbCB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAl NTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAg JTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUyMCksICFk YmcgITIwODYKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMjA4MwotIAotIDsgPGxhYmVsPjo2MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAl NDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC0xMDA3Miw3ICsxMDA3Miw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDg4IHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDg4IHsKLSAgICU0ID0gYWxsb2NhIGkx LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4 KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDk4LDcgKzEwMDk4LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJYjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5l IGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwOTcgewot K2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwOTcgewotICAgJTQgPSBhbGxvY2EgaTEs IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgq ICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxMjQsNyArMTAxMjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEwNiB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCog JTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE1MCw3ICsxMDE1MCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTE1IHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTE1IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAl NSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTc2LDcgKzEwMTc2LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJZjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlu bGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjQgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1 LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMDIsNyArMTAyMDIsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l4MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5s aW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMyB7Ci0rZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUs IGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIyOCw3ICsxMDIyOCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXkxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQyIHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwg YWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjU0LDcgKzEwMjU0LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTUxIHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUs IGFsaWduIDEsICF0YmFhICExOTMKLWRpZmYgLS1naXQgYS9idWlsdGlucy9idWlsdGlucy1jbS02 NC5sbCBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsCi1pbmRleCAzOWEyZGQ4YmUuLjM3NWQw MWJlZCAxMDA2NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsCi0rKysgYi9idWls dGlucy9idWlsdGlucy1jbS02NC5sbAotQEAgLTU1Nyw3ICs1NTcsNyBAQCAkX1pOMTNWYXJ5aW5n V3JpdGVyMTJXcml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29tZGF0IGFueQotIEAuc3RyLjEwID0gcHJp dmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzggeCBpOF0gYyIlMDE2bGxYXDAwIiwgYWxpZ24g MQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4 dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAg JTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012 YlRfX2NTMV9TMV91MkNNdgotIGRlY2xhcmUgPDEgeCBpOD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmku djFpOC52MWk4LmkxNig8MSB4IGk4PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAl MyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVm aW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4Piwg YWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtNjgwLDcgKzY4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1Mx X3UyQ012Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot QEAgLTgxOCw3ICs4MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4Piwg PDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIg eCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAt ODY0LDcgKzg2NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkg IzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTg5MCw3ICs4OTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25l eHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWdu ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC05 MDQsNyArOTA0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4p ICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC05MTgsNyArOTE4LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJu YWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4 IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC05MzIsNyArOTMyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4 IGk4PiwgPDggeCBpOD4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC05NDYsNyAr OTQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAj OSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotICAgJTMgPSBhbGxv Y2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTk2MCw3ICs5NjAsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC05NzQsNyArOTc0LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIzMl9jU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50 ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2ln bmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLUBAIC0xMDU4LDcgKzEwNTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIGRlY2xh cmUgPDEgeCBpMTY+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTE2LnYxaTE2LmkxNig8MSB4IGkx Nj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewot K2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNzQsNyArMTA3NCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTExNDMsNyArMTE0Myw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NT MV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8 NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkx Nj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotQEAgLTEzNTAsNyArMTM1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBp MTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fc1MxX1MxX3Uy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJf c1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2 PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMy IHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNDE5LDcgKzE0MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX3NT MV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1z cyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4 dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNp Z25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg aTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1 LDcgKzE0NDUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDU5LDcgKzE0NTks NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xNDczLDcgKzE0NzMsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9z U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xNDg3LDcgKzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwg PDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBp MTY+LCA8OCB4IGkxNj4pICM5IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHgg aTE2PiwgYWxpZ24gMTYKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2 PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8 MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4 IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMTUxNSw3ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1Nf KDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NT Xyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2 PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE1MjksNyArMTUyOSw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjMyX3NTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZpaShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci1AQCAtMTczMCw3ICsxNzMwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHgg aTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9faVMxX1MxX3Uy Q00KLSBkZWNsYXJlIDwxIHggaTMyPiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkzMi52MWkzMi5p MTYoPDEgeCBpMzI+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3NDYsNyArMTc0 Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAg ZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGky RUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2Rl ZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHgg aTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1 ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVF RXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEy OAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2 LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMzJFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxs b2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFs bG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzAyLDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQg ewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9p U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEg eCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotQEAgLTI3MTYsNyArMjcxNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4p ICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1A QCAtMjczMCw3ICsyNzMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0y NzQ0LDcgKzI3NDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4 IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAg JTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+ LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTI3NTgs NyArMjc1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4 IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsK LSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYg eCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBA IC0yNzcyLDcgKzI3NzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+ LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci1AQCAtMjc4Niw3ICsyNzg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0 LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAg ICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1 MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18o PDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTI4NjAsNyArMjg2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4Piwg PDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9o U18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBA IC0yOTA2LDcgKzI5MDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQg eCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMwNDQsNyArMzA0NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTE2RUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkzMkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6 ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg ICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24g MQotQEAgLTMxMTYsNyArMzExNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9lCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+ LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICsz MTMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTMxNDQsNyArMzE0NCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hT Xyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHgg aTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC0zMTU4LDcgKzMxNTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4 IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMx NSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3 Miw3ICszMTcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHgg aTg+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAl MyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4s IGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3 ICszMTg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzIwMCw3ICsz MjAwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2 LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTMyNzgsNyArMzI3OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX190UzFf UzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+ LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi1AQCAtMzI5NCw3ICszMjk0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNf KDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHgg aTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBh bGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLUBAIC0zMzYwLDcgKzMzNjAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBp MTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAj MTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAg LTM1NTgsNyArMzU1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWls czE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9j YSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLUBAIC0zNjI0LDcgKzM2MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg emVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwg aTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewot ICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NTAsNyArMzY1MCw3IEBA IGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW10dChpMTYgemVyb2V4dCwgaTE2IHplCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY2NCw3ICszNjY0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx X3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zNjc4LDcgKzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwy IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFs IDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHgg aTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotQEAgLTM2OTIsNyArMzY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4 X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8 OCB4IGkxNj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAl NCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4s IGFsaWduIDE2Ci1AQCAtMzcwNiw3ICszNzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90 U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+ LCA8MTYgeCBpMTY+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYg eCBpMTY+LCBhbGlnbiAzMgotQEAgLTM3MjAsNyArMzcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYg eCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFs IDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMy IHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFs aWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNzM0LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90 U18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amoo aTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTM4OTIsNyArMzg5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMzkwOCw3ICszOTA4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00 MDU0LDcgKzQwNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIs NyArNDQ5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4 IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsK LSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LUBAIC00NjM4LDcgKzQ2MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2Rl dGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAj MTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2 NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt amooaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9q U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY3OCw3ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLUBAIC00NjkyLDcgKzQ2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMy PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi NF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAg JTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotQEAgLTQ3MDYsNyArNDcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4 IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFs aWduIDMyCi1AQCAtNDcyMCw3ICs0NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18o PDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8 MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAg ICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotQEAgLTQ3MzQsNyArNDczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBp MzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NzQ4LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9q U18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBp NjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotK2RlZmluZSBpbnRlcm5hbCB2b2lk IEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAh ZGJnICExNSB7Ci0gICAlOCA9IGFsbG9jYSBpOCosIGFsaWduIDgKLSAgICU5ID0gYWxsb2NhIGk4 KiwgYWxpZ24gOAotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTUwNzAsNyArNTA3 MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMy LCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0gICAlNjcgPSBsb2FkIGk2NCwgaTY0KiAl MTMsIGFsaWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5Ci0gICAlNjggPSBsb2FkIDw1IHggaTMy PiwgPDUgeCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJnICExNjAsICF0YmFhICE3Ci0gICBjYWxs IHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBLaml5dTJDTXZiNV9pKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMjMsIGk2NCogZGVyZWZlcmVuY2VhYmxlKDgpICUxOSwgaTMyKiogZGVyZWZl cmVuY2VhYmxlKDgpICUxNCwgaTMyICU2NiwgaTY0ICU2NywgPDUgeCBpMzI+ICU2OCksICFkYmcg ITE2MQotLSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8o aTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMjIs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSsg ICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSAgIGJyIGxhYmVsICU3MCwgIWRiZyAh MTYzCi0gCi0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTYwCi1AQCAtNTE4OCw3ICs1MTg4LDcgQEAgZGVmaW5lIGludGVybmFsIDw1 IHggaTMyPiBAX1oxN2dldF9hdXhpbGlhcnlfc3RydigpICMyOCBjb21kYXQgIWRiZyAhMTc4IHsK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0g ICAlNiA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLUBAIC01MTk3LDcg KzUxOTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dp dGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAgJTggPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE5NgotICAgJTkgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE5NgotICAgY2FsbCB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlOCwgaTgqIGFsaWduIDMyICU5 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTEw ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3Jt STEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSsgICUxMCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1Vu aWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNSksICFkYmcg ITE5OAotICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxhYmVsICUxMSwgIWRiZyAhMTk5Ci0gCi0g OyA8bGFiZWw+OjExOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTMKLUBAIC01MjA1LDcgKzUyMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAg JTEzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTYgdG8gaTgqLCAhZGJnICEyMDEK LSAgICUxNCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyIHRvIGk4KiwgIWRiZyAh MjAxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMy ICUxMywgaTgqIGFsaWduIDMyICUxNCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwMSwgIXRi YWEuc3RydWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIy c3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8o aTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNiks ICFkYmcgITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBz aWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotICAgYnIgbGFiZWwgJTE2LCAhZGJnICExOTkK LSAKLSA7IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlMTEsICUzCi1AQCAtNTI4MCw3ICs1MjgwLDcgQEAgZGVmaW5lIGludGVybmFsIHZv aWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBLaml5dTJDTXZiNV9pKCVjbGFzcy5WYXJ5aW5n V3JpdGUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLStkZWZpbmUg aW50ZXJuYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotICAgcmV0IGkzMiAt MSwgIWRiZyAhMjM3Ci0gfQotIAotQEAgLTg4NzAsNyArODg3MCw3IEBAIGRlY2xhcmUgZHNvX2xv Y2FsIHZvaWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJpbnNpY19pbXBsX3N2bV9zY2F0dGVyX3dy aXRlSWlMaTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdlbnguc3ZtLnNjYXR0ZXIudjFpMS52MWk2 NC52MWkzMig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4sIDwxIHggaTMyPikgIzI3Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9y bUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRV bmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyKSAj MjUgY29tZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0 ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24gMQotQEAgLTg4Nzks NyArODg3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJz d2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gICAlNyA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY0NwotICAgJTggPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NDcKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAz MiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NDcsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx ICU1KSwgIWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTQsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0gICByZXQgaTEgJTksICFk YmcgITE2NDkKLSB9Ci0gCi1AQCAtODg4Nyw3ICs4ODg3LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3Jt V3JpdGUKLSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIG5vY2Fw dHVyZSB3cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVhZG9ubHksIGk2NCwgaTEpICMzMgotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZh cnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rp bmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAz MikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICAlNCA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBAIC04 ODk2LDEyICs4ODk2LDEyIEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlCi0gICAlNyA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY1MgotICAgJTggPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NTIKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTcsIGk4KiBh bGlnbiAzMiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NTIsICF0YmFhLnN0cnVjdCAh MTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTQsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0gICByZXQgaTEg JTksICFkYmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlu bGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE2NTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24gMQotQEAgLTg5MjQsNyArODky NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2NTcKLSAgICUyMyA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1NwotICAgY2FsbCB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMjIsIGk4KiBhbGlnbiAzMiAl MjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAg JTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUy MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlNiksICFkYmcgITE2 NTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcgITE2NTkKLSAKLSA7 IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlMwotQEAgLTg5MzIsNyArODkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAl MjcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNyB0byBpOCosICFkYmcgITE2NjEK LSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAh MTY2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAz MiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjYxLCAh dGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMTY2MgotKyAgJTI5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkxICUyOSwgbGFiZWwgJTYwLCBsYWJlbCAl MzAsICFkYmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04OTQwLDcgKzg5NDAsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTkgdG8gaTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTAp LCAhZGJnICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSAgIGJyIGkx ICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITE2NjcKLSAKLSA7IDxsYWJlbD46MzU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC04 OTQ4LDcgKzg5NDgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTM3ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgJTM4ID0g Yml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzNywgaTgq IGFsaWduIDMyICUzOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjksICF0YmFhLnN0cnVj dCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSsgICUzOSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAx ICUxMiksICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFk YmcgITE2NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC04OTU2LDcgKzg5NTYsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEzIHRv IGk4KiwgIWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0MywgaTY0IDY0LCBpMSBmYWxz ZSksICFkYmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTEzLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNCksICFk YmcgITE2NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTEzLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCksICFkYmcgITE2NzQKLSAgIGJyIGkxICU0 NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2NzUKLSAKLSA7IDxsYWJlbD46NDU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDAKLUBAIC04OTY0 LDcgKzg5NjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMTY3NwotICAgJTQ4ID0gYml0 Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjc3Ci0gICBjYWxs IHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0NywgaTgqIGFs aWduIDMyICU0OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzcsICF0YmFhLnN0cnVjdCAh MTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSsgICU0OSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUx NiksICFkYmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcg ITE2NzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlNDUKLUBAIC04OTcyLDcgKzg5NzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE3IHRvIGk4 KiwgIWRiZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1MywgaTY0IDY0LCBpMSBmYWxzZSks ICFkYmcgITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcg ITE2ODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFkYmcgITE2ODIKLSAgIGJyIGkxICU1NCwg bGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC04OTgwLDcg Kzg5ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMTY4NQotICAgJTU4ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjg1Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWdu IDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODUsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0rICAlNTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTIw KSwgIWRiZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+ OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTU1LCAl NTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTg5ODksNyArODk4OSw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4 IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4IHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMTUsNyArOTAxNSw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsKLSAgICU0ID0gYWxsb2NhIGkx LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4 KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNDEsNyArOTA0MSw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAl NSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNjcsNyArOTA2Nyw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwg YWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwOTMsNyArOTA5Myw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWYxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLStkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxp Z24gMSwgIXRiYWEgITE5MwotQEAgLTkxMTksNyArOTExOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24g MSwgIXRiYWEgITE5MwotQEAgLTkxNDUsNyArOTE0NSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Vu aWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTkxNzEsNyArOTE3MSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZv Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ UHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAwMTMsNyArMTAwMTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgaTMyIEBf Wk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVfb2NsSVB2RUVOU18xOFNIQURFUl9QUklOVEZfVFlQ RQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA2MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA2 MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlZh cnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtMTAwMzYsNyArMTAwMzYsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTUgdG8gaTgqLCAhZGJnICEyMDYzCi0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA2MywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0li MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl NSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl NiksICFkYmcgITIwNjQKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTUsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTYpLCAhZGJnICEyMDY0Ci0gICBiciBp MSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICEyMDY1Ci0gCi0gOyA8bGFiZWw+OjI1 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC0x MDA0NCw3ICsxMDA0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjcgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNyB0byBpOCosICFkYmcgITIwNjcKLSAgICUyOCA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2NwotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMjcsIGk4 KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY3LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMjA2OAotKyAgJTI5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl OCksICFkYmcgITIwNjgKLSAgIGJyIGkxICUyOSwgbGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcg ITIwNjkKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDA1Miw3ICsxMDA1Miw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlOSB0byBp OCosICFkYmcgITIwNzEKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMjA3MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICEyMDcxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcg ITIwNzIKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3MgotICAgYnIgaTEgJTM0LCBs YWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMjA3MwotIAotIDsgPGxhYmVsPjozNTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTEwMDYwLDcg KzEwMDYwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBpOCosICFkYmcgITIwNzUKLSAgICUzOCA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3NQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGln biAzMiAlMzgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc1LCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDc2Ci0rICAlMzkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTIp LCAhZGJnICEyMDc2Ci0gICBiciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICEy MDc3Ci0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwNjgsNyArMTAwNjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEzIHRvIGk4 KiwgIWRiZyAhMjA3OQotICAgJTQzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICEyMDc5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0MywgaTY0IDY0LCBpMSBmYWxzZSks ICFkYmcgITIwNzksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcg ITIwODAKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNCksICFkYmcgITIwODAKLSAgIGJyIGkxICU0NCwg bGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITIwODEKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDAKLUBAIC0xMDA3Niw3 ICsxMDA3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8gaTgqLCAhZGJnICEyMDgzCi0gICAlNDggPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODMKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxp Z24gMzIgJTQ4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4MywgIXRiYWEuc3RydWN0ICEx OTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA4NAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE2 KSwgIWRiZyAhMjA4NAotICAgYnIgaTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAh MjA4NQotIAotIDsgPGxhYmVsPjo1MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDg0LDcgKzEwMDg0LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNyB0byBp OCosICFkYmcgITIwODcKLSAgICU1MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMjA4NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICEyMDg3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJn ICEyMDg4Ci0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTgpLCAhZGJnICEyMDg4Ci0gICBiciBpMSAlNTQs IGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEyMDg5Ci0gCi0gOyA8bGFiZWw+OjU1OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtMTAwOTIs NyArMTAwOTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMjA5MQotICAgJTU4ID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDkxCi0gICBjYWxs IHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1NywgaTgqIGFs aWduIDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwOTEsICF0YmFhLnN0cnVjdCAh MTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICEyMDkyCi0rICAlNTkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEg JTIwKSwgIWRiZyAhMjA5MgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICEyMDg5Ci0gCi0gOyA8bGFi ZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTU1 LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTEwMTAxLDcgKzEwMTAxLDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIwOTQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwOTQgewotICAgJTQgPSBh bGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBp OCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxMjcsNyArMTAxMjcsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MjEwMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEwMyB7Ci0gICAlNCA9IGFs bG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4 ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE1Myw3ICsxMDE1Myw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEy MTEyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTEyIHsKLSAgICU0ID0gYWxs b2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTgg JTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTc5LDcgKzEwMTc5LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlz aW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIx MjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjEgewotICAgJTQgPSBhbGxv Y2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAl MCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMDUsNyArMTAyMDUsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEz MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMCB7Ci0gICAlNCA9IGFsbG9j YSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUw LCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIzMSw3ICsxMDIzMSw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTM5 IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTM5IHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjU3LDcgKzEwMjU3LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5s aW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDgg ewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDggewotICAgJTQgPSBhbGxvY2Eg aTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwg aTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyODMsNyArMTAyODMsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTcg ewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3IHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3Rl bXBsYXRlIGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCmluZGV4IDljM2FjYjQyYTljZi4uNjhmZWQ1 YTRjNjU5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9p c3BjL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpc3Bj JwogcGtnbmFtZT1pc3BjCi12ZXJzaW9uPTEuMTUuMAotcmV2aXNpb249MgordmVyc2lvbj0xLjE3 LjAKK3JldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZp Z3VyZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYiCitjb25maWd1 cmVfYXJncz0iLURJU1BDX05PX0RVTVBTPU9OIC1EQVJNX0VOQUJMRUQ9T0ZGIC1EQ01BS0VfQlVJ TERfVFlQRT1SZWxlYXNlIgogaG9zdG1ha2VkZXBlbmRzPSJjbGFuZyBjbGFuZy10b29scy1leHRy YSBweXRob24zIG00IGJpc29uIGZsZXggbGx2bSIKIG1ha2VkZXBlbmRzPSJuY3Vyc2VzLWRldmVs IG5jdXJzZXMtbGlidGluZm8tZGV2ZWwgemxpYi1kZXZlbCIKIHNob3J0X2Rlc2M9IkNvbXBpbGVy IGZvciBoaWdoLXBlcmZvcm1hbmNlIFNJTUQgcHJvZ3JhbW1pbmcgb24gdGhlIENQVSIKQEAgLTEy LDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iQW5kcmVhIEJyYW5jYWxlb25pIDxhYmNAcG9tcGVsLm1l PiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwczovL2lzcGMuZ2l0aHVi LmlvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vaXNwYy9pc3BjL2FyY2hpdmUvdiR7 dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MjY1OGZmMDBkYzA0NWFjOWZjZWZiZjZiZDI2ZGZm YWY3MjNiMDU5YTk0MmEyN2RmOTFiYmI2MWJjNTAzYTI4NQorY2hlY2tzdW09MzdmYjEwNTVkNmM2 YjIzMmUxMTJkOGQ1MDE0NWQ3MjY4MjRlZDRkOGRhOTNhNzM5NjMxNWRjZWJhNmM3NmU2Mgogbm9j cm9zcz15ZXMKIG5vcGllPXllcwogCgpGcm9tIDIzNGRlMGExNmY3OGY1ZTgwOWQ2NjJmZDJiYjU1 NTgxZGI0ODMxMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRy PUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBNb24s IDI4IEZlYiAyMDIyIDIxOjQ3OjI0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNy8zMF0gemlnOiB1 cGRhdGUgdG8gMC45LjEuCgotLS0KIC4uLi8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2Yt RGNwdS5wYXRjaCB8IDQ4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvemlnL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3ppZy9wYXRjaGVzLzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxp bmctb2YtRGNwdS5wYXRjaCBiL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4 LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQx MDFmMjQ0NTliYi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1z dGQuYnVpbGQtZml4LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 OCArMCwwIEBACi1Gcm9tIDFlOGNkYWNlN2FkMzI0YTQyMjI4YWViNWNkNmViOGRkMTU0Mjk0MTMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJc2FhYyBGcmV1bmQgPGlmcmV1bmRAaWZy ZXVuZC54eXo+Ci1EYXRlOiBUdWUsIDIxIFNlcCAyMDIxIDIxOjA2OjEwICswMjAwCi1TdWJqZWN0 OiBbUEFUQ0hdIHN0ZC5idWlsZDogZml4IGhhbmRsaW5nIG9mIC1EY3B1Ci0KLUN1cnJlbnRseSAt RGNwdSBpcyBjb21wbGV0ZWx5IGlnbm9yZWQgaWYgLUR0YXJnZXQgaXNuJ3QgcGFzc2VkIGFzIHdl bGwuCi1GdXJ0aGVyLCAtRGNwdT1iYXNlbGluZSBpcyBpZ25vcmVkIGV2ZW4gaWYgLUR0YXJnZXQ9 bmF0aXZlIGlzIHBhc3NlZC4KLQotVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSAyIGlzc3VlcywgYWx3 YXlzIHJlc3BlY3RpbmcgdGhlIC1EY3B1IG9wdGlvbiBpZgotcHJlc2VudC4KLS0tLQotIGxpYi9z dGQvYnVpbGQuemlnIHwgMTMgKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvc3RkL2J1aWxkLnpp ZyBiL2xpYi9zdGQvYnVpbGQuemlnCi1pbmRleCA5YjdlYmIxZjQuLmUzOTg1MjlmOSAxMDA2NDQK LS0tLSBhL2xpYi9zdGQvYnVpbGQuemlnCi0rKysgYi9saWIvc3RkL2J1aWxkLnppZwotQEAgLTY4 NSw3ICs2ODUsMTEgQEAgcHViIGNvbnN0IEJ1aWxkZXIgPSBzdHJ1Y3QgewotICAgICAgICAgKTsK LSAgICAgICAgIGNvbnN0IG1jcHUgPSBzZWxmLm9wdGlvbihbXWNvbnN0IHU4LCAiY3B1IiwgIlRh cmdldCBDUFUiKTsKLSAKLS0gICAgICAgIGNvbnN0IHRyaXBsZSA9IG1heWJlX3RyaXBsZSBvcmVs c2UgcmV0dXJuIGFyZ3MuZGVmYXVsdF90YXJnZXQ7Ci0rICAgICAgICBpZiAobWF5YmVfdHJpcGxl ID09IG51bGwgYW5kIG1jcHUgPT0gbnVsbCkgewotKyAgICAgICAgICAgIHJldHVybiBhcmdzLmRl ZmF1bHRfdGFyZ2V0OwotKyAgICAgICAgfQotKwotKyAgICAgICAgY29uc3QgdHJpcGxlID0gbWF5 YmVfdHJpcGxlIG9yZWxzZSAibmF0aXZlIjsKLSAKLSAgICAgICAgIHZhciBkaWFnczogQ3Jvc3NU YXJnZXQuUGFyc2VPcHRpb25zLkRpYWdub3N0aWNzID0gLnt9OwotICAgICAgICAgY29uc3Qgc2Vs ZWN0ZWRfdGFyZ2V0ID0gQ3Jvc3NUYXJnZXQucGFyc2UoLnsKLUBAIC0yNDUxLDExICsyNDU1LDgg QEAgcHViIGNvbnN0IExpYkV4ZU9ialN0ZXAgPSBzdHJ1Y3QgewotIAotICAgICAgICAgICAgIGlm IChwb3B1bGF0ZWRfY3B1X2ZlYXR1cmVzLmVxbChjcm9zcy5jcHUuZmVhdHVyZXMpKSB7Ci0gICAg ICAgICAgICAgICAgIC8vIFRoZSBDUFUgbmFtZSBhbG9uZSBpcyBzdWZmaWNpZW50LgotLSAgICAg ICAgICAgICAgICAvLyBJZiBpdCBpcyB0aGUgYmFzZWxpbmUgQ1BVLCBubyBjb21tYW5kIGxpbmUg YXJncyBhcmUgcmVxdWlyZWQuCi0tICAgICAgICAgICAgICAgIGlmIChjcm9zcy5jcHUubW9kZWwg IT0gc3RkLlRhcmdldC5DcHUuYmFzZWxpbmUoY3Jvc3MuY3B1LmFyY2gpLm1vZGVsKSB7Ci0tICAg ICAgICAgICAgICAgICAgICB0cnkgemlnX2FyZ3MuYXBwZW5kKCItbWNwdSIpOwotLSAgICAgICAg ICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZChjcm9zcy5jcHUubW9kZWwubmFtZSk7Ci0t ICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZCgi LW1jcHUiKTsKLSsgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZChjcm9zcy5jcHUu bW9kZWwubmFtZSk7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgdmFy IG1jcHVfYnVmZmVyID0gc3RkLkFycmF5TGlzdCh1OCkuaW5pdChidWlsZGVyLmFsbG9jYXRvcik7 Ci0gCi0tLSAKLTIuMzMuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ppZy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvemlnL3RlbXBsYXRlCmluZGV4IDcyOGM1YTY0ZTlkZi4uNDgzMmM4OTM4MTYwIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3ppZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQpA QCAtMSwxNyArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnemlnJwogcGtnbmFtZT16aWcK LXZlcnNpb249MC44LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249MC45LjEKK3JldmlzaW9uPTEKIGFy Y2hzPSJ4ODZfNjQqIGFhcmNoNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIG1ha2VfY21kPW1ha2UK LW1ha2VkZXBlbmRzPSJjbGFuZyBsbHZtMTIgbGxkLWRldmVsIgorbWFrZWRlcGVuZHM9ImNsYW5n IGxsdm0xMyBsbGQtZGV2ZWwiCiBzaG9ydF9kZXNjPSJQcm9ncmFtbWluZyBsYW5ndWFnZSBkZXNp Z25lZCBmb3Igcm9idXN0bmVzcywgb3B0aW1hbGl0eSwgYW5kIGNsYXJpdHkiCiBtYWludGFpbmVy PSJJc2FhYyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPiIKIGxpY2Vuc2U9Ik1JVCIKIGhv bWVwYWdlPSJodHRwczovL3ppZ2xhbmcub3JnIgogZGlzdGZpbGVzPSJodHRwczovL3ppZ2xhbmcu b3JnL2Rvd25sb2FkLyR7dmVyc2lvbn0vemlnLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 OGM0MjhlMTRhMGE4OWNiN2ExNWE2NzY4NDI0YTM3NDQyMjkyODU4Y2RiNjk1ZTJlYjUwM2ZhM2M3 YmY0N2YxYQorY2hlY2tzdW09MzhjZjRlODQ0ODFmNWZhY2M3NjZiYTcyNzgzZTc0NjJlMDhkNmQy OWE1ZDQ3ZTNiNzVjOGVlMzE0MjQ4NTIxMAogbm9waWU9eWVzCiBub2Nyb3NzPXllcwogCgpGcm9t IDI2ODE0ZTI2YmE4Y2JhZjQzMTUzYTc1YzdmNWVlMTgyNDE3MDNhZjAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJx dWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDIxOjUyOjA3ICswMDAw ClN1YmplY3Q6IFtQQVRDSCAxOC8zMF0gYmVpZ25ldDogcmVtb3ZlIHBhY2thZ2UKCi0tLQogc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaCAgICAgICAgIHwgIDIyIC0KIC4uLjQx OWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaCB8IDEzNCAtLS0KIHNyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCAgICAgICAgICB8ICAzMyAtCiBzcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2ggICAgICAgICAgfCAgNTYgLS0KIHNyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaCAgICAgICAgICB8IDExMSAtLS0KIHNyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaCAgICAgICAgICB8IDM0NyAtLS0tLS0tCiBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2ggICAgICAgICAgfCA5MzcgLS0tLS0tLS0t LS0tLS0tLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggICAgICAgICAg fCAxMTUgLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoICAgICAgICAgICAg fCAgMTEgLQogc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwg IDIyIC0KIHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSAtCiBzcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgICAgICAgICAgICAgfCAgIDEg KwogMTIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDE3ODkgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUz OGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9iZWlnbmV0L3RlbXBsYXRlCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Vw ZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gg Yi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA4NmJhMDBmMDRlOTUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Jl aWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBA QAotLS0tIGEvc3JjL2NsX2FwaV9rZXJuZWwuYwkyMDE3LTA5LTIyIDEwOjA1OjIyLjAwMDAwMDAw MCArMDIwMAotKysrIGIvc3JjL2NsX2FwaV9rZXJuZWwuYwkyMDIwLTAzLTI0IDE4OjI3OjQwLjE4 NjQ4NTg4NyArMDEwMAotQEAgLTE1MSw3ICsxNTEsNyBAQAotICAgICAgICAgZml4ZWRfbG9jYWxf c3pbMF0gPSAxNjsKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6WzFdID0gMTsKLSAgICAgICB9IGVs c2UgewotLSAgICAgICAgdWludCBqLCBtYXhEaW1TaXplID0gNjQgLyogZnJvbSA2ND8gKi8sIG1h eEdyb3VwU2l6ZSA9IDI1NjsgLy9NQVhfV09SS19HUk9VUF9TSVpFIG1heSB0b28gbGFyZ2UKLSsg ICAgICAgIGNsX3VpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZyb20gNjQ/ICovLCBtYXhHcm91 cFNpemUgPSAyNTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkgdG9vIGxhcmdlCi0gICAgICAg ICBzaXplX3QgcmVhbEdyb3VwU2l6ZSA9IDE7Ci0gICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd29y a19kaW07IGkrKykgewotICAgICAgICAgICBmb3IgKGogPSBtYXhEaW1TaXplOyBqID4gMTsgai0t KSB7Ci0tLS0gYS9zcmMvY2xfZW5xdWV1ZS5jCTIwMTctMDktMjIgMTA6MDU6MjIuMDAwMDAwMDAw ICswMjAwCi0rKysgYi9zcmMvY2xfZW5xdWV1ZS5jCTIwMjAtMDMtMjQgMTg6MzA6MTIuMDMxNDc5 ODMzICswMTAwCi1AQCAtNDk0LDcgKzQ5NCw3IEBACi0gY2xfaW50IGNsX2VucXVldWVfc3ZtX2Zy ZWUoZW5xdWV1ZV9kYXRhICpkYXRhLCBjbF9pbnQgc3RhdHVzKSB7Ci0gICBpbnQgaTsKLSAgIHZv aWQgKipwb2ludGVycyA9IGRhdGEtPnBvaW50ZXJzOwotLSAgdWludCBudW1fc3ZtX3B0cnMgPSBk YXRhLT5zaXplOwotKyAgY2xfdWludCBudW1fc3ZtX3B0cnMgPSBkYXRhLT5zaXplOwotICAgY2xf aW50IGVyciA9IENMX1NVQ0NFU1M7Ci0gCi0gICBpZiAoc3RhdHVzICE9IENMX0NPTVBMRVRFKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvZTFiMjQxOWEwMDA4ZTM4ZWYyZDlk MjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0 MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDhkZTllNmUyZjA5My4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotRnJvbSBlMWIyNDE5YTAwMDhl MzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogIlJlYmVjY2EgTi4gUGFsbWVyIiA8cmViZWNjYV9wYWxtZXJAem9oby5jb20+Ci1EYXRlOiBT YXQsIDIxIEp1bCAyMDE4IDIwOjA1OjU0ICswMTAwCi1TdWJqZWN0OiBBZGQgcHJlbGltaW5hcnkg TExWTSA3IHN1cHBvcnQKLQotVGhpcyBpcyBwcmVsaW1pbmFyeSBiZWNhdXNlIExMVk0gNyBoYXMg bm90IGJlZW4gcmVsZWFzZWQgeWV0OgotaXQgd2FzIHRlc3RlZCB3aXRoIHRoZSBzbmFwc2hvdCBm cm9tIERlYmlhbiBleHBlcmltZW50YWwgKHN2bjMzNjg5NCkuCi0KLTEuQ2hhbmdlIGxpbmtpbmcg b3JkZXIsIGFzIGNsYW5nQ29kZUdlbiBub3cgbGlua3MgdG8gY2xhbmdGcm9udGVuZAotMi5QYXNz IHJlZmVyZW5jZXMgbm90IHBvaW50ZXJzIHRvIFdyaXRlQml0Y29kZVRvRmlsZSBhbmQgQ2xvbmVN b2R1bGUKLTMuQWRkIHRoZSBoZWFkZXJzIHRoYXQgTG9vcFNpbXBsaWZ5SUQsIExDU1NBSUQgYW5k Ci1zb21lIGNyZWF0ZSpQYXNzIGhhdmUgbW92ZWQgdG8KLTQuRGVmaW5lIG91ciBERUJVRyB3aGV0 aGVyIG9yIG5vdCB3ZSBqdXN0IHVuZGVmaW5lZCBMTFZNJ3MKLSh0aGVpcnMgaXMgbm93IExMVk1f REVCVUcsIGJ1dCB3ZSBuZXZlciBhY3R1YWxseSB1c2UgaXQpCi0KLVNpZ25lZC1vZmYtYnk6IFJl YmVjY2EgTi4gUGFsbWVyIDxyZWJlY2NhX3BhbG1lckB6b2hvLmNvbT4KLVJldmlld2VkLWJ5OiBZ YW5nIFJvbmcgPHJvbmcuci55YW5nQGludGVsLmNvbT4KLS0tLQotIENNYWtlL0ZpbmRMTFZNLmNt YWtlICAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gYmFja2VuZC9zcmMvYmFja2VuZC9nZW5f cHJvZ3JhbS5jcHAgICAgICB8IDggKysrKysrKysKLSBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dy YW0uY3BwICAgICAgICAgIHwgNCArKysrCi0gYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUlu dGVnZXJzLmNwcCB8IDIgKy0KLSBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNw cCAgIHwgNCArKysrCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcCAgICAgICB8 IDQgKysrKwotIDYgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlIGIvQ01ha2UvRmluZExMVk0u Y21ha2UKLWluZGV4IDU0NTdmMjQuLmY4ODI1ODkgMTAwNjQ0Ci0tLS0gYS9DTWFrZS9GaW5kTExW TS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBAIC0xMTMsMTAgKzExMywxMCBA QCBtYWNybyhhZGRfb25lX2xpYiBuYW1lKQotIGVuZG1hY3JvKCkKLSAKLSAjQXNzdW1lIGNsYW5n IGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotK2FkZF9vbmVfbGliKCJjbGFuZ0NvZGVH ZW4iKQotIGFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikKLSBhZGRfb25lX2xpYigiY2xhbmdT ZXJpYWxpemF0aW9uIikKLSBhZGRfb25lX2xpYigiY2xhbmdEcml2ZXIiKQotLWFkZF9vbmVfbGli KCJjbGFuZ0NvZGVHZW4iKQotIGFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotIGFkZF9vbmVfbGli KCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRlbmQiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRp Y0FuYWx5emVyQ2hlY2tlcnMiKQotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2Vu X3Byb2dyYW0uY3BwIGIvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAKLWluZGV4 IDI3NGM5OWMuLjQxNTkyMzQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9w cm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAKLUBA IC00NTQsNyArNDU0LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICNpZmRlZiBHQkVfQ09NUElMRVJf QVZBSUxBQkxFCi0gICAgICAgc3RkOjpzdHJpbmcgc3RyOwotICAgICAgIGxsdm06OnJhd19zdHJp bmdfb3N0cmVhbSBPUyhzdHIpOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyAgICAg IGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgqKChsbHZtOjpNb2R1bGUqKXByb2ctPm1vZHVsZSks IE9TKTsKLSsjZWxzZQotICAgICAgIGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgobGx2bTo6TW9k dWxlKilwcm9nLT5tb2R1bGUsIE9TKTsKLSsjZW5kaWYKLSAgICAgICBzdGQ6OnN0cmluZyYgYmlu X3N0ciA9IE9TLnN0cigpOwotICAgICAgIGludCBsbHN6ID0gYmluX3N0ci5zaXplKCk7Ci0gICAg ICAgKmJpbmFyeSA9IChjaGFyICopbWFsbG9jKHNpemVvZihjaGFyKSAqIChsbHN6KzEpICk7Ci1A QCAtNTQ1LDcgKzU0OSwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbW9kUmVmKTsKLSAgICAgICAgIHNyYyA9IGxsdm06OnVud3JhcCht b2RSZWYpOwotICAgICAgIH0KLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgICBs bHZtOjpNb2R1bGUqIGNsb25lID0gbGx2bTo6Q2xvbmVNb2R1bGUoKnNyYykucmVsZWFzZSgpOwot KyNlbHNlCi0gICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9IGxsdm06OkNsb25lTW9kdWxlKHNy YykucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICAgIGlmIChMTFZNTGlua01vZHVsZXMyKHdyYXAo ZHN0KSwgd3JhcChjbG9uZSkpKSB7Ci0gI2VsaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBM TFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgICBpZiAoTExWTUxpbmtNb2R1bGVzKHdyYXAo ZHN0KSwgd3JhcChzcmMpLCBMTFZNTGlua2VyUHJlc2VydmVTb3VyY2VfUmVtb3ZlZCwgJmVyck1z ZykpIHsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwIGIvYmFj a2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotaW5kZXggYzM3YzU5NS4uYjM2ZjdiNCAxMDA2 NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLSsrKyBiL2JhY2tlbmQv c3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLUBAIC03OTQsNyArNzk0LDExIEBAIG5hbWVzcGFjZSBn YmUgewotICAgICAgIGxsdm06OnJhd19mZF9vc3RyZWFtIG9zdHJlYW0gKGR1bXBTUElSQmluYXJ5 TmFtZS5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyciwg bGx2bTo6c3lzOjpmczo6Rl9Ob25lKTsKLSAgICAgICBpZiAoIWVycikKLSsjaWYgTExWTV9WRVJT SU9OX01BSk9SPDcKLSAgICAgICAgIGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgqb3V0X21vZHVs ZSwgb3N0cmVhbSk7Ci0rI2Vsc2UKLSsgICAgICAgIGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgq Km91dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbmRpZgotICAgICB9Ci0gI2VuZGlmCi0gICAgIHJl dHVybiB0cnVlOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRl Z2Vycy5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1pbmRl eCA4NTE1ZGMxLi40YWVjNDRlIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRM YXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVn ZXJzLmNwcAotQEAgLTk5LDggKzk5LDggQEAgdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gCi0gI2lm ZGVmIERFQlVHCi0gICAjdW5kZWYgREVCVUcKLS0gICNkZWZpbmUgREVCVUcoLi4uKQotICNlbmRp ZgotKyNkZWZpbmUgREVCVUcoLi4uKQotIC8vIEJyZWFrIGluc3RydWN0aW9ucyB1cCBpbnRvIG5v IGxhcmdlciB0aGFuIDY0LWJpdCBjaHVua3MuCi0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIGtDaHVu a0JpdHMgPSA2NDsKLSBzdGF0aWMgY29uc3QgdW5zaWduZWQga0NodW5rQnl0ZXMgPSBrQ2h1bmtC aXRzIC8gQ0hBUl9CSVQ7Ci1kaWZmIC0tZ2l0IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAotaW5k ZXggZWY1NmU0Yy4uNGMzZTIwZSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9i aXRjb2RlX2xpbmsuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5r LmNwcAotQEAgLTM0MCw3ICszNDAsMTEgQEAgbmFtZXNwYWNlIGdiZQotICAgICAvKiBXZSB1c2Ug YmVpZ25ldCdzIGJpdGNvZGUgYXMgZHN0IGJlY2F1c2UgaXQgd2lsbCBoYXZlIGEgbG90IG9mCi0g ICAgICAgIGxhenkgZnVuY3Rpb25zIHdoaWNoIHdpbGwgbm90IGJlIGxvYWRlZC4gKi8KLSAjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzkKLSsjaWYg TExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgbGx2bTo6TW9kdWxlICogbGlua2VkX21vZHVs ZSA9IGxsdm06OkNsb25lTW9kdWxlKCoobGx2bTo6TW9kdWxlKiltb2QpLnJlbGVhc2UoKTsKLSsj ZWxzZQotICAgICBsbHZtOjpNb2R1bGUgKiBsaW5rZWRfbW9kdWxlID0gbGx2bTo6Q2xvbmVNb2R1 bGUoKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0rI2VuZGlmCi0gICAgIGlmKExMVk1M aW5rTW9kdWxlczIod3JhcChjbG9uZWRMaWIpLCB3cmFwKGxpbmtlZF9tb2R1bGUpKSkgewotICNl bHNlCi0gICAgIGNoYXIqIGVycm9yTXNnOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9pbmNsdWRlcy5ocHAgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCi1p bmRleCAxODQ1NTNhLi5mZmNjZjAyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2luY2x1ZGVzLmhwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAot QEAgLTg5LDYgKzg5LDEwIEBACi0gI2luY2x1ZGUgImxsdm0vQ29kZUdlbi9JbnRyaW5zaWNMb3dl cmluZy5oIgotIAotICNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvU2NhbGFyLmgiCi0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rI2luY2x1ZGUgImxsdm0vVHJhbnNmb3Jtcy9VdGlscy5o IgotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvSW5zdENvbWJpbmUvSW5zdENvbWJpbmUuaCIK LSsjZW5kaWYKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0FzbUluZm8uaCIKLSAjaW5jbHVkZSAibGx2 bS9NQy9NQ0NvbnRleHQuaCIKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0luc3RySW5mby5oIgotLS0g Ci1jZ2l0IHYxLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2 LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAzMzg5ZTY2YzgyZGYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr MCwwIEBACi1Tb3VyY2U6IEFyY2ggTGludXgKLVVwc3RyZWFtOiB1bmtub3duCi1SZWFzb246IGZp eGVzIGxsdm02IGNvbXBpbGF0aW9uCi0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19n ZW4uY3BwCTIwMTctMTAtMjQgMDk6MDQ6NDguMDAwMDAwMDAwICswMzAwCi0rKysgYi9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE4LTAzLTE2IDE2OjA4OjU0LjY2OTk2MzgyNCAr MDIwMAotQEAgLTMyMiw3ICszMjIsMTEgQEAgbmFtZXNwYWNlIGdiZQotICAgICBEYXRhTGF5b3V0 IERMKCZtb2QpOwotICAgICAKLSAgICAgZ2JlRGlhZ25vc3RpY0NvbnRleHQgZGM7Ci0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA+PSA2Ci0rICAgIG1vZC5nZXRDb250ZXh0KCkuc2V0RGlhZ25vc3Rp Y0hhbmRsZXJDYWxsQmFjaygmZ2JlRGlhZ25vc3RpY0hhbmRsZXIsJmRjKTsKLSsjZWxzZQotICAg ICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5kbGVyKCZnYmVEaWFnbm9zdGljSGFu ZGxlciwmZGMpOwotKyNlbmRpZgotIAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExM Vk1fVkVSU0lPTl9NSU5PUiA+PSAzNwotICAgICBtb2Quc2V0RGF0YUxheW91dChETCk7Ci0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdW5yb2xsLmNwcAkyMDE3LTEwLTI0IDA5OjA0OjQ4LjAw MDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Vucm9sbC5jcHAJMjAx OC0wMy0xNiAxNjowOTo0Ny43MzY0MDM1NTcgKzAyMDAKLUBAIC0yMDUsNyArMjA1LDkgQEAgbmFt ZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgIGlmIChwYXJlbnRUcmlwQ291bnQgIT0gMCAmJiBjdXJy VHJpcENvdW50ICogcGFyZW50VHJpcENvdW50ID4gMzIpIHsKLSAgICAgICAgICAgICAvL0Rvbid0 IGNoYW5nZSB0aGUgdW5yb2xsSUQgaWYgZG9lc24ndCBmb3JjZSB1bnJvbGwuCi0gICAgICAgICAg ICAgLy9zZXRVbnJvbGxJRChwYXJlbnRMLCBmYWxzZSk7Ci0tI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpP UiA+PSA2Ci0rICAgICAgICAgICAgbG9vcEluZm8uZXJhc2UocGFyZW50TCk7Ci0rI2VsaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSAgICAgICAg ICAgICBsb29wSW5mby5tYXJrQXNSZW1vdmVkKHBhcmVudEwpOwotICNlbHNlCi0gICAgICAgICAg ICAgTFBNLmRlbGV0ZUxvb3BGcm9tUXVldWUocGFyZW50TCk7Ci1Pbmx5IGluIEJlaWduZXQtMS4z LjItU291cmNlOiBidWlsZAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9s bHZtMDgucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwYzVlN2E3YzRmNy4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDU2ICswLDAgQEAKLUZyb20gNzVjMTUyNTk5YTdjMTczOWU2ZGFkY2RiOWIzNzdhY2Y3ZTQ0ZDlj ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBCZWljaCA8amJlaWNoQEZyZWVC U0Qub3JnPgotRGF0ZTogV2VkLCAzMCBKYW4gMjAxOSAxMjo0MjozNCArMDAwMAotU3ViamVjdDog W1BBVENIXSBsYW5nL2JlaWduZXQ6IHVuYnJlYWsgd2l0aCBsbHZtODAKLQotUmVncmVzc2VkIGJ5 IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvNzIxZDk1NzEzYTll Ci0KLXVuYWJsZSB0byBsb2FkIC91c3IvbG9jYWwvbGliL2JlaWduZXQvL2xpYmdiZWludGVycC5z byB3aGljaCBpcyBwYXJ0IG9mIHRoZSBkcml2ZXIsIHBsZWFzZSBjaGVjayEKLWxkLWVsZi5zby4x OiAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRlcnAuc286IFVuZGVmaW5lZCBzeW1i b2wgIl9aTjRsbHZtMjREaXNhYmxlQUJJQnJlYWtpbmdDaGVja3NFIgotCi1SZWdyZXNzZWQgYnkg aHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2NvbW1pdC80YTJkNThlMTZhY2MK LQotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcDozMDc2OjU6IGVycm9yOgot ICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJbnN0JwotICAgIFRlcm1pbmF0b3JJ bnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSAgICBeCi1iYWNrZW5kL3NyYy9sbHZt L2xsdm1fZ2VuX2JhY2tlbmQuY3BwOjMwODM6NTogZXJyb3I6Ci0gICAgICB1bmtub3duIHR5cGUg bmFtZSAnVGVybWluYXRvckluc3QnCi0gICAgVGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0 VGVybWluYXRvcigpOwotICAgIF4KLQotLS0tIGEvYmFja2VuZC9zcmMvQ01ha2VMaXN0cy50eHQJ MjAxNy0wOS0yMiAwODowNToyMiBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL0NNYWtlTGlzdHMudHh0 Ci1AQCAtMTY4LDYgKzE2OCw3IEBAIGFkZF9kZXBlbmRlbmNpZXMoZ2JlIGJlaWduZXRfYml0Y29k ZSkKLSBlbmRpZiAoTk9UIChVU0VfU1RBTkRBTE9ORV9HQkVfQ09NUElMRVIgU1RSRVFVQUwgInRy dWUiKSkKLSAKLSBhZGRfbGlicmFyeShnYmVpbnRlcnAgU0hBUkVEIGdiZV9iaW5faW50ZXJwcmV0 ZXIuY3BwKQotK3RhcmdldF9saW5rX2xpYnJhcmllcyhnYmVpbnRlcnAgJHtMTFZNX01PRFVMRV9M SUJTfSkKLSAKLSBpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZFUlNJT05fRVFVQUwgMzQpCi0gICBm aW5kX2xpYnJhcnkoVEVSTUlORk8gTkFNRVMgdGluZm8gbmN1cnNlcykKLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsr KyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLUBAIC0zMDczLDE0ICsz MDczLDIyIEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAKLSAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGls ZE5vKEJhc2ljQmxvY2sgKmJiKSB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDgKLSAgICAg VGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNlbHNlCi0rICAg IEluc3RydWN0aW9uICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZW5kaWYKLSAgICAg cmV0dXJuIHRlcm0tPmdldE51bVN1Y2Nlc3NvcnMoKTsKLSAgIH0KLSAKLSAgIC8vIHJldHVybiBO VUxMIGlmIGluZGV4IG91dC1yYW5nZSBvZiBjaGlsZHJlbiBudW1iZXIKLSAgIHN0YXRpYyBCYXNp Y0Jsb2NrICpnZXRDaGlsZFBvc3NpYmxlKEJhc2ljQmxvY2sgKmJiLCB1bnNpZ25lZCBpbmRleCkg ewotIAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0gICAgIFRlcm1pbmF0b3JJbnN0ICp0 ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQotKyAgICBJbnN0cnVjdGlvbiAqdGVy bSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0gICAgIHVuc2lnbmVkIGNoaWxkTm8g PSB0ZXJtLT5nZXROdW1TdWNjZXNzb3JzKCk7Ci0gICAgIEJhc2ljQmxvY2sgKmNoaWxkID0gTlVM TDsKLSAgICAgaWYoaW5kZXggPCBjaGlsZE5vKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYWVjZWFiYjZkZC4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDExMSArMCwwIEBACi1Tb3VyY2U6IEZyZWVCU0QgKyBxNjYKLQotTW9zdGx5 IEZyZWVCU0Qgb3RoZXIgdGhhbiBGaW5kTExWTS5jbWFrZSBjaGFuZ2VzLgotTGlua2luZyBhZ2Fp bnN0IGNsYW5nLWNwcCBkb2VzIG5vdCB3b3JrIGZvciB1cy4KLQotLS0tIGEvQ01ha2UvRmluZExM Vk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTQwLDYgKzE0MCw3IEBA IGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29yZSIpCi0gYWRkX29uZV9saWIoImNs YW5nQW5hbHlzaXMiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0VkaXQiKQotIGFkZF9vbmVfbGliKCJj bGFuZ0FTVCIpCi0rYWRkX29uZV9saWIoImNsYW5nQVNUTWF0Y2hlcnMiKQotIGFkZF9vbmVfbGli KCJjbGFuZ1BhcnNlIikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLSBhZGRfb25lX2xpYigi Y2xhbmdMZXgiKQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmlu Zy5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAtNzcsNyArNzcsMTEgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBhcmFtVHlzOwotICAgICAgICAgZm9y IChWYWx1ZSoqIEkgPSBBcmdCZWdpbjsgSSAhPSBBcmdFbmQ7ICsrSSkKLSAgICAgICAgICAgUGFy YW1UeXMucHVzaF9iYWNrKCgqSSktPmdldFR5cGUoKSk7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICBGdW5jdGlvbkNhbGxl ZSBGQ2FjaGUgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKE5ld0ZuLAotKyNlbHNlCi0gICAgICAg ICBDb25zdGFudCogRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbiwKLSsjZW5k aWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25UeXBl OjpnZXQoUmV0VHksIFBhcmFtVHlzLCBmYWxzZSkpOwotIAotICAgICAgICAgSVJCdWlsZGVyPD4g QnVpbGRlcihDSS0+Z2V0UGFyZW50KCksIEJhc2ljQmxvY2s6Oml0ZXJhdG9yKENJKSk7Ci0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCTIwMTctMTAtMjQgMDY6MDQ6 NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi1AQCAt ODIsNyArODIsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAq IDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICAgIE1vZHVsZSAqTSA9IEkt PmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgIEZ1bmN0 aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xf c2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsj ZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rp b24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5n ZXRUeXBlKCkpOwotKyNlbmRpZgotICNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0 ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMy VHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0cik7Ci0gI2VuZGlmCi1AQCAt MTI0LDcgKzEyOCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9S ICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgICAgTW9kdWxlICpNID0g SS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKTsKLSAjaWYgTExWTV9WRVJT SU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExWTV9WRVJT SU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgRnVu Y3Rpb25DYWxsZWUgc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29j bF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwot KyNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5j dGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCkt PmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNhbXBsZXJD dnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBp MzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpLCBudWxscHRyKTsKLSAjZW5kaWYKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3BwCTIwMTctMTAtMjQgMDY6MDQ6 NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAotQEAgLTE2 MywxMCArMTYzLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICAvLyBfX2dlbl9vY2xfc3RvcmVf dGltZXN0YW1wKGludCBudGgsIGludCB0eXBlKTsKLSAgICAgICBWYWx1ZSAqQXJnc1syXSA9IHtD b25zdGFudEludDo6Z2V0KGludFR5LCBwb2ludE51bSsrKSwgQ29uc3RhbnRJbnQ6OmdldChpbnRU eSwgcHJvZmlsaW5nVHlwZSl9OwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwobW9kdWxlLT5n ZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChj YXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2VuZGlm Ci0gICAgICAgICAgICAgICAiX19nZW5fb2NsX2NhbGNfdGltZXN0YW1wIiwgVHlwZTo6Z2V0Vm9p ZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAgICAgIEludGVnZXJUeXBlOjpn ZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9S ICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICAgIEludGVnZXJU eXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSksCi0rI2Vsc2UKLSAgICAgICAg ICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSkpLAot KyNlbmRpZgotICAgICAgICAgICAgICAgQXJyYXlSZWY8VmFsdWUqPihBcmdzKSk7Ci0gI2Vsc2UK LSAgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+ Z2V0T3JJbnNlcnRGdW5jdGlvbigKLUBAIC0xODUsMTAgKzE5MywxOCBAQCBuYW1lc3BhY2UgZ2Jl Ci0gICAgIFZhbHVlICpBcmdzMlsyXSA9IHtwcm9maWxpbmdCdWYsIENvbnN0YW50SW50OjpnZXQo aW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAg KyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAg KyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChtb2R1 bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vsc2UKLSAgICAgYnVpbGRlci0+Q3JlYXRlQ2Fs bChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vu ZGlmCi0gICAgICAgICAgICAgIl9fZ2VuX29jbF9zdG9yZV9wcm9maWxpbmciLCBUeXBlOjpnZXRW b2lkVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotICAgICAgICAgICAgIHB0clR5LAotKyNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAg ICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSksCi0r I2Vsc2UKLSAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENv bnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICBBcnJheVJlZjxWYWx1ZSo+KEFyZ3My KSk7Ci0gI2Vsc2UKLSAgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9u Pihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCi1AQCAtMzk4LDggKzM5OCwxMyBA QCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPFR5cGUgKj4gUGFy YW1UeXM7Ci0gICAgICAgICAgICAgICBmb3IgKFZhbHVlKiogaXRlciA9IGFyZ3MuYmVnaW4oKTsg aXRlciAhPSBhcmdzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICAgICAgICAgIFBhcmFtVHlzLnB1 c2hfYmFjaygoKml0ZXIpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgICAgICAgQ2FsbEluc3QqIG5l d0NJID0gYnVpbGRlci5DcmVhdGVDYWxsKG1vZC0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiX19nZW5fZW5xdWV1ZV9rZXJuZWxfc2xtIiwgRnVu Y3Rpb25UeXBlOjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxzZSkpLCBhcmdzKTsKLSsjZWxzZQot ICAgICAgICAgICAgICAgQ2FsbEluc3QqIG5ld0NJID0gYnVpbGRlci5DcmVhdGVDYWxsKGNhc3Q8 bGx2bTo6RnVuY3Rpb24+KG1vZC0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiX19nZW5fZW5xdWV1ZV9rZXJuZWxfc2xtIiwgRnVuY3Rpb25UeXBl OjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxzZSkpKSwgYXJncyk7Ci0rI2VuZGlmCi0gICAgICAg ICAgICAgICBDSS0+cmVwbGFjZUFsbFVzZXNXaXRoKG5ld0NJKTsKLSAgICAgICAgICAgICAgIGRl YWRJbnNuU2V0Lmluc2VydChDSSk7Ci0gICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTEwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWFmZTQ4YTI0MGQu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzNDcgKzAsMCBAQAotZGlmZiAtLWdpdCBDTWFrZS9GaW5kTExW TS5jbWFrZSBDTWFrZS9GaW5kTExWTS5jbWFrZQotaW5kZXggMGE1OWU0Ny4uNmU5MDkyMyAxMDA2 NDQKLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5kTExWTS5jbWFr ZQotQEAgLTEwNCwyOCArMTA0LDE2IEBAIHN0cmluZyhSRUdFWCBSRVBMQUNFICIgKlxuIiAiIiBM TFZNX1NZU1RFTV9MSUJTICR7TExWTV9TWVNURU1fTElCU19PUklHfSkKLSBlbmRpZiAoTExWTV9T WVNURU1fTElCU19PUklHKQotIGVuZGlmIChMTFZNX1ZFUlNJT05fTk9ET1QgVkVSU0lPTl9HUkVB VEVSIDM0KQotIAotKyNzb21ldGhpbmcgaGFybWxlc3MgYmVjYXVzZSB3aGl0ZXNwYWNlIGF0IHN0 YXJ0IGlzIGFuIGVycm9yCi0rc2V0KENMQU5HX0xJQlJBUklFUyAiLWxkbCIpCi0gbWFjcm8oYWRk X29uZV9saWIgbmFtZSkKLSAgIEZJTkRfTElCUkFSWShDTEFOR19MSUIKLSAgICAgTkFNRVMgJHtu YW1lfQotICAgICBQQVRIUyAke0xMVk1fTElCUkFSWV9ESVJ9IE5PX0RFRkFVTFRfUEFUSCkKLS0g IHNldChDTEFOR19MSUJSQVJJRVMgJHtDTEFOR19MSUJSQVJJRVN9ICR7Q0xBTkdfTElCfSkKLSsg IHNldChDTEFOR19MSUJSQVJJRVMgIiR7Q0xBTkdfTElCUkFSSUVTfSAke0NMQU5HX0xJQn0iKQot KyAgbWVzc2FnZShTVEFUVVMgImNsYW5nbGlicyBuYW1lICR7bmFtZX0gdGhpcyAke0NMQU5HX0xJ Qn0gYWxsICR7Q0xBTkdfTElCUkFSSUVTfSAiKQotIAl1bnNldChDTEFOR19MSUIgQ0FDSEUpCi0g ZW5kbWFjcm8oKQotIAotICNBc3N1bWUgY2xhbmcgbGliIHBhdGggc2FtZSBhcyBsbHZtIGxpYiBw YXRoCi0tYWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0tYWRkX29uZV9saWIoImNsYW5nRnJv bnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlcmlhbGl6YXRpb24iKQotLWFkZF9vbmVfbGli KCJjbGFuZ0RyaXZlciIpCi0tYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0tYWRkX29uZV9saWIo ImNsYW5nU3RhdGljQW5hbHl6ZXJGcm9udGVuZCIpCi0tYWRkX29uZV9saWIoImNsYW5nU3RhdGlj QW5hbHl6ZXJDaGVja2VycyIpCi0tYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJDb3Jl IikKLS1hZGRfb25lX2xpYigiY2xhbmdBbmFseXNpcyIpCi0tYWRkX29uZV9saWIoImNsYW5nRWRp dCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUIikKLS1hZGRfb25lX2xpYigiY2xhbmdBU1RNYXRj aGVycyIpCi0tYWRkX29uZV9saWIoImNsYW5nUGFyc2UiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1Nl bWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0xleCIpCi0tYWRkX29uZV9saWIoImNsYW5nQmFzaWMi KQotK2FkZF9vbmVfbGliKCJjbGFuZy1jcHAiKQotZGlmZiAtLWdpdCBDTWFrZUxpc3RzLnR4dCBD TWFrZUxpc3RzLnR4dAotaW5kZXggYzExYWNiYi4uMDhmNDI3ZCAxMDA2NDQKLS0tLSBhL0NNYWtl TGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4dAotQEAgLTc5LDcgKzc5LDcgQEAgZWxzZWlm IChDT01QSUxFUiBTVFJFUVVBTCAiQ0xBTkciKQotIGVsc2VpZiAoQ09NUElMRVIgU1RSRVFVQUwg IklDQyIpCi0gICBzZXQgKENNQUtFX0NfQ1hYX0ZMQUdTICIke0NNQUtFX0NfQ1hYX0ZMQUdTfSAg LXdkMjkyOCAtV2FsbCAtZlBJQyAtZnN0cmljdC1hbGlhc2luZyAtZnAtbW9kZWwgZmFzdCAtbXNz ZTQuMSAtV2wsLUUiKQotIGVuZGlmICgpCi0tc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0Vf Q1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtc3RkPWMrKzB4IC1Xbm8taW52YWxpZC1v ZmZzZXRvZiIpCi0rc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NN QUtFX0NfQ1hYX0ZMQUdTfSAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotIHNldCAoQ01BS0VfQ19G TEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSIpCi0gc2V0IChDTUFL RV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAtREdCRV9ERUJVRz0xIikKLSBzZXQg KENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nIC1ER0JFX0RFQlVHPTEiKQot ZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwIGJhY2tlbmQvc3JjL2Jh Y2tlbmQvcHJvZ3JhbS5jcHAKLWluZGV4IGIzNmY3YjQuLmU2NjYwMzEgMTAwNjQ0Ci0tLS0gYS9i YWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5k L3Byb2dyYW0uY3BwCi1AQCAtNjk0LDkgKzY5NCw5IEBAIG5hbWVzcGFjZSBnYmUgewotICNlbmRp ZgotICAgICAgICAgICAgICAgICApOwotIAotKyAgICBsbHZtOjpjbDo6UmVzZXRBbGxPcHRpb25P Y2N1cnJlbmNlcygpOwotICAgICBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uOjpDcmVhdGVGcm9t QXJncygqQ0ksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZhcmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29uc3QgY2hhcio+KGFyZ3MpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWFncyk7Ci0gICAg IC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW5zdGFuY2UKLSAgICAgY2xhbmc6OkNvbXBpbGVySW5z dGFuY2UgQ2xhbmc7Ci1AQCAtMTI0Miw4ICsxMjQyLDcgQEAgRVhURU5EX1FVT1RFOgotICAgICAg IC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW52b2NhdGlvbgotICAgICAgIHN0ZDo6dW5pcXVlX3B0 cjxjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uPiBDSShuZXcgY2xhbmc6OkNvbXBpbGVySW52b2Nh dGlvbik7Ci0gICAgICAgcmV0dXJuIGNsYW5nOjpDb21waWxlckludm9jYXRpb246OkNyZWF0ZUZy b21BcmdzKCpDSSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmFyZ3NbMF0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdICsgYXJncy5zaXplKCksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpBcnJh eVJlZjxjb25zdCBjaGFyKj4oYXJncyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERpYWdzKTsKLSAgICAgfQotICNlbmRpZgotZGlmZiAt LWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwIGJhY2tlbmQvc3JjL2xs dm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLWluZGV4IGM2ZmMzMGQuLjgyNDQxZDggMTAwNjQ0Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi0rKysgYi9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtNTc1LDEwICs1NzUsMTIgQEAgbmFt ZXNwYWNlIGdiZQotICAgICAgICAgaGFzX2Vycm9ycyhmYWxzZSksCi0gICAgICAgICBsZWdhY3lN b2RlKHRydWUpCi0gICAgIHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgMTAKLSAjaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgICBp bml0aWFsaXplTG9vcEluZm9XcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1Jl Z2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZUxvb3BJbmZvUGFzcygqUGFzc1Jl Z2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2VuZGlmCi0gICAgICAgcGFz cyA9IFBBU1NfRU1JVF9SRUdJU1RFUlM7Ci0gICAgIH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMv bGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tl bmQuaHBwCi1pbmRleCBiNDcxNWIxLi44ZTc0ZjdhIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dl bl9iYWNrZW5kLmhwcAotQEAgLTEzMCwxMCArMTMwLDEwIEBAIG5hbWVzcGFjZSBnYmUKLSAgIGxs dm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlR2VuUGFzcyhpcjo6VW5pdCAmdW5pdCk7Ci0gCi0gICAv KiEgUmVtb3ZlIHRoZSBHRVAgaW5zdHJ1Y3Rpb25zICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFz cyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCk7Ci0rICBsbHZtOjpG dW5jdGlvblBhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpOwot IAotICAgLyohIE1lcmdlIGxvYWQvc3RvcmUgaWYgcG9zc2libGUgKi8KLS0gIGxsdm06OkJhc2lj QmxvY2tQYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCk7Ci0rICBsbHZtOjpG dW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKTsKLSAKLSAgIC8q ISBTY2FsYXJpemUgYWxsIHZlY3RvciBvcCBpbnN0cnVjdGlvbnMgKi8KLSAgIGxsdm06OkZ1bmN0 aW9uUGFzcyogY3JlYXRlU2NhbGFyaXplUGFzcygpOwotQEAgLTE0MSw3ICsxNDEsNyBAQCBuYW1l c3BhY2UgZ2JlCi0gICBsbHZtOjpNb2R1bGVQYXNzKiBjcmVhdGVCYXJyaWVyTm9kdXBQYXNzKGJv b2wpOwotIAotICAgLyohIENvbnZlcnQgdGhlIEludHJpbnNpYyBjYWxsIHRvIGdlbiBmdW5jdGlv biAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFz cygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3Mo KTsKLSAKLSAgIC8qISBQYXNzZXIgdGhlIHByaW50ZiBmdW5jdGlvbiBjYWxsLiAqLwotICAgbGx2 bTo6RnVuY3Rpb25QYXNzKiBjcmVhdGVQcmludGZQYXJzZXJQYXNzKGlyOjpVbml0ICZ1bml0KTsK LWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAg YmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLWluZGV4IDk0ZjBj ZTYuLmI1NTM5ZTkgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2lj X2xvd2VyaW5nLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dl cmluZy5jcHAKLUBAIC0yOSwxMiArMjksMTIgQEAKLSB1c2luZyBuYW1lc3BhY2UgbGx2bTsKLSAK LSBuYW1lc3BhY2UgZ2JlIHsKLS0gICAgY2xhc3MgSW5zdHJpbnNpY0xvd2VyaW5nIDogcHVibGlj IEJhc2ljQmxvY2tQYXNzCi0rICAgIGNsYXNzIEluc3RyaW5zaWNMb3dlcmluZyA6IHB1YmxpYyBG dW5jdGlvblBhc3MKLSAgICAgewotICAgICBwdWJsaWM6Ci0gICAgICAgc3RhdGljIGNoYXIgSUQ7 Ci0gICAgICAgSW5zdHJpbnNpY0xvd2VyaW5nKCkgOgotLSAgICAgICAgQmFzaWNCbG9ja1Bhc3Mo SUQpIHt9Ci0rICAgICAgICBGdW5jdGlvblBhc3MoSUQpIHt9Ci0gCi0gICAgICAgdm9pZCBnZXRB bmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci0gCi1AQCAtOTMsOSArOTMs OSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgIENJLT5lcmFzZUZyb21QYXJlbnQoKTsKLSAg ICAgICAgIHJldHVybiBOZXdDSTsKLSAgICAgICB9Ci0tICAgICAgdmlydHVhbCBib29sIHJ1bk9u QmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikKLSsgICAgICB2aXJ0dWFsIGJvb2wgcnVuT25GdW5j dGlvbihGdW5jdGlvbiAmRikKLSAgICAgICB7Ci0tICAgICAgICBib29sIGNoYW5nZWRCbG9jayA9 IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIE1v ZHVsZSAqTSA9IEJCLmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKTsKLSAKLSAgICAgICAgIERhdGFM YXlvdXQgVEQoTSk7Ci1AQCAtMTU5LDEzICsxNTksMTQgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAg ICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0tICAgICAgICByZXR1cm4gY2hh bmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgfQot ICAgICB9OwotIAotICAgICBjaGFyIEluc3RyaW5zaWNMb3dlcmluZzo6SUQgPSAwOwotIAotLSAg ICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCkgewotKyAgICBG dW5jdGlvblBhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpIHsKLSAgICAgICByZXR1 cm4gbmV3IEluc3RyaW5zaWNMb3dlcmluZygpOwotICAgICB9Ci0gfSAvLyBlbmQgbmFtZXNwYWNl Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9u LmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLWlu ZGV4IDVhYTM4YmUuLmUzMTQzMDIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f bG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9s b2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotQEAgLTI2LDEzICsyNiwxMyBAQAotIAotIHVzaW5n IG5hbWVzcGFjZSBsbHZtOwotIG5hbWVzcGFjZSBnYmUgewotLSAgY2xhc3MgR2VuTG9hZFN0b3Jl T3B0aW1pemF0aW9uIDogcHVibGljIEJhc2ljQmxvY2tQYXNzIHsKLSsgIGNsYXNzIEdlbkxvYWRT dG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBGdW5jdGlvblBhc3MgewotIAotICAgcHVibGljOgot ICAgICBzdGF0aWMgY2hhciBJRDsKLSAgICAgU2NhbGFyRXZvbHV0aW9uICpTRTsKLSAgICAgY29u c3QgRGF0YUxheW91dCAqVEQ7Ci0tICAgIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbigpIDogQmFz aWNCbG9ja1Bhc3MoSUQpIHt9Ci0rICAgIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbigpIDogRnVu Y3Rpb25QYXNzKElEKSB7fQotIAotICAgICB2b2lkIGdldEFuYWx5c2lzVXNhZ2UoQW5hbHlzaXNV c2FnZSAmQVUpIGNvbnN0IHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZF UlNJT05fTUlOT1IgPj0gMzgKLUBAIC00NSw3ICs0NSw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAg ICAgIEFVLnNldFByZXNlcnZlc0NGRygpOwotICAgICB9Ci0gCi0tICAgIHZpcnR1YWwgYm9vbCBy dW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpIHsKLSsgICAgdmlydHVhbCBib29sIHJ1bk9u RnVuY3Rpb24oRnVuY3Rpb24gJkYpIHsKLSsgICAgICAgIGJvb2wgY2hhbmdlZEFueUJsb2NrID0g ZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxvY2sgJkJCIDogRikgewotICNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzOAotICAgICAgIFNFID0g JmdldEFuYWx5c2lzPFNjYWxhckV2b2x1dGlvbldyYXBwZXJQYXNzPigpLmdldFNFKCk7Ci0gI2Vs c2UKLUBAIC01OSw3ICs2MSw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICNlbHNlCi0gICAg ICAgICBURCA9IGdldEFuYWx5c2lzSWZBdmFpbGFibGU8RGF0YUxheW91dD4oKTsKLSAgICAgICAj ZW5kaWYKLS0gICAgICByZXR1cm4gb3B0aW1pemVMb2FkU3RvcmUoQkIpOwotKyAgICAgICAgICAg Y2hhbmdlZEFueUJsb2NrID0gb3B0aW1pemVMb2FkU3RvcmUoQkIpIHwgY2hhbmdlZEFueUJsb2Nr OwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIGNoYW5nZWRBbnlCbG9jazsKLSAgICAgfQot ICAgICBUeXBlICAgICpnZXRWYWx1ZVR5cGUoVmFsdWUgKmluc24pOwotICAgICBWYWx1ZSAgICpn ZXRQb2ludGVyT3BlcmFuZChWYWx1ZSAqSSk7Ci1AQCAtMTQ4LDcgKzE1Miw3IEBAIG5hbWVzcGFj ZSBnYmUgewotICAgICAgIHZhbHVlcy5wdXNoX2JhY2sobWVyZ2VkW2ldKTsKLSAgICAgfQotICAg ICBMb2FkSW5zdCAqbGQgPSBjYXN0PExvYWRJbnN0PihtZXJnZWRbMF0pOwotLSAgICB1bnNpZ25l ZCBhbGlnbiA9IGxkLT5nZXRBbGlnbm1lbnQoKTsKLSsgICAgTWF5YmVBbGlnbiBhbGlnbiA9IGxk LT5nZXRBbGlnbigpOwotICAgICB1bnNpZ25lZCBhZGRyU3BhY2UgPSBsZC0+Z2V0UG9pbnRlckFk ZHJlc3NTcGFjZSgpOwotICAgICAvLyBpbnNlcnQgYmVmb3JlIGZpcnN0IGxvYWQKLSAgICAgQnVp bGRlci5TZXRJbnNlcnRQb2ludChsZCk7Ci1AQCAtMjMxLDcgKzIzNSw3IEBAIG5hbWVzcGFjZSBn YmUgewotIAotICAgICB1bnNpZ25lZCBhZGRyU3BhY2UgPSBzdC0+Z2V0UG9pbnRlckFkZHJlc3NT cGFjZSgpOwotIAotLSAgICB1bnNpZ25lZCBhbGlnbiA9IHN0LT5nZXRBbGlnbm1lbnQoKTsKLSsg ICAgTWF5YmVBbGlnbiBhbGlnbiA9IHN0LT5nZXRBbGlnbigpOwotICAgICAvLyBpbnNlcnQgYmVm b3JlIHRoZSBsYXN0IHN0b3JlCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobWVyZ2VkW3Np emUtMV0pOwotIAotQEAgLTMyNSw3ICszMjksNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgcmV0 dXJuIGNoYW5nZWQ7Ci0gICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlTG9hZFN0b3Jl T3B0aW1pemF0aW9uUGFzcygpIHsKLSsgIEZ1bmN0aW9uUGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0 aW1pemF0aW9uUGFzcygpIHsKLSAgICAgcmV0dXJuIG5ldyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRp b24oKTsKLSAgIH0KLSB9OwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2Vz LmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotaW5kZXggMTA3NTJhMy4uYjhm MjI4MiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotQEAgLTM3LDcgKzM3LDcgQEAKLSAj aW5jbHVkZSAic3lzL21hcC5ocHAiCi0gCi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0tCi0rdGVt cGxhdGUgY2xhc3MgY2ZnOjpVcGRhdGU8QmFzaWNCbG9jayAqPjsKLSBuYW1lc3BhY2UgZ2JlCi0g ewotICAgYm9vbCBpc0tlcm5lbEZ1bmN0aW9uKGNvbnN0IGxsdm06OkZ1bmN0aW9uICZGKSB7Ci1A QCAtMjE5LDEzICsyMTksMTMgQEAgbmFtZXNwYWNlIGdiZQotICAgICByZXR1cm4gb2Zmc2V0Owot ICAgfQotIAotLSAgY2xhc3MgR2VuUmVtb3ZlR0VQUGFzc3MgOiBwdWJsaWMgQmFzaWNCbG9ja1Bh c3MKLSsgIGNsYXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGljIEZ1bmN0aW9uUGFzcwotICAg ewotIAotICAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAgIEdlblJlbW92ZUdF UFBhc3NzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSA6Ci0tICAgICAgQmFzaWNCbG9ja1Bhc3MoSUQp LAotKyAgICAgIEZ1bmN0aW9uUGFzcyhJRCksCi0gICAgICAgdW5pdCh1bml0KSB7fQotICAgICBj b25zdCBpcjo6VW5pdCAmdW5pdDsKLSAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lz VXNhZ2UgJkFVKSBjb25zdCB7Ci1AQCAtMjQyLDE2ICsyNDIsMTggQEAgbmFtZXNwYWNlIGdiZQot IAotICAgICBib29sIHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKEdldEVsZW1lbnRQdHJJbnN0KiBH RVBJbnN0KTsKLSAKLS0gICAgdmlydHVhbCBib29sIHJ1bk9uQmFzaWNCbG9jayhCYXNpY0Jsb2Nr ICZCQikKLSsgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpCi0gICAg IHsKLS0gICAgICBib29sIGNoYW5nZWRCbG9jayA9IGZhbHNlOwotKyAgICAgIGJvb2wgY2hhbmdl ZEFueUJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgIGlwbGlzdDxJbnN0cnVjdGlvbj46Oml0ZXJhdG9yIEkgPSBCQi5nZXRJbnN0TGlzdCgp LmJlZ2luKCk7Ci0gICAgICAgZm9yIChhdXRvIG5leHRJID0gSSwgRSA9IC0tQkIuZ2V0SW5zdExp c3QoKS5lbmQoKTsgSSAhPSBFOyBJID0gbmV4dEkpIHsKLSAgICAgICAgIGlwbGlzdDxJbnN0cnVj dGlvbj46Oml0ZXJhdG9yIEkgPSBuZXh0SSsrOwotICAgICAgICAgaWYoR2V0RWxlbWVudFB0cklu c3QqIGdlcCA9IGR5bl9jYXN0PEdldEVsZW1lbnRQdHJJbnN0PigmKkkpKQotLSAgICAgICAgICBj aGFuZ2VkQmxvY2sgPSAoc2ltcGxpZnlHRVBJbnN0cnVjdGlvbnMoZ2VwKSB8fCBjaGFuZ2VkQmxv Y2spOwotKyAgICAgICAgICBjaGFuZ2VkQW55QmxvY2sgPSAoc2ltcGxpZnlHRVBJbnN0cnVjdGlv bnMoZ2VwKSB8IGNoYW5nZWRBbnlCbG9jayk7Ci0gICAgICAgfQotLSAgICAgIHJldHVybiBjaGFu Z2VkQmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgcmV0dXJuIGNoYW5nZWRBbnlCbG9jazsKLSAg ICAgfQotICAgfTsKLSAKLUBAIC0zNjcsNyArMzY5LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgICBy ZXR1cm4gdHJ1ZTsKLSAgIH0KLSAKLS0gIEJhc2ljQmxvY2tQYXNzICpjcmVhdGVSZW1vdmVHRVBQ YXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSB7Ci0rICBGdW5jdGlvblBhc3MgKmNyZWF0ZVJlbW92 ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIHsKLSAgICAgcmV0dXJuIG5ldyBHZW5SZW1v dmVHRVBQYXNzcyh1bml0KTsKLSAgIH0KLSB9IC8qIG5hbWVzcGFjZSBnYmUgKi8KLWRpZmYgLS1n aXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcCBiYWNrZW5kL3NyYy9sbHZt L2xsdm1fc2FtcGxlcl9maXguY3BwCi1pbmRleCAyYTA5N2M4Li44NjNiZTZkIDEwMDY0NAotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTMzLDEwICszMywxMiBAQCBuYW1lc3Bh Y2UgZ2JlIHsKLSAgIGNsYXNzIFNhbXBsZXJGaXggOiBwdWJsaWMgRnVuY3Rpb25QYXNzIHsKLSAg IHB1YmxpYzoKLSAgICAgU2FtcGxlckZpeCgpIDogRnVuY3Rpb25QYXNzKElEKSB7Ci0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExW TV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVXcmFw cGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0g ICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NS ZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAgICAgfQotIAotZGlmZiAtLWdpdCBiYWNr ZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2Nh bGFyaXplLmNwcAotaW5kZXggZTlhMmE2Ni4uZTlkMmVlNCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f c2NhbGFyaXplLmNwcAotQEAgLTk2LDEwICs5NiwxMiBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAKLSAg ICAgU2NhbGFyaXplKCkgOiBGdW5jdGlvblBhc3MoSUQpCi0gICAgIHsKLSsjaWYgTExWTV9WRVJT SU9OX01BSk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJ T05fTUlOT1IgPj0gMzUKLSAgICAgICBpbml0aWFsaXplRG9taW5hdG9yVHJlZVdyYXBwZXJQYXNz UGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0gI2Vsc2UKLSAgICAgICBp bml0aWFsaXplRG9taW5hdG9yVHJlZVBhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5 KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICB9Ci0gCi1kaWZmIC0tZ2l0IHV0ZXN0cy9DTWFr ZUxpc3RzLnR4dCB1dGVzdHMvQ01ha2VMaXN0cy50eHQKLWluZGV4IDMwMGQ4N2EuLjY0MTc5Yzcg MTAwNjQ0Ci0tLS0gYS91dGVzdHMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL3V0ZXN0cy9DTWFrZUxp c3RzLnR4dAotQEAgLTI2LDggKzI2LDggQEAgaWYgKE5PVCBOT1RfQlVJTERfU1RBTkRfQUxPTkVf VVRFU1QpCi0gICAjIFRocmVhZHMKLSAgIEZpbmRfUGFja2FnZShUaHJlYWRzKQotIAotLSAgc2V0 IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdT fSAtc3RkPWMrKzB4IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIpCi0tICBzZXQgKENNQUtFX0NfRkxB R1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30iKQotKyAgc2V0IChDTUFL RV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtV25v LWludmFsaWQtb2Zmc2V0b2YgLWZmbG9hdC1zdG9yZSAtZm5vLXN0cmljdC1hbGlhc2luZyIpCi0r ICBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFH U30gLWZmbG9hdC1zdG9yZSAtZm5vLXN0cmljdC1hbGlhc2luZyIpICNjb21waWxlcl97ZGVncmVl cyxyYWRpYW5zLGZ1bmN0aW9uX2FyZ3VtZW50Mn0gdXNlIGVxdWFsaXR5IGNvbXBhcmlzb24gb2Yg ZmxvYXRzLCBjb21waWxlcl9sb25nX2JpdGNhc3QgdXNlcyBhbGlhc2luZwotICAgc2V0IChDTUFL RV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAtREdCRV9ERUJVRz0xIikKLSAgIHNl dCAoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZPICItTzIgLWcgLURHQkVfREVCVUc9MSIp Ci0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19NSU5TSVpFUkVMICAgICAiLU9zIC1ETkRFQlVHIC1E R0JFX0RFQlVHPTAiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEx LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAyYzNhNDI3ODk0M2MuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5Mzcg KzAsMCBAQAotU291cmNlOiBTbmVrdHJvbgotCi1UaGVyZSB3ZXJlIGEgZmV3IGNoYW5nZXMgcmVx dWlyZWQgZm9yIExMVk0gMTE6Ci0qIGxsdm06OlN0cmluZ1JlZiByZXF1aXJlcyAuc3RyKCksIGlt cGxpY2l0IGNvbnZlcnNpb24gd2FzIHJlbW92ZWQKLSogbGx2bTo6Q2FsbFNpdGUgd2FzIHJlbW92 ZWQsIGJ1dCB0aGUgcmVxdWlyZWQgbWV0aG9kcyBhcmUgYXZhaWxhYmxlIG9uIGxsdm06OkNhbGxJ bnN0Ci0qIFZlY3RvclR5SUQgd2FzIHNwbGl0IGludG8gRml4ZWRWZWN0b3JUeUlEIGFuZCBTY2Fs YWJsZVZlY3RvclR5SUQsIEZpeGVkVmVjdG9yVHlJRCB3YXMgdXNlZAotKiBDYWxsSW5zdDo6Z2V0 Q2FsbGVkVmFsdWUoKSB3YXMgcmVuYW1lZCB0byBDYWxsSW5zdDo6Z2V0Q2FsbGVkT3BlcmFuZCgp Ci0qIEltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBNYXliZUFsaWduIHRvIEFsaWduIHdhcyByZW1v dmVkLCBzbyBNYXliZUFsaWduOjp2YWx1ZU9yT25lIHdhcyB1c2VkIGluc3RlYWQuCi0KLS0tLSBh L2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIw LjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9TdHJpcEF0dHJpYnV0ZXMu Y3BwCTIwMjAtMTEtMDkgMTk6MDQ6MTkuNjQxODk3MTQxICswMTAwCi1AQCAtMTA3LDkgKzEwNyw4 IEBACi0gICAgICAgIEJCICE9IEU7ICsrQkIpIHsKLSAgICAgZm9yIChCYXNpY0Jsb2NrOjppdGVy YXRvciBJbnN0ID0gQkItPmJlZ2luKCksIEUgPSBCQi0+ZW5kKCk7Ci0gICAgICAgICAgSW5zdCAh PSBFOyArK0luc3QpIHsKLS0gICAgICBDYWxsU2l0ZSBDYWxsKCYqSW5zdCk7Ci0tICAgICAgaWYg KENhbGwpCi0tICAgICAgICBDYWxsLnNldENhbGxpbmdDb252KENhbGxpbmdDb252OjpDKTsKLSsg ICAgICBpZiAoQ2FsbEluc3QqIGNhbGxJbnN0ID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KCYqSW5zdCkp Ci0rICAgICAgICBjYWxsSW5zdC0+c2V0Q2FsbGluZ0NvbnYoQ2FsbGluZ0NvbnY6OkMpOwotICAg ICB9Ci0gICB9Ci0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3Bw CTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE3OjA0OjA5LjYzMzc1MzQyOCAr MDEwMAotQEAgLTk4LDcgKzk4LDcgQEAKLSAgICAgICAgIGlmIChjYWxsRnVuYyAmJiBjYWxsRnVu Yy0+Z2V0SW50cmluc2ljSUQoKSAhPSAwKQotICAgICAgICAgICBjb250aW51ZTsKLQotLSAgICAg ICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKS0+c3RyaXBQb2lu dGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gY2Fs bC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3Ry KCk7Ci0KLSAgICAgICAgIGlmICghTUZTLmluc2VydChmbk5hbWUpLnNlY29uZCkgewotICAgICAg ICAgICBjb250aW51ZTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1 ZS5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAyMC0xMS0wOSAxOTowMTo0OS4yMDE5 MTUwMDggKzAxMDAKLUBAIC00NSw3ICs0NSw3IEBACi0gICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAg ICAgLyogVGhpcyBpcyBhIGZha2UsIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiBiaXRjYXN0IGlzIGZv ciBibG9jayBvciBub3QgKi8KLS0gICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdldE5hbWUo KTsKLSsgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdldE5hbWUoKS5zdHIoKTsKLSAgICAg aWYoZm5OYW1lLmZpbmQoIl9pbnZva2UiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSAgICAgICBy ZXR1cm4gTlVMTDsKLQotQEAgLTExOSwxOCArMTE5LDE4IEBACi0gICAgICAgUGFyYW1UeXMucHVz aF9iYWNrKHR5KTsKLSAgICAgfQotICAgICBGdW5jdGlvblR5cGUqIE5ld0ZUID0gRnVuY3Rpb25U eXBlOjpnZXQoRm4tPmdldFJldHVyblR5cGUoKSwgUGFyYW1UeXMsIGZhbHNlKTsKLS0gICAgRnVu Y3Rpb24qIE5ld0ZuID0gRnVuY3Rpb246OkNyZWF0ZShOZXdGVCwgRnVuY3Rpb246OkV4dGVybmFs TGlua2FnZSwgRm4tPmdldE5hbWUoKSk7Ci0rICAgIEZ1bmN0aW9uKiBOZXdGbiA9IEZ1bmN0aW9u OjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExpbmthZ2UsIEZuLT5nZXROYW1lKCku c3RyKCkpOwotICAgICBTbWFsbFZlY3RvcjxSZXR1cm5JbnN0KiwgOD4gUmV0dXJuczsKLQotICAg ICBGdW5jdGlvbjo6YXJnX2l0ZXJhdG9yIE5ld0ZuQXJnSXQgPSBOZXdGbi0+YXJnX2JlZ2luKCk7 Ci0gICAgIGZvciAoRnVuY3Rpb246OmFyZ19pdGVyYXRvciBJID0gRm4tPmFyZ19iZWdpbigpLCBF ID0gRm4tPmFyZ19lbmQoKTsgSSAhPSBFOyArK0kpIHsKLS0gICAgICBzdGQ6OnN0cmluZyBBcmdO YW1lID0gSS0+Z2V0TmFtZSgpOwotKyAgICAgIHN0ZDo6c3RyaW5nIEFyZ05hbWUgPSBJLT5nZXRO YW1lKCkuc3RyKCk7Ci0gICAgICAgTmV3Rm5BcmdJdC0+c2V0TmFtZShBcmdOYW1lKTsKLSAgICAg ICBWTWFwWyYqSV0gPSAmKCpOZXdGbkFyZ0l0KyspOwotICAgICB9Ci0gICAgIENsb25lRnVuY3Rp b25JbnRvKE5ld0ZuLCBGbiwgVk1hcCwgLypNb2R1bGVMZXZlbENoYW5nZXM9Ki90cnVlLCBSZXR1 cm5zKTsKLQotLSAgICBGbi0+c2V0TmFtZSgiX19kIiArIEZuLT5nZXROYW1lKCkpOwotKyAgICBG bi0+c2V0TmFtZSgiX19kIiArIEZuLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICBtb2QtPmdldEZ1 bmN0aW9uTGlzdCgpLnB1c2hfYmFjayhOZXdGbik7Ci0gICAgIC8vbW9kLT5nZXRPckluc2VydEZ1 bmN0aW9uKE5ld0ZuLT5nZXROYW1lKCksIE5ld0ZuLT5nZXRGdW5jdGlvblR5cGUoKSwKLSAgICAg Ly8gICAgICAgICAgICAgICAgICAgICAgICAgTmV3Rm4tPmdldEF0dHJpYnV0ZXMoKSk7Ci1AQCAt MTQ3LDcgKzE0Nyw3IEBACi0gICAgICAgYXJnVHlwZU5hbWVzLnB1c2hfYmFjayhsbHZtOjpNRFN0 cmluZzo6Z2V0KENvbnRleHQsICJjaGFyKiIpKTsKLSAgICAgICBhcmdCYXNlVHlwZU5hbWVzLnB1 c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICJjaGFyKiIpKTsKLSAgICAgICBh cmdUeXBlUXVhbHMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgIiIpKTsK LS0gICAgICBhcmdOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCBJ LT5nZXROYW1lKCkpKTsKLSsgICAgICBhcmdOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6 OmdldChDb250ZXh0LCBJLT5nZXROYW1lKCkuc3RyKCkpKTsKLSAgICAgfQotCi0gICAgIC8vSWYg cnVuIHRvIGhlcmUsIGxsdm0gdmVyc2lvbiBhbHdheXMgPiAzLjksIGFkZCB0aGUgdmVyc2lvbiBj aGVjayBqdXN0IGZvciBidWlsZC4KLUBAIC0xOTgsNyArMTk4LDcgQEAKLSAgICAgICAgICAgICog aW52b2tlIHBvaW50ZXIgdG8gc3RvcmUgdGhlIGluZGV4IGluIHRoZSB1bml0J3MgYmxvY2sgZnVu Y3Rpb25zIGluZGV4LiovCi0gICAgICAgICAgIEZ1bmN0aW9uICpGbiA9IGR5bl9jYXN0PEZ1bmN0 aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0KLS0gICAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1l ID0gRm4tPmdldE5hbWUoKTsKLSsgICAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdl dE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgaW50IGluZGV4ID0gLTE7Ci0gICAgICAgICAgIGZv cihzaXplX3QgaT0wOyBpPHVuaXQuYmxvY2tGdW5jcy5zaXplKCk7IGkrKykgewotICAgICAgICAg ICAgIGlmKHVuaXQuYmxvY2tGdW5jc1tpXSA9PSBmbk5hbWUpIHsKLUBAIC0yNDEsNyArMjQxLDcg QEAKLSAgICAgICAgICAgICAvL3VubmFtZWQgY2FsbCBmdW5jdGlvbiwgcGFyc2UgdGhlIHVzZSB0 byBmaW5kIHRoZSBkZWZpbmUgb2YgY2FsbGVkIGZ1bmN0aW9uCi0gICAgICAgICAgICAgU21hbGxW ZWN0b3I8VmFsdWUqLCAxNj4gYXJncyhDSS0+b3BfYmVnaW4oKSwgQ0ktPm9wX2VuZCgpLTEpOwot Ci0tICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2FsbGVkVmFsdWUoKTsKLSsgICAgICAg ICAgICBWYWx1ZSAqdiA9IENJLT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0gICAgICAgICAgICAgQml0 Q2FzdEluc3QqIGJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+KHYpOwotICAgICAgICAgICAgIGlm KGJ0ID09IE5VTEwpCi0gICAgICAgICAgICAgICBjb250aW51ZTsKLUBAIC0zMTYsNyArMzE2LDcg QEAKLSAgICAgICAgICAgICAgICAgICBDb25zdGFudEV4cHIgKmV4cHIgPSBkeW5fY2FzdDxDb25z dGFudEV4cHI+KGMtPmdldE9wZXJhbmQoMykpOwotICAgICAgICAgICAgICAgICAgIEJpdENhc3RJ bnN0ICpidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0PihleHByLT5nZXRBc0luc3RydWN0aW9uKCkp OwotICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uKiBmID0gZHluX2Nhc3Q8RnVuY3Rpb24+KGJ0 LT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5nZXRO YW1lKCk7Ci0rICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpLnN0cigp OwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0KLUBAIC0zMzIsNyArMzMy LDcgQEAKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvL2hhbmRsZSBlbnF1ZXVl X2tlcm5lbCBmdW5jdGlvbiBjYWxsCi0gICAgICAgICAgICAgRnVuY3Rpb24gKmZuID0gQ0ktPmdl dENhbGxlZEZ1bmN0aW9uKCk7Ci0tICAgICAgICAgICAgaWYgKGZuLT5nZXROYW1lKCkuZmluZCgi ZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSsgICAgICAgICAgICBpZiAo Zm4tPmdldE5hbWUoKS5zdHIoKS5maW5kKCJlbnF1ZXVlX2tlcm5lbCIpID09IHN0ZDo6c3RyaW5n OjpucG9zKQotICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAvL2Jsb2Nr IHBhcmFtZXRlcidzIGluZGV4LCAzIG9yIDYKLUBAIC0zNjEsNyArMzYxLDcgQEAKLSAgICAgICAg ICAgICAgICAgICBDb25zdGFudEV4cHIgKmV4cHIgPSBkeW5fY2FzdDxDb25zdGFudEV4cHI+KGMt PmdldE9wZXJhbmQoMykpOwotICAgICAgICAgICAgICAgICAgIEJpdENhc3RJbnN0ICpidCA9IGR5 bl9jYXN0PEJpdENhc3RJbnN0PihleHByLT5nZXRBc0luc3RydWN0aW9uKCkpOwotICAgICAgICAg ICAgICAgICAgIEZ1bmN0aW9uKiBmID0gZHluX2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVyYW5k KDApKTsKLS0gICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5nZXROYW1lKCk7Ci0rICAg ICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSBlbHNlIGlmKGlzYTxB bGxvY2FJbnN0PihibG9jaykpIHsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFj a2VuZC5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAyMC0xMS0wOSAxODozMzo1MC45MTkx MTQzMjcgKzAxMDAKLUBAIC0zNzYsNyArMzc2LDcgQEAKLSAgICAgICAgICAgR0JFX0FTU0VSVChp bmRleCA9PSAwKTsKLSAgICAgICAgICAgcmV0dXJuIHRoaXMtPl9uZXdTY2FsYXIodmFsdWUsIGtl eSwgdHlwZSwgaW5kZXgsIHVuaWZvcm0pOwotICAgICAgICAgICBicmVhazsKLS0gICAgICAgIGNh c2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlE OgotICAgICAgICAgewotICAgICAgICAgICBhdXRvIHZlY3RvclR5cGUgPSBjYXN0PFZlY3RvclR5 cGU+KHR5cGUpOwotICAgICAgICAgICBhdXRvIGVsZW1lbnRUeXBlID0gdmVjdG9yVHlwZS0+Z2V0 RWxlbWVudFR5cGUoKTsKLUBAIC03NDMsMjAgKzc0MywyMCBAQAotICN1bmRlZiBERUNMX1ZJU0lU X0ZOCi0KLSAgICAgLy8gRW1pdCByb3VuZGluZyBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZl IGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIENh bGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRSb3VuZGluZ0Nh bGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgdW5h cnkgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRV bmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2Rl LCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSsgICAgdm9pZCBlbWl0VW5hcnlDYWxsSW5z dChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlID0gaXI6OlRZUEVfRkxP QVQpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9ucyBmcm9tIGdlbiBuYXRpdmUgZnVu Y3Rpb24KLS0gICAgdm9pZCBlbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNT LCBpcjo6QXRvbWljT3BzIG9wY29kZSk7Ci0rICAgIHZvaWQgZW1pdEF0b21pY0luc3QoQ2FsbElu c3QgJkksIGlyOjpBdG9taWNPcHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1pdCB3b3JrZ3JvdXAgaW5z dHJ1Y3Rpb25zCi0tICAgIHZvaWQgZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRXb3JrR3Jv dXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVt aXQgc3ViZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZvaWQgZW1pdFN1Ykdyb3VwSW5zdChDYWxs SW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSk7Ci0rICAgIHZv aWQgZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUp OwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRl LCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpUWVBFX1UzMik7Ci0tICAgIHZvaWQg ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJv b2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwot KyAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNX cml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotKyAgICB2 b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRl LCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpUWVBFX1UzMik7Ci0KLS0gICAgdWlu dDhfdCBhcHBlbmRTYW1wbGVyKENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkpOwotKyAgICB1aW50 OF90IGFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkpOwotICAgICB1aW50OF90IGdl dEltYWdlSUQoQ2FsbEluc3QgJkkpOwotCi0gICAgIC8vIFRoZXNlIGluc3RydWN0aW9ucyBhcmUg bm90IHN1cHBvcnRlZCBhdCBhbGwKLUBAIC0xMzIwLDEzICsxMzIwLDEzIEBACi0gI2VuZGlmCi0K LSAgICAgICBpZih0eXBlTmFtZU5vZGUpIHsKLS0gICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAo Y2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpOwotKyAgICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFt ZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgfQot ICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpIHsKLS0gICAgICAgIGxsdm1JbmZvLnR5cGVCYXNl TmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkp KS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWU9IChjYXN0PE1E U3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp LnN0cigpOwotICAgICAgIH0KLS0gICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJp bmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLS0gICAg ICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5nPih0eXBlUXVhbE5vZGUtPmdldE9w ZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChj YXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5n KCkuc3RyKCk7Ci0rICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlw ZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAg IGJvb2wgaXNJbWFnZSA9IGxsdm1JbmZvLmlzSW1hZ2VUeXBlKCk7Ci0gICAgICAgYm9vbCBpc1Bp cGUgPSBsbHZtSW5mby5pc1BpcGVUeXBlKCk7Ci0gICAgICAgaWYgKEktPmdldFR5cGUoKS0+aXNQ b2ludGVyVHkoKSB8fCBpc0ltYWdlIHx8IGlzUGlwZSkgewotQEAgLTE1MzEsNyArMTUzMSw3IEBA Ci0gICAgICAgICAgICAgRWx0VHkgPSBnZXRFbHRUeXBlKEVsdFR5LCBUeXBlSW5kZXgpOwotICAg ICAgICAgfQotCi0tICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0 KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpKTsKLSsgICAgICAgIGlyOjpDb25zdGFu dCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudChwb2ludGVyLT5nZXROYW1l KCkuc3RyKCkpOwotICAgICAgICAgdW5zaWduZWQgaW50IGRlZk9mZnNldCA9IGNjLmdldE9mZnNl dCgpOwotICAgICAgICAgcmVsb2NzLnB1c2hfYmFjayhpcjo6UmVsb2NFbnRyeShvZmZzZXQsIGRl Zk9mZnNldCArIGNvbnN0YW50T2Zmc2V0KSk7Ci0KLUBAIC0xNTQ2LDcgKzE1NDYsNyBAQAotICAg ICAgIHJldHVybjsKLSAgICAgfQotICAgICBpZiAoaXNhPEdsb2JhbFZhcmlhYmxlPihjKSkgewot LSAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFu dChjLT5nZXROYW1lKCkpOwotKyAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29uc3Rh bnRTZXQoKS5nZXRDb25zdGFudChjLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICAgIHVuc2lnbmVk IGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLQotICAgICAgIHJlbG9jcy5wdXNoX2Jh Y2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQpKTsKLUBAIC0xNjA5LDcgKzE2MDks NyBAQAotICAgICAgICAgICB9Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotLSAgICAg IGNhc2UgVHlwZTo6VHlwZUlEOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6VHlwZUlE OjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0YW50 RGF0YVNlcXVlbnRpYWwgKmNkcyA9IGR5bl9jYXN0PENvbnN0YW50RGF0YVNlcXVlbnRpYWw+KGMp OwotICAgICAgICAgICBjb25zdCBWZWN0b3JUeXBlICp2ZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4o dHlwZSk7Ci1AQCAtMTkzNiw3ICsxOTM2LDcgQEAKLSAgICAgICBjYXNlIFR5cGU6OlBvaW50ZXJU eUlEOgotICAgICAgICAgcmVnVHJhbnNsYXRvci5uZXdTY2FsYXIodmFsdWUsIGtleSwgMCwgdW5p Zm9ybSk7Ci0gICAgICAgICBicmVhazsKLS0gICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0r ICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgewotICAgICAgICAgYXV0 byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKLSAgICAgICAgIGNvbnN0IHVp bnQzMl90IGVsZW1OdW0gPSB2ZWN0b3JUeXBlLT5nZXROdW1FbGVtZW50cygpOwotQEAgLTIzOTUs NyArMjM5NSw3IEBACi0gI2VuZGlmCi0gICAgICAgICB9Ci0gICAgICAgICBpZih0eXBlTmFtZU5v ZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlw ZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBs bHZtSW5mby50eXBlTmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJh bmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICAgIC8vTExWTSAzLjkgaW1h Z2UncyB0eXBlIG5hbWUgaW5jbHVkZSBhY2Nlc3MgcXVhbCwgZG9uJ3QgbWF0Y2ggT3BlbkNMIHNw ZWMsIGVyYXNlIHRoZW0uCi0gICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBmaWx0 ZXJzID0geyJfX3JlYWRfb25seSAiLCAiX193cml0ZV9vbmx5ICJ9OwotICAgICAgICAgICBmb3Ig KHVpbnQzMl90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7IGkrKykgewotQEAgLTI0MDYsMTYg KzI0MDYsMTYgQEAKLSAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZUJh c2VOYW1lTm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVCYXNlTmFtZSA9IChjYXN0PE1E U3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp OwotKyAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlw ZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAg ICAgICAgIH0KLSAgICAgICAgIGlmKGFjY2Vzc1F1YWxOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1J bmZvLmFjY2Vzc1F1YWwgPSAoY2FzdDxNRFN0cmluZz4oYWNjZXNzUXVhbE5vZGUtPmdldE9wZXJh bmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLmFjY2Vzc1F1YWwg PSAoY2FzdDxNRFN0cmluZz4oYWNjZXNzUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0 U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZih0eXBlUXVhbE5vZGUpIHsK LS0gICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxO b2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5m by50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5nPih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJ RCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZihhcmdOYW1l Tm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLmFyZ05hbWUgPSAoY2FzdDxNRFN0cmluZz4oYXJn TmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxs dm1JbmZvLmFyZ05hbWUgPSAoY2FzdDxNRFN0cmluZz4oYXJnTmFtZU5vZGUtPmdldE9wZXJhbmQo b3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIC8vIGZ1 bmN0aW9uIGFyZ3VtZW50cyBhcmUgdW5pZm9ybSB2YWx1ZXMuCi1AQCAtMzAxMCw3ICszMDEwLDcg QEAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHRoaXMtPm5ld1JlZ2lzdGVyKGNvbnN0 X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdikpOwotICAgICAgICAgICBpcjo6UmVnaXN0ZXIgcmVn ID0gcmVnVHJhbnNsYXRvci5nZXRTY2FsYXIoY29uc3RfY2FzdDxHbG9iYWxWYXJpYWJsZSo+KCZ2 KSwgMCk7Ci0tICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0gdW5pdC5nZXRDb25zdGFudFNl dCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpKTsKLSsgICAgICAgICAgaXI6OkNvbnN0YW50ICZj b24gPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQodi5nZXROYW1lKCkuc3RyKCkp OwotICAgICAgICAgICBpZiAoIWxlZ2FjeU1vZGUpIHsKLSAgICAgICAgICAgICBpcjo6UmVnaXN0 ZXIgcmVnbG9hZCA9IGN0eC5yZWcoZ2V0RmFtaWx5KGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSkp KTsKLSAgICAgICAgICAgICBjdHguTE9BREkoZ2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSwgcmVn bG9hZCwgY3R4Lm5ld0ludGVnZXJJbW1lZGlhdGUoY29uLmdldE9mZnNldCgpLCBnZXRUeXBlKGN0 eCwgdi5nZXRUeXBlKCkpKSk7Ci1AQCAtMzIxMiw3ICszMjEyLDcgQEAKLSAgICAgICAgIEdCRV9B U1NFUlRNKGZhbHNlLCAiVW5zdXBwb3J0ZWQgY2FsbGluZyBjb252ZW50aW9uIik7Ci0gICAgIH0K LQotLSAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKSk7Ci0rICAgIGN0eC5zdGFydEZ1 bmN0aW9uKEYuZ2V0TmFtZSgpLnN0cigpKTsKLQotICAgICBpcjo6RnVuY3Rpb24gJmZuID0gY3R4 LmdldEZ1bmN0aW9uKCk7Ci0gICAgIHRoaXMtPnJlZ1RyYW5zbGF0b3IuY2xlYXIoKTsKLUBAIC0z ODEwLDkgKzM4MTAsOSBAQAotCi0gICB2b2lkIEdlbldyaXRlcjo6cmVnQWxsb2NhdGVDYWxsSW5z dChDYWxsSW5zdCAmSSkgewotICAgICBWYWx1ZSAqZHN0ID0gJkk7Ci0tICAgIFZhbHVlICpDYWxs ZWUgPSBJLmdldENhbGxlZFZhbHVlKCk7Ci0rICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxl ZE9wZXJhbmQoKTsKLSAgICAgR0JFX0FTU0VSVChjdHguZ2V0RnVuY3Rpb24oKS5nZXRQcm9maWxl KCkgPT0gaXI6OlBST0ZJTEVfT0NMKTsKLS0gICAgR0JFX0FTU0VSVChpc2E8SW5saW5lQXNtPihJ LmdldENhbGxlZFZhbHVlKCkpID09IGZhbHNlKTsKLSsgICAgR0JFX0FTU0VSVChpc2E8SW5saW5l QXNtPihJLmdldENhbGxlZE9wZXJhbmQoKSkgPT0gZmFsc2UpOwotICAgICBpZihJLmdldE51bUFy Z09wZXJhbmRzKCkpIEdCRV9BU1NFUlQoSS5oYXNTdHJ1Y3RSZXRBdHRyKCkgPT0gZmFsc2UpOwot Ci0gICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBhIHNtYWxsIG51bWJlciBvZiBpbnRyaW5zaWNzIHJp Z2h0IG5vdwotQEAgLTM4NzAsNyArMzg3MCw3IEBACi0gICAgICAgfQotICAgICB9Ci0gICAgIC8v IEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFuZCBoYW5kbGUgaXQKLS0gICAg Y29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5n ZXROYW1lKCk7Ci0rICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQ b2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICBhdXRvIGdlbkludHJpbnNpY0lE ID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLSAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJ RCkgewotICAgICAgIGNhc2UgR0VOX09DTF9HRVRfR1JPVVBfSUQwOgotQEAgLTQxNjYsNyArNDE2 Niw3IEBACi0gICAgIH07Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0Um91bmRpbmdD YWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSkgewot KyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6 T3Bjb2RlIG9wY29kZSkgewotICAgICBpZiAoSS5nZXRUeXBlKCktPmlzSGFsZlR5KCkpIHsKLSAg ICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoSS5nZXRPcGVy YW5kKDApKTsKLSAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjRmxvYXQgPSBjdHgucmVnKGly OjpGQU1JTFlfRFdPUkQpOwotQEAgLTQxNzcsMTQgKzQxNzcsMTQgQEAKLSAgICAgICBjdHguRjMy VE8xNihpcjo6VFlQRV9VMTYsIGlyOjpUWVBFX0ZMT0FULCBkc3QsIGRzdEZsb2F0KTsKLSAgICAg fSBlbHNlIHsKLSAgICAgICBHQkVfQVNTRVJUKEkuZ2V0VHlwZSgpLT5pc0Zsb2F0VHkoKSk7Ci0t ICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxvcGNvZGUpOwotKyAgICAgIHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksb3Bjb2RlKTsKLSAgICAgfQotICAgfQotCi0tICB2b2lkIEdl bldyaXRlcjo6ZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6 Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVy YXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRVbmFyeUNh bGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgdHlwZSkgewot KyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0gI2lmIEdCRV9ERUJV RwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgICBV c2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcg Ki8KLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0gICAgIGNvbnN0IGlyOjpSZWdpc3RlciBz cmMgPSB0aGlzLT5nZXRSZWdpc3RlcigqQUkpOwotQEAgLTQyOTMsOSArNDI5Myw5IEBACi0gICAg IHRoaXMtPmVtaXRBdG9taWNJbnN0SGVscGVyKG9wY29kZSwgdHlwZSwgZHN0LCBsbHZtUHRyLCBw YXlsb2FkVHVwbGUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdEF0b21pY0luc3Qo Q2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09wcyBvcGNvZGUpIHsKLS0gICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0 ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3BzIG9wY29kZSkgewotKyAgICBV c2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJh dG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotICAgICBW YWx1ZSAqbGx2bVB0ciA9ICpBSTsKLSAgICAgaXI6OkFkZHJlc3NTcGFjZSBhZGRyU3BhY2UgPSBh ZGRyZXNzU3BhY2VMTFZNVG9HZW4obGx2bVB0ci0+Z2V0VHlwZSgpLT5nZXRQb2ludGVyQWRkcmVz c1NwYWNlKCkpOwotQEAgLTQzNDgsNyArNDM0OCw3IEBACi0gICAgIH0KLSAgIH0KLQotLSAgdm9p ZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1Ms IGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFdvcmtH cm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0gICAgIGly OjpGdW5jdGlvbiAmZiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0gICAgIGlmIChmLmdldHdnQnJv YWRjYXN0U0xNKCkgPCAwICYmIG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCkg ewotQEAgLTQzNzgsOCArNDM3OCw4IEBACi0gICAgICAgR0JFX0FTU0VSVChmLmdldHRpZE1hcFNM TSgpID49IDApOwotICAgICB9Ci0KLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENT LmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2Vu ZCgpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVz ZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0g QUUpOwotCi0gICAgIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9BTEwgfHwgb3Bjb2Rl ID09IGlyOjpXT1JLR1JPVVBfT1BfQU5ZKSB7Ci1AQCAtNDM5MSwxNCArNDM5MSwxNCBAQAotICAg ICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0sIDMp OwotICAgICAgIGN0eC5XT1JLR1JPVVAob3Bjb2RlLCAodWludDMyX3QpZi5nZXR0aWRNYXBTTE0o KSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMywgaXI6OlRZUEVfUzMyKTsKLSAgICAgfSBl bHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLS0gICAgICBp bnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAgICBpbnQgYXJnTnVtID0gSS5hcmdfc2l6 ZSgpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4gc3JjKGFyZ051bSk7Ci0gICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykgewotICAgICAgICAgc3JjW2ldID0g dGhpcy0+Z2V0UmVnaXN0ZXIoKihBSSsrKSk7Ci0gICAgICAgfQotICAgICAgIGNvbnN0IGlyOjpU dXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0sIGFyZ051bSk7Ci0gICAgICAg Y3R4LldPUktHUk9VUChpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCwgKHVpbnQzMl90KWYuZ2V0 d2dCcm9hZGNhc3RTTE0oKSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgYXJnTnVtLAotLSAg ICAgICAgICBnZXRUeXBlKGN0eCwgKCpDUy5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotKyAg ICAgICAgICBnZXRUeXBlKGN0eCwgKCpJLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0gICAg IH0gZWxzZSB7Ci0gICAgICAgQ29uc3RhbnRJbnQgKnNpZ24gPSBkeW5fY2FzdDxDb25zdGFudElu dD4oQUkpOwotICAgICAgIEdCRV9BU1NFUlQoc2lnbik7Ci1AQCAtNDQyMyw5ICs0NDIzLDkgQEAK LSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjpl bWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBP cHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVn aW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsg IHZvaWQgR2VuV3JpdGVyOjplbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dy b3VwT3BzIG9wY29kZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2lu KCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9B U1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9B TEwgfHwgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQU5ZKSB7Ci1AQCAtNDQzNSw3ICs0NDM1 LDcgQEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgm c3JjWzBdLCAxKTsKLSAgICAgICBjdHguU1VCR1JPVVAob3Bjb2RlLCBnZXRSZWdpc3RlcigmSSks IHNyY1R1cGxlLCAxLCBpcjo6VFlQRV9TMzIpOwotICAgICB9IGVsc2UgaWYgKG9wY29kZSA9PSBp cjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCkgewotLSAgICAgIGludCBhcmdOdW0gPSBDUy5hcmdf c2l6ZSgpOwotKyAgICAgIGludCBhcmdOdW0gPSBJLmFyZ19zaXplKCk7Ci0gICAgICAgR0JFX0FT U0VSVChhcmdOdW0gPT0gMik7Ci0gICAgICAgc3RkOjp2ZWN0b3I8aXI6OlJlZ2lzdGVyPiBzcmMo YXJnTnVtKTsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ051bTsgaSsrKSB7Ci1AQCAt NDQ0Myw3ICs0NDQzLDcgQEAKLSAgICAgICB9Ci0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1 cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgYXJnTnVtKTsKLSAgICAgICBjdHguU1VCR1JP VVAoaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUs IGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRU eXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgqSS5hcmdfYmVnaW4oKSktPmdldFR5 cGUoKSkpOwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0YW50SW50ICpzaWduID0gZHluX2Nh c3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNTRVJUKHNpZ24pOwotQEAgLTQ0NjYs OSArNDQ2Niw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lk IEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNp dGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsK LS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBD YWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0 ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwg dWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdf ZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIFZhbHVlICpsbHZtUHRy ID0gKihBSSsrKTsKLUBAIC00NTIyLDkgKzQ1MjIsOSBAQAotICAgICBHQkVfQVNTRVJUKEFJID09 IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVj X3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9 IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJn X2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChD YWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBl KSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBB RSk7Ci0KLSAgICAgY29uc3QgdWludDhfdCBpbWFnZUlEID0gZ2V0SW1hZ2VJRChJKTsKLUBAIC00 NTU3LDcgKzQ1NTcsNyBAQAotCi0gICAvKiBhcHBlbmQgYSBuZXcgc2FtcGxlci4gc2hvdWxkIGJl IGNhbGxlZCBiZWZvcmUgYW55IHJlZmVyZW5jZSB0bwotICAgICogYSBzYW1wbGVyX3QgdmFsdWUu ICovCi0tICB1aW50OF90IEdlbldyaXRlcjo6YXBwZW5kU2FtcGxlcihDYWxsU2l0ZTo6YXJnX2l0 ZXJhdG9yIEFJKSB7Ci0rICB1aW50OF90IEdlbldyaXRlcjo6YXBwZW5kU2FtcGxlcihVc2VyOjpv cF9pdGVyYXRvciBBSSkgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVS U0lPTl9NSU5PUiA+PSA0MAotICAgICBDYWxsSW5zdCAqVEMgPSBkeW5fY2FzdDxDYWxsSW5zdD4o KkFJKTsKLSAgICAgQ29uc3RhbnQgKkNQViA9IFRDID8gZHluX2Nhc3Q8Q29uc3RhbnQ+KFRDLT5n ZXRPcGVyYW5kKDApKSA6IE5VTEw7Ci1AQCAtNDU5NSwxMCArNDU5NSw5IEBACi0gICAgICAgICBj b25zdCBpcjo6RnVuY3Rpb24gJmZuID0gY3R4LmdldEZ1bmN0aW9uKCk7Ci0KLSAgICAgICAgIC8v IEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUygmSSk7Ci0t ICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICAg ICAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0gI2lmIEdCRV9ERUJV RwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsg ICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gI2VuZGlmIC8qIEdC RV9ERUJVRyAqLwotICAgICAgICAgc3dpdGNoIChGLT5nZXRJbnRyaW5zaWNJRCgpKSB7Ci0gICAg ICAgICAgIGNhc2UgSW50cmluc2ljOjpzdGFja3NhdmU6Ci1AQCAtNDc2NCwxNyArNDc2MywxNyBA QAotICAgICAgICAgICAgIGN0eC5NQUQoc3JjVHlwZSwgZHN0LCBzcmMwLCBzcmMxLCBzcmMyKTsK LSAgICAgICAgICAgfQotICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5z aWM6OnNxcnQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1NRUik7IGJyZWFr OwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Y2VpbDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2Fs bEluc3QoSSxDUyxpcjo6T1BfUk5EVSk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6dHJ1bmM6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JORFopOyBi cmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnJpbnQ6IHRoaXMtPmVtaXRSb3VuZGlu Z0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JOREUpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRy aW5zaWM6OmZsb29yOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRE KTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzaW46IHRoaXMtPmVtaXRVbmFy eUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1NJTik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJp bnNpYzo6Y29zOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9DT1MpOyBicmVh azsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmxvZzI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksQ1MsaXI6Ok9QX0xPRyk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6 ZXhwMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfRVhQKTsgYnJlYWs7Ci0r ICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LGlyOjpPUF9TUVIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNlaWw6IHRo aXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JORFUpOyBicmVhazsKLSsgICAgICAg ICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGly OjpPUF9STkRaKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpyaW50OiB0aGlz LT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRFKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6 T1BfUk5ERCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlzLT5l bWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9TSU4pOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJ bnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfQ09TKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5hcnlDYWxs SW5zdChJLGlyOjpPUF9MT0cpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmV4 cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0VYUCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEludHJpbnNpYzo6YnN3YXA6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFVuYXJ5 Q2FsbEluc3QoSSxDUyxpcjo6T1BfQlNXQVAsIGdldFVuc2lnbmVkVHlwZShjdHgsIEkuZ2V0VHlw ZSgpKSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6 Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5cGUoKSkpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnBvdzoKLSAgICAgICAgICAgewotICAgICAgICAgICAg IGNvbnN0IGlyOjpSZWdpc3RlciBzcmMwID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsgKytBSTsK LUBAIC00Nzk0LDIxICs0NzkzLDIwIEBACi0gICAgICAgICB9Ci0gICAgICAgfSBlbHNlIHsKLSAg ICAgICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFuZCBoYW5kbGUg aXQKLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxlZFZhbHVlKCk7Ci0tICAgICAg ICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCkt PmdldE5hbWUoKTsKLSsgICAgICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxlZE9wZXJhbmQo KTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2lu dGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgYXV0byBnZW5JbnRyaW5zaWNJ RCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVu Y3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUygmSSk7Ci0tICAgICAgICBDYWxs U2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICAgICAgICBVc2VyOjpv cF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0gI2lmIEdCRV9ERUJVRwotLSAgICAgICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgICAgIFVzZXI6 Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gI2VuZGlmIC8qIEdCRV9ERUJVRyAqLwot Ci0gICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0tICAgICAgICAgIGNhc2UgR0VO X09DTF9GQkg6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0ZCSCwgaXI6OlRZ UEVfVTMyKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkw6IHRoaXMtPmVtaXRV bmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0ZCTCwgaXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0tICAg ICAgICAgIGNhc2UgR0VOX09DTF9DQklUOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGly OjpPUF9DQklULCBnZXRVbnNpZ25lZFR5cGUoY3R4LCAoKkFJKS0+Z2V0VHlwZSgpKSk7IGJyZWFr OwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9P Q0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9GQkwsIGlyOjpUWVBFX1Uz Mik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQ0JJVDogdGhpcy0+ZW1pdFVuYXJ5 Q2FsbEluc3QoSSxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5 cGUoKSkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FCUzoKLSAgICAgICAgICAg ewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMgPSB0aGlzLT5nZXRSZWdpc3Rl cigqQUkpOwotQEAgLTQ5MTUsOCArNDkxMyw4IEBACi0gICAgICAgICAgICAgY3R4LlJFR0lPTihk c3QsIHNyYywgeC5nZXRJbnRlZ2VyVmFsdWUoKSk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgIH0KLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2Fs bEluc3QoSSxDUyxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9S Q1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1JDUCk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfUlNROiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpP UF9SU1EpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1JDUDogdGhpcy0+ZW1pdFVu YXJ5Q2FsbEluc3QoSSxpcjo6T1BfUkNQKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9GT1JDRV9TSU1EODogY3R4LnNldFNpbWRXaWR0aCg4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9GT1JDRV9TSU1EMTY6IGN0eC5zZXRTaW1kV2lkdGgoMTYpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0xCQVJSSUVSOiBjdHguU1lOQyhpcjo6c3luY0xvY2FsQmFy cmllcik7IGJyZWFrOwotQEAgLTQ5NDcsMzEgKzQ5NDUsMzEgQEAKLSAgICAgICAgICAgICBicmVh azsKLSAgICAgICAgICAgfQotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FERDA6Ci0t ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQUREMTogdGhpcy0+ZW1pdEF0b21pY0luc3Qo SSxDUyxpcjo6QVRPTUlDX09QX0FERCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9BREQpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19TVUIwOgotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX1NVQjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFU T01JQ19PUF9TVUIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19TVUIx OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfU1VCKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19BTkQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfQU5E KTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMTogdGhpcy0+ZW1p dEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX09SMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9PUik7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxp cjo6QVRPTUlDX09QX09SKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf WE9SMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YT1IxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfWE9SKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09Q X1hPUik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcwOgotLSAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LENTLGlyOjpBVE9NSUNfT1BfWENIRyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1hDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfWENIRyk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lOQzA6Ci0tICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfSU5DMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6 QVRPTUlDX09QX0lOQyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lO QzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9JTkMpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMwOgotLSAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0RFQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9E RUMpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMxOiB0aGlzLT5l bWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfVU1JTjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf VU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9VTUlOKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1JTjE6IHRoaXMtPmVtaXRBdG9t aWNJbnN0KEksaXI6OkFUT01JQ19PUF9VTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9BVE9NSUNfVU1BWDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9VTUFYKTsgYnJlYWs7Ci0r ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0 KEksaXI6OkFUT01JQ19PUF9VTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9B VE9NSUNfSU1JTjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjE6IHRoaXMt PmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTUlOKTsgYnJlYWs7Ci0rICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6 OkFUT01JQ19PUF9JTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf SU1BWDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1BWDE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfSU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01J Q19PUF9JTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQ01QWENI RzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQ01QWENIRzE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9DTVBYQ0hHKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfQ01QWENIRzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6 OkFUT01JQ19PUF9DTVBYQ0hHKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRf SU1BR0VfV0lEVEg6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfSU1BR0VfSEVJR0hUOgot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0RFUFRIOgotQEAgLTU0MjksNDggKzU0 MjcsNDggQEAKLSAgICAgICAgICAgICBjdHguV0FJVCgpOwotICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FMTDogdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQUxMKTsgYnJlYWs7 Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FOWTogdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQU5ZKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FMTDogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9BTEwpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1dP UktfR1JPVVBfQU5ZOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09Q X0FOWSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9CUk9BRENB U1Q6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JL R1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX0FERDoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JL X0dST1VQX1JFRFVDRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3Qo SSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0VfTUlOOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQ X09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfQUREOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lW RV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBp cjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09S S0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRX b3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4pOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQ X09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktf R1JPVVBfU0NBTl9JTkNMVVNJVkVfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lO Q0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBf U0NBTl9JTkNMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0 KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lW RV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9J TkNMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4p OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CUk9BRENBU1Q6Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9P UF9CUk9BRENBU1QpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0 KEksIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3Vi R3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVE VUNFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JFRFVD RV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1 Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUlOOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJf R1JPVVBfU0NBTl9FWENMVVNJVkVfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NB Tl9FWENMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg Q1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFY KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9FWENMVVNJ VkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpX T1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJVkVfQUREOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBf T1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91 cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUFYOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVT SVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9M UlA6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgZHN0ICA9 IHRoaXMtPmdldFJlZ2lzdGVyKCZJKTsKLUBAIC01NDg0LDY5ICs1NDgyLDY5IEBACi0gICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19SRUFEX1VJX01FTToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDEpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTTI6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDIpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNl LCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVB RF9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgQ1MsIGZhbHNlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgOCk7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDgpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU06Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwg MSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1dSSVRFX1VJX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCBDUywgdHJ1ZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01FTTQ6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgNCk7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgNCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01F TTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywg dHJ1ZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1l bUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1JFQURfVUlfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMSk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0UyOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2Us IDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUlu c3QoSSwgZmFsc2UsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9CTE9DS19SRUFEX1VJX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA0KTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRTg6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwg OCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBmYWxzZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X0JMT0NLX1dSSVRFX1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAxKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0UyOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMik7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJ LCB0cnVlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfV1JJVEVfVUlfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA0KTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0U4OgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgOCk7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0 cnVlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tf UkVBRF9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNf TUVNMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENT LCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU00Ogot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNl LCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTTg6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDgsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTToKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCAxLCBpcjo6VFlQRV9V MTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0 KEksIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVl LCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VU19NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgNCwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfV1JJVEVfVVNfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDgsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURf VVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KEksIENTLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VT X0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgQ1MsIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNf SU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJ LCBDUywgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19J TUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IENTLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19J TUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg Q1MsIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19JTUFH RTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENT LCB0cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U0 OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywg dHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFODoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRy dWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9QSVBFOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf TUFLRV9SSUQ6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfUklEOgotLS0tIGEvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjEx MiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAkyMDIwLTEx LTA5IDE5OjAwOjA5Ljk1NTkyNjc5NSArMDEwMAotQEAgLTEwMyw3ICsxMDMsNiBAQAotCi0gI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0gI2lu Y2x1ZGUgImxsdm0vSVIvTWFuZ2xlci5oIgotLSNpbmNsdWRlICJsbHZtL0lSL0NhbGxTaXRlLmgi Ci0gI2luY2x1ZGUgImxsdm0vSVIvQ0ZHLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvSW5zdFZpc2l0 b3IuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9JUlByaW50aW5nUGFzc2VzLmgiCi0tLS0gYS9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAJMjAyMC0xMS0wOSAx Njo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fk c3RvcmVfb3B0aW1pemF0aW9uLmNwcAkyMDIwLTExLTA5IDE5OjEwOjM3LjE0MTg1MjMwOCArMDEw MAotQEAgLTE2MCw3ICsxNjAsNyBAQAotICAgICBWYWx1ZSAqdmVjUHRyID0gQnVpbGRlci5DcmVh dGVCaXRDYXN0KGxkLT5nZXRQb2ludGVyT3BlcmFuZCgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQb2ludGVyVHlwZTo6Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsK LSAgICAgTG9hZEluc3QgKnZlY1ZhbHVlID0gQnVpbGRlci5DcmVhdGVMb2FkKHZlY1B0cik7Ci0t ICAgIHZlY1ZhbHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAgICB2ZWNWYWx1ZS0+c2V0QWxp Z25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7Ci0KLSAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg aSA8IHNpemU7ICsraSkgewotICAgICAgIFZhbHVlICpTID0gQnVpbGRlci5DcmVhdGVFeHRyYWN0 RWxlbWVudCh2ZWNWYWx1ZSwgQnVpbGRlci5nZXRJbnQzMihpKSk7Ci1AQCAtMjUxLDcgKzI1MSw3 IEBACi0gICAgICAgcmV0dXJuOwotICAgICBWYWx1ZSAqbmV3UHRyID0gQnVpbGRlci5DcmVhdGVC aXRDYXN0KHN0UG9pbnRlciwgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0g ICAgIFN0b3JlSW5zdCAqbmV3U1QgPSBCdWlsZGVyLkNyZWF0ZVN0b3JlKHBhcmVudCwgbmV3UHRy KTsKLS0gICAgbmV3U1QtPnNldEFsaWdubWVudChhbGlnbik7Ci0rICAgIG5ld1NULT5zZXRBbGln bm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsKLSAgIH0KLQotICAgLy8gRmluZCB0aGUgc2FmZSBp dGVyYXRvciB3ZSBjYW4gcG9pbnQgdG8uIElmIHJlb3JkZXIgaGFwcGVucywgd2UgbmVlZCB0bwot LS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoy MC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3Bw CTIwMjAtMTEtMDkgMTg6NDg6NTUuOTk3MDA2ODM3ICswMTAwCi1AQCAtOTUsNyArOTUsNyBAQAot ICAgewotICAgICBzd2l0Y2ggKFR5LT5nZXRUeXBlSUQoKSkgewotICAgICAgIGNhc2UgVHlwZTo6 Vm9pZFR5SUQ6IE5PVF9TVVBQT1JURUQ7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgot KyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAgICAgICAgIGNv bnN0IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JUeXBlPihUeSk7Ci0gICAgICAgICB1 aW50MzJfdCBlbGVtTnVtID0gVmVjVHktPmdldE51bUVsZW1lbnRzKCk7Ci1AQCAtMTM4LDcgKzEz OCw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpIYWxmVHlJRDogICAgcmV0dXJuIDE2OwotICAgICAg IGNhc2UgVHlwZTo6RmxvYXRUeUlEOiAgIHJldHVybiAzMjsKLSAgICAgICBjYXNlIFR5cGU6OkRv dWJsZVR5SUQ6ICByZXR1cm4gNjQ7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAg ICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAgICAgICAgIGNvbnN0 IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JUeXBlPihUeSk7Ci0gICAgICAgICB1aW50 MzJfdCBudW1FbGVtID0gVmVjVHktPmdldE51bUVsZW1lbnRzKCk7Ci1AQCAtMTg0LDEwICsxODQs MTIgQEAKLSAgICAgVHlwZSAqZWxlbWVudFR5cGUgPSBOVUxMOwotICAgICBpZiAoUG9pbnRlclR5 cGUqIHB0clR5cGUgPSBkeW5fY2FzdDxQb2ludGVyVHlwZT4oZWx0VHkpKQotICAgICAgIGVsZW1l bnRUeXBlID0gcHRyVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLS0gICAgZWxzZSBpZihTZXF1ZW50 aWFsVHlwZSAqIHNlcVR5cGUgPSBkeW5fY2FzdDxTZXF1ZW50aWFsVHlwZT4oZWx0VHkpKQotLSAg ICAgIGVsZW1lbnRUeXBlID0gc2VxVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLS0gICAgZWxzZSBp ZihDb21wb3NpdGVUeXBlICogY29tcFR5PSBkeW5fY2FzdDxDb21wb3NpdGVUeXBlPihlbHRUeSkp Ci0tICAgICAgZWxlbWVudFR5cGUgPSBjb21wVHktPmdldFR5cGVBdEluZGV4KGluZGV4KTsKLSsg ICAgZWxzZSBpZiAoQXJyYXlUeXBlICogYXJyVHlwZSA9IGR5bl9jYXN0PEFycmF5VHlwZT4oZWx0 VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gYXJyVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLSsg ICAgZWxzZSBpZihWZWN0b3JUeXBlICogdmVjVHlwZSA9IGR5bl9jYXN0PFZlY3RvclR5cGU+KGVs dFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IHZlY1R5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0r ICAgIGVsc2UgaWYoU3RydWN0VHlwZSAqIHN0cnVjdFR5cGUgPSBkeW5fY2FzdDxTdHJ1Y3RUeXBl PihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSBzdHJ1Y3RUeXBlLT5nZXRUeXBlQXRJbmRl eChpbmRleCk7Ci0gICAgIEdCRV9BU1NFUlQoZWxlbWVudFR5cGUpOwotICAgICByZXR1cm4gZWxl bWVudFR5cGU7Ci0gICB9Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNl ci5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAkyMDIwLTExLTA5IDE4OjU3OjUyLjYxODk0 MzEwNSArMDEwMAotQEAgLTMyMyw4ICszMjMsNyBAQAotCi0gICBib29sIFByaW50ZlBhcnNlcjo6 cGFyc2VPbmVQcmludGZJbnN0cnVjdGlvbihDYWxsSW5zdCAqIGNhbGwpCi0gICB7Ci0tICAgIENh bGxTaXRlIENTKGNhbGwpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIENJX0ZNVCA9IENT LmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBDSV9GTVQgPSBjYWxsLT5hcmdf YmVnaW4oKTsKLSAgICAgaW50IHBhcmFtX251bSA9IDA7Ci0KLSAgICAgbGx2bTo6Q29uc3RhbnQq IGFyZzAgPSBkeW5fY2FzdDxsbHZtOjpDb25zdGFudEV4cHI+KCpDSV9GTVQpOwotQEAgLTM0MSw3 ICszNDAsNyBAQAotICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotCi0tICAgIHN0ZDo6c3Ry aW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpOwotKyAgICBzdGQ6OnN0cmluZyBmbXQg PSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKS5zdHIoKTsKLSAgICAgaWYgKGZtdC5zaXplKCkgPT0g MCkKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0KLUBAIC00MzcsOCArNDM2LDggQEAKLSAgICAgICAg IGlmICggY2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0gMCkKLSAgICAgICAgICAgY29udGlu dWU7Ci0KLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOwot LSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7Ci0r ICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAg ICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0K LSAgICAgICAgIGlmIChmbk5hbWUgIT0gIl9fZ2VuX29jbF9wcmludGZfc3R1YiIgJiYgZm5OYW1l ICE9ICJfX2dlbl9vY2xfcHV0c19zdHViIikKLSAgICAgICAgICAgY29udGludWU7Ci1AQCAtNTgy LDcgKzU4MSw3IEBACi0gICAgICAgICAgICAgaWYgKCFmbXRfYXJnIHx8ICFmbXRfYXJnLT5pc0NT dHJpbmcoKSkgewotICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpOwot KyAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5nKCkuc3Ry KCk7Ci0gICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAg Y2FzZSBQUklOVEZfQ09OVkVSU0lPTl9QOiB7Ci1AQCAtNTk1LDEwICs1OTQsMTAgQEAKLQotICAg ICAgICAgYnJlYWs7Ci0KLS0gICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6IHsKLS0gICAgICAg IFR5cGUqIHZlY3RfdHlwZSA9IGFyZy0+Z2V0VHlwZSgpOwotLSAgICAgICAgVHlwZSogZWx0X3R5 cGUgPSB2ZWN0X3R5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCk7Ci0tICAgICAgICBpbnQgdmVj X251bSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKTsKLSsgICAgICBjYXNlIFR5 cGU6OkZpeGVkVmVjdG9yVHlJRDogewotKyAgICAgICAgVmVjdG9yVHlwZSogdmVjdF90eXBlID0g ZHluX2Nhc3Q8VmVjdG9yVHlwZT4oYXJnLT5nZXRUeXBlKCkpOwotKyAgICAgICAgVHlwZSogZWx0 X3R5cGUgPSB2ZWN0X3R5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0rICAgICAgICBpbnQgdmVjX251 bSA9IHZlY3RfdHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLSAgICAgICAgIGJvb2wgc2lnbiA9IGZh bHNlOwotCi0gICAgICAgICBpZiAodmVjX251bSAhPSBzbG90LnN0YXRlLnZlY3Rvcl9uKSB7Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDIwLTExLTA5IDE2OjQ4 OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGlu Zy5jcHAJMjAyMC0xMS0wOSAxODo1OTo1MC4xMjA5MjkxNTAgKzAxMDAKLUBAIC0zNSw3ICszNSw2 IEBACi0gI2luY2x1ZGUgImxsdm0vSVIvSVJCdWlsZGVyLmgiCi0KLSAjaWYgTExWTV9WRVJTSU9O X01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUKLS0jaW5jbHVkZSAibGx2bS9J Ui9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NGRy5oIgotICNlbHNlCi0gI2luY2x1 ZGUgImxsdm0vU3VwcG9ydC9DYWxsU2l0ZS5oIgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3NhbXBsZXJfZml4LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDIwLTExLTA5IDE3OjAx OjA5LjQwNzc3NDgzMiArMDEwMAotQEAgLTQ1LDggKzQ1LDggQEAKLSAgICAgYm9vbCB2aXNpdENh bGxJbnN0KENhbGxJbnN0ICpJKSB7Ci0gICAgICAgaWYoIUkpCi0gICAgICAgICByZXR1cm4gZmFs c2U7Ci0tICAgICAgVmFsdWUgKkNhbGxlZSA9IEktPmdldENhbGxlZFZhbHVlKCk7Ci0tICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7Ci0rICAgICAgVmFs dWUgKkNhbGxlZSA9IEktPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICBjb25zdCBzdGQ6OnN0 cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICBib29sIGNoYW5n ZWQgPSBmYWxzZTsKLSAgICAgICBUeXBlICpib29sVHkgPSBJbnRlZ2VyVHlwZTo6Z2V0KEktPmdl dENvbnRleHQoKSwgMSk7Ci0gICAgICAgVHlwZSAqaTMyVHkgPSBJbnRlZ2VyVHlwZTo6Z2V0KEkt PmdldENvbnRleHQoKSwgMzIpOwotQEAgLTU5LDcgKzU5LDcgQEAKLSAgICAgICAgIFZhbHVlICpu ZWVkRml4VmFsOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9N SU5PUiA+PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBkeW5fY2FzdDxDYWxsSW5zdD4o SS0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRW YWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXpl ciIpKQotKyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5nZXRO YW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotICAgICAg ICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kgPSBkeW5fY2FzdDxDb25zdGFu dEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAgIHVpbnQzMl90IHNhbXBsZXJJ bnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7Ci1AQCAtMTEzLDcgKzExMyw3IEBACi0gICAgICAgICBW YWx1ZSAqbmVlZEZpeFZhbDsKLSAgI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICBDYWxsSW5zdCAqaW5pdCA9IGR5bl9jYXN0PENh bGxJbnN0PihJLT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgIGlmIChpbml0ICYmIGluaXQtPmdl dENhbGxlZFZhbHVlKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1wbGVyX2lu aXRpYWxpemVyIikpCi0rICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRPcGVyYW5k KCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1wbGVyX2luaXRpYWxpemVyIikp Ci0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0YW50SW50ICpjaSA9IGR5bl9jYXN0 PENvbnN0YW50SW50Pihpbml0LT5nZXRPcGVyYW5kKDApKTsKLSAgICAgICAgICAgdWludDMyX3Qg c2FtcGxlckludCA9IGNpLT5nZXRaRXh0VmFsdWUoKTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9zY2FsYXJpemUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAkyMDIwLTExLTA5IDE4OjUx OjE2Ljg4ODk5MDEwNCArMDEwMAotQEAgLTE3OCw3ICsxNzgsNyBAQAotICAgICAgIGlmKCF0eXBl KQotICAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgc3dpdGNoKHR5cGUtPmdldFR5cGVJRCgp KSB7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4 ZWRWZWN0b3JUeUlEOgotICAgICAgIGNhc2UgVHlwZTo6QXJyYXlUeUlEOgotICAgICAgICAgcmV0 dXJuIEdldEJhc2ljVHlwZSh0eXBlLT5nZXRDb250YWluZWRUeXBlKDApKTsKLSAgICAgICBkZWZh dWx0OgotQEAgLTE4OCw3ICsxODgsNyBAQAotICAgICB9Ci0KLSAgICAgaW50IEdldENvbXBvbmVu dENvdW50KGNvbnN0IFR5cGUqIHR5cGUpICB7Ci0tICAgICAgaWYgKHR5cGUgJiYgdHlwZS0+Z2V0 VHlwZUlEKCkgPT0gVHlwZTo6VmVjdG9yVHlJRCkKLSsgICAgICBpZiAodHlwZSAmJiB0eXBlLT5n ZXRUeXBlSUQoKSA9PSBUeXBlOjpGaXhlZFZlY3RvclR5SUQpCi0gICAgICAgICByZXR1cm4gbGx2 bTo6ZHluX2Nhc3Q8VmVjdG9yVHlwZT4odHlwZSktPmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAg ZWxzZQotICAgICAgICAgcmV0dXJuIDE7Ci1AQCAtNjUyLDEzICs2NTIsMTIgQEAKLSAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgICAgfSBlbHNlIHsKLS0gICAgICAgIFZhbHVlICpD YWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpzdHJp bmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1ZSAqQ2FsbGVlID0g Y2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5O YW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICBhdXRvIGdlbkludHJpbnNp Y0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLQotICAgICAgICAgLy8gR2V0IHRoZSBm dW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxTaXRlIENTKGNhbGwpOwotLSAgICAgICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSSA9IENTLmFyZ19iZWdpbigpICsgMTsKLSsgICAgICAg IFVzZXI6Om9wX2l0ZXJhdG9yIENJID0gY2FsbC0+YXJnX2JlZ2luKCkgKyAxOwotCi0gICAgICAg ICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9OT1Rf Rk9VTkQ6Ci1AQCAtNzI5LDcgKzcyOCw3IEBACi0gICAgICAgICAgICAgZXh0cmFjdEZyb21WZWN0 b3IoY2FsbCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9Q UklOVEY6Ci0tICAgICAgICAgICAgZm9yICg7IENJICE9IENTLmFyZ19lbmQoKTsgKytDSSkKLSsg ICAgICAgICAgICBmb3IgKDsgQ0kgIT0gY2FsbC0+YXJnX2VuZCgpOyArK0NJKQotICAgICAgICAg ICAgICAgaWYgKCgqQ0kpLT5nZXRUeXBlKCktPmlzVmVjdG9yVHkoKSkKLSAgICAgICAgICAgICAg ICAgKkNJID0gSW5zZXJ0VG9WZWN0b3IoY2FsbCwgKkNJKTsKLSAgICAgICAgICAgICBicmVhazsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNmY4YWIwMDVjMTQ4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLWRpZmYg LS1naXQgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcCBiYWNrZW5kL3Ny Yy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1pbmRleCA4NTE1ZGMxMy4uMjcwODAzODAg MTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1AQCAtMzI4LDcg KzMyOCw3IEBAIHN0YXRpYyBWYWx1ZSAqYnVpbGRWZWN0b3JPclNjYWxhcihDb252ZXJzaW9uU3Rh dGUgJlN0YXRlLCBJUkJ1aWxkZXI8PiAmSVJCLCBTbWFsCi0gICAgIC8vIHNwbGl0ZWQsIHRoYXQn cyB3aHkgdGhlc2UgdGVtcG9yYXJ5IHZhbHVlcyBzaG91bGQgYmUgZXJhc2VkLgotICAgICBib29s IEtlZXBJbnNlcnQgPSBpc0xlZ2FsQml0U2l6ZShFbGVtVHktPmdldFByaW1pdGl2ZVNpemVJbkJp dHMoKSAqIEVsZW1Obyk7Ci0gICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBFbGVtTm87ICsr aSkgewotLSAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVj dG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/ IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8sIGZh bHNlKSk7Ci0gICAgICAgVmFsdWUgKmlkeCA9IENvbnN0YW50SW50OjpnZXQoSW50VHksIGkpOwot ICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50KHRtcCwgRWxlbWVudHNbaV0sIGlk eCk7Ci0gICAgICAgaWYgKCFLZWVwSW5zZXJ0ICYmICFpc2E8Q29uc3RhbnQ+KHZlYykpIHsKLUBA IC0zNzMsNyArMzczLDcgQEAgc3RhdGljIHZvaWQgdW5pZnlFbGVtZW50VHlwZShJUkJ1aWxkZXI8 PiAmSVJCLCBTbWFsbFZlY3RvcjxWYWx1ZSAqLCAxNj4gJlNyYywgU20KLSAgICAgICBhc3NlcnQo KFNpemUgJSBNaW5XaWR0aCkgPT0gMCk7Ci0gCi0gICAgICAgaWYgKFNpemUgPiBNaW5XaWR0aCkg ewotLSAgICAgICAgVmVjdG9yVHlwZSAqVmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBT aXplL01pbldpZHRoKTsKLSsgICAgICAgIFZlY3RvclR5cGUgKlZlY1R5ID0gVmVjdG9yVHlwZTo6 Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCwgZmFsc2UpOwotICAgICAgICAgVmFsdWUgKkNhc3Rl ZCA9IElSQi5DcmVhdGVCaXRDYXN0KFNyY1tpXSwgVmVjVHkpOwotICAgICAgICAgZm9yICh1bnNp Z25lZCBqID0gMDsgaiA8IFNpemUvTWluV2lkdGg7IGorKykKLSAgICAgICAgICAgRHN0LnB1c2hf YmFjayhJUkIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQoQ2FzdGVkLCBDb25zdGFudEludDo6Z2V0KElu dFR5LCBqKSkpOwotQEAgLTQ2Miw3ICs0NjIsNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0SW5zdHJ1 Y3Rpb24oSW5zdHJ1Y3Rpb24gKkluc3QsIENvbnZlcnNpb25TdGF0ZSAmU3RhdGUsCi0gICAgICAg dW5zaWduZWQgRWxlbU5vID0gVW5pZmllZC5zaXplKCk7Ci0gICAgICAgVHlwZSAqRWxlbVR5ID0g VW5pZmllZFswXS0+Z2V0VHlwZSgpOwotICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBF bGVtTm87ICsraSkgewotLSAgICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFs dWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8pKTsKLSsgICAgICAgIFZhbHVl ICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1U eSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAgICAgVmFsdWUgKmlkeCA9IENvbnN0YW50SW50Ojpn ZXQoSW50VHksIGkpOwotICAgICAgICAgdmVjID0gSVJCLkNyZWF0ZUluc2VydEVsZW1lbnQodG1w LCBVbmlmaWVkW2ldLCBpZHgpOwotICAgICAgIH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQu Y3BwCi1pbmRleCBjOTNkODljYy4uNjRkNWIwZTUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2Vu X2JhY2tlbmQuY3BwCi1AQCAtMzA0LDcgKzMwNCw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICBU WVBFU0laRVZFQyhsb25nLDgpCi0gICAgICAgVFlQRVNJWkVWRUModW5zaWduZWQgbG9uZyw4KQot ICAgICAgIGVsc2V7Ci0tICAgICAgICBTdHJ1Y3RUeXBlICpTdHJUeSA9IE0tPmdldFR5cGVCeU5h bWUoInN0cnVjdC4iK25hbWUpOwotKyAgICAgICAgU3RydWN0VHlwZSAqU3RyVHkgPSBTdHJ1Y3RU eXBlOjpnZXRUeXBlQnlOYW1lKE0tPmdldENvbnRleHQoKSwgInN0cnVjdC4iK25hbWUpOwotICAg ICAgICAgaWYoU3RyVHkpCi0gICAgICAgICAgIHJldHVybiBnZXRUeXBlQnl0ZVNpemUodW5pdCxT dHJUeSk7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0 b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRp bWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlZi4uNmI1YzFiYWQgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotQEAgLTE1Miw3ICsx NTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gbGQtPmdl dFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSBmaXJzdCBsb2Fk Ci0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwotLSAgICBWZWN0b3JUeXBlICp2ZWNU eSA9IFZlY3RvclR5cGU6OmdldChsZC0+Z2V0VHlwZSgpLCBzaXplKTsKLSsgICAgVmVjdG9yVHlw ZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdldFR5cGUoKSwgc2l6ZSwgZmFsc2UpOwot ICAgICBWYWx1ZSAqdmVjUHRyID0gQnVpbGRlci5DcmVhdGVCaXRDYXN0KGxkLT5nZXRQb2ludGVy T3BlcmFuZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2lu dGVyVHlwZTo6Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsKLSAgICAgTG9hZEluc3QgKnZlY1ZhbHVl ID0gQnVpbGRlci5DcmVhdGVMb2FkKHZlY1B0cik7Ci1AQCAtMjM2LDcgKzIzNiw3IEBAIG5hbWVz cGFjZSBnYmUgewotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KG1lcmdlZFtzaXplLTFdKTsK LSAKLSAgICAgVHlwZSAqZGF0YVR5ID0gc3QtPmdldFZhbHVlT3BlcmFuZCgpLT5nZXRUeXBlKCk7 Ci0tICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGRhdGFUeSwgc2l6ZSk7 Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGRhdGFUeSwgc2l6ZSwg ZmFsc2UpOwotICAgICBWYWx1ZSAqIHBhcmVudCA9IFVuZGVmVmFsdWU6OmdldCh2ZWNUeSk7Ci0g ICAgIGZvcih1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgIHBhcmVudCA9 IEJ1aWxkZXIuQ3JlYXRlSW5zZXJ0RWxlbWVudChwYXJlbnQsIHZhbHVlc1tpXSwgQ29uc3RhbnRJ bnQ6OmdldChJbnRlZ2VyVHlwZTo6Z2V0KHN0LT5nZXRDb250ZXh0KCksIDMyKSwgaSkpOwotZGlm ZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi1pbmRleCA2YmI3YzUyYS4uYWY0NTljZDIg MTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLSsr KyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAotQEAgLTYzMCw3ICs2 MzAsNyBAQCBlcnJvcjoKLSAgICAgICAgICAgICBpZiAoZWx0X3R5cGUgIT0gZWx0X2RzdF90eXBl KSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkgPSBOVUxMOwotICAgICAgICAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKyspIHsKLS0gICAgICAgICAgICAgICAgVmFsdWUg KnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KGVsdF9kc3Rf dHlwZSwgdmVjX251bSkpOwotKyAgICAgICAgICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6 IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoZWx0X2RzdF90eXBlLCB2ZWNfbnVtLCBm YWxzZSkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3YgPSBDb25zdGFudEludDo6Z2V0KFR5 cGU6OmdldEludDMyVHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIGkpOwotICAgICAgICAgICAg ICAgICBWYWx1ZSAqb3JnID0gYnVpbGRlci0+Q3JlYXRlRXh0cmFjdEVsZW1lbnQoYXJnLCBjdik7 Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdnQgPSBidWlsZGVyLT5DcmVhdGVJbnRDYXN0KG9y ZywgZWx0X2RzdF90eXBlLCBzaWduKTsKLUBAIC02NTgsNyArNjU4LDcgQEAgZXJyb3I6Ci0gICAg ICAgICAgICAgaWYgKGVsdF90eXBlLT5nZXRUeXBlSUQoKSAhPSBUeXBlOjpGbG9hdFR5SUQpIHsK LSAgICAgICAgICAgICAgIFZhbHVlICpJSSA9IE5VTEw7Ci0gICAgICAgICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IHZlY19udW07IGkrKykgewotLSAgICAgICAgICAgICAgICBWYWx1ZSAqdmVj ID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoVHlwZTo6Z2V0Rmxv YXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgdmVjX251bSkpOwotKyAgICAgICAgICAgICAg ICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQo VHlwZTo6Z2V0RmxvYXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgdmVjX251bSwgZmFsc2Up KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3RhbnRJbnQ6OmdldChUeXBlOjpn ZXRJbnQzMlR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsKLSAgICAgICAgICAgICAgICAg VmFsdWUgKm9yZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVtZW50KGFyZywgY3YpOwotICAg ICAgICAgICAgICAgICBWYWx1ZSogY3Z0ICA9IGJ1aWxkZXItPkNyZWF0ZUZQQ2FzdChvcmcsIFR5 cGU6OmdldEZsb2F0VHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKTsKLWRpZmYgLS1naXQgYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5j cHAKLWluZGV4IDdmN2RlZmZlLi45ZThjY2M2NyAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV90b19nZW4uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNw cAotQEAgLTM1OCw3ICszNTgsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIHBhc3Nlcy5hZGQoY3Jl YXRlU2NhbGFyUmVwbEFnZ3JlZ2F0ZXNQYXNzKDY0LCB0cnVlLCAtMSwgLTEsIDY0KSk7Ci0gI2Vu ZGlmCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpKTsK LS0gICAgcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsKLSsgICAg Ly9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOwotICAgICBwYXNz ZXMuYWRkKGNyZWF0ZVByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFzcygpKTsKLSAgICAgaWYob3B0 TGV2ZWwgPiAwKQotICAgICAgIHBhc3Nlcy5hZGQoY3JlYXRlR1ZOUGFzcygpKTsgICAgICAgICAg ICAgICAgIC8vIFJlbW92ZSByZWR1bmRhbmNpZXMKLUBAIC0zNjcsMTEgKzM2NywxMSBAQCBuYW1l c3BhY2UgZ2JlCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlU2NhbGFyaXplUGFzcygpKTsgICAgICAg ICAgICAgLy8gRXhwYW5kIGFsbCB2ZWN0b3Igb3BzCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlRXhw YW5kTGFyZ2VJbnRlZ2Vyc1Bhc3MoKSk7ICAgLy8gbGVnYWxpemUgbGFyZ2UgaW50ZWdlciBvcGVy YXRpb24KLSAgICAgcGFzc2VzLmFkZChjcmVhdGVJbnN0cnVjdGlvbkNvbWJpbmluZ1Bhc3MoKSk7 ICAvLyBsZWdhbGl6ZSB3aWxsIGdlbmVyYXRlIHNvbWUgc2lsbHkgaW5zdHJ1Y3Rpb25zCi0tICAg IHBhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7ICAgLy8gcHJvcGFn YXRlIGNvbnN0YW50IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6ZQotKyAgICAvL3Bhc3Nlcy5hZGQo Y3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7ICAgLy8gcHJvcGFnYXRlIGNvbnN0YW50 IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6ZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUV4cGFuZENv bnN0YW50RXhwclBhc3MoKSk7ICAgIC8vIGNvbnN0YW50IHByb3AgbWF5IGdlbmVyYXRlIENvbnN0 YW50RXhwcgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVByb21vdGVJbnRlZ2Vyc1Bhc3MoKSk7ICAg ICAgIC8vIGFsaWduIGludGVnZXIgc2l6ZSB0byBwb3dlciBvZiB0d28KLSAgICAgcGFzc2VzLmFk ZChjcmVhdGVSZW1vdmVHRVBQYXNzKHVuaXQpKTsgICAgICAgICAvLyBDb25zdGFudCBwcm9wIG1h eSBnZW5lcmF0ZSBnZXAKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVEZWFkSW5zdEVsaW1pbmF0aW9u UGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVjdGlvbnMKLSsgICAgLy9wYXNz ZXMuYWRkKGNyZWF0ZURlYWRJbnN0RWxpbWluYXRpb25QYXNzKCkpOyAgIC8vIFJlbW92ZSBzaW1w bGlmaWVkIGluc3RydWN0aW9ucwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUNGR1NpbXBsaWZpY2F0 aW9uUGFzcygpKTsgICAgIC8vIE1lcmdlICYgcmVtb3ZlIEJCcwotICAgICBwYXNzZXMuYWRkKGNy ZWF0ZUxvd2VyU3dpdGNoUGFzcygpKTsgICAgICAgICAgIC8vIHNpbXBsaWZ5IGNmZyB3aWxsIGdl bmVyYXRlIHN3aXRjaC1jYXNlIGluc3RydWN0aW9uCi0gICAgIGlmIChwcm9maWxpbmcpIHsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2ggYi9zcmNwa2dzL2Jl aWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj ZWZhZmJiNjU1ODguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9t dXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvYmFja2VuZC9z cmMvYmFja2VuZC9nZW4vZ2VuX21lc2FfZGlzYXNtLmMKLSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tl bmQvZ2VuL2dlbl9tZXNhX2Rpc2FzbS5jCi1AQCAtMTEzNyw3ICsxMTM3LDcgQEAgc3RhdGljIHVp bnQzMl90IF9fY29udl9oYWxmX3RvX2Zsb2F0KHVpbnQxNl90IGgpCi0gICAgICAgLy8gQWRqdXN0 IG1hbnRpc3NhIHNvIGl0J3Mgbm9ybWFsaXplZCAoYW5kIGtlZXAKLSAgICAgICAvLyB0cmFjayBv ZiBleHBvbmVudCBhZGp1c3RtZW50KQotICAgICAgIGludCBlID0gLTE7Ci0tICAgICAgdWludCBt ID0gaS5tYW50aXNzYTsKLSsgICAgICB1bnNpZ25lZCBpbnQgbSA9IGkubWFudGlzc2E7Ci0gICAg ICAgZG8gewotICAgICAgICAgZSsrOwotICAgICAgICAgbSA8PD0gMTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNlNmJiYjdhZTI0Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAot IyBUZW1wbGF0ZSBmaWxlIGZvciAnYmVpZ25ldCcKLXBrZ25hbWU9YmVpZ25ldAotdmVyc2lvbj0x LjMuMgotcmV2aXNpb249MTAKLWFyY2hzPSJpNjg2KiB4ODZfNjQqIgotd3Jrc3JjPSJCZWlnbmV0 LSR7dmVyc2lvbn0tU291cmNlIgotYnVpbGRfc3R5bGU9Y21ha2UKLWhvc3RtYWtlZGVwZW5kcz0i Y2xhbmcgbGx2bSBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9Ik1lc2FMaWItZGV2ZWwgbGliZWRp dC1kZXZlbCBsaWJmZmktZGV2ZWwgb2NsLWljZC1kZXZlbCB6bGliLWRldmVsCi0gbGliWGZpeGVz LWRldmVsIgotZGVwZW5kcz0ib2NsLWljZCIKLXNob3J0X2Rlc2M9IkJlaWduZXQgR1BHUFUgU3lz dGVtIGZvciBJbnRlbCBHUFVzIgotbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGlu dXgub3JnPiIKLWxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgotaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZnJlZWRlc2t0b3Aub3JnL3dpa2kvU29mdHdhcmUvQmVpZ25ldC8iCi1kaXN0ZmlsZXM9Imh0 dHBzOi8vMDEub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvJHtwa2duYW1lfS0ke3ZlcnNpb259LXNv dXJjZS50YXIuZ3oiCi1jaGVja3N1bT1jNTU1ZWRiYTE0OWRlMjMyNDM5NjVhNzAzZjM5Zjc5ZmEw NmYxNWJjZmY1YTM3NjJiNTU0NGIwOTI1MDEwYjQzCi0KLXBvc3RfaW5zdGFsbCgpIHsKLQkjIHJl bW92ZSBDTCBoZWFkZXJzLCB3ZSBkbyB1c2Ugb3BlbmNsLWhlYWRlcnMgaW5zdGVhZC4KLQlybSAt ciAke0RFU1RESVJ9L3Vzci9pbmNsdWRlCi19CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQv dXBkYXRlIGIvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggY2E0MWUwYWZlNjBjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Vw ZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXNpdGU9Imh0dHBzOi8vMDEub3JnL2Jl aWduZXQvZG93bmxvYWRzIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3Rl bXBsYXRlIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCmluZGV4IDA5MjNjNTNj ZmMwNS4uMmQ5MTBiYzFhODU1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCkBAIC0yNSw2 ICsyNSw3IEBAIHJlcGxhY2VzPSIKICBhdG9tPD0xLjQ0LjBfMQogIGF2b2dhZHJvLWRldmVsPD0x LjIuMF84CiAgYXZvZ2Fkcm88PTEuMi4wXzgKKyBiZWlnbmV0PD0xLjMuMgogIGJva2tlbjw9MS44 XzMKICBib21pPD0wLjkuMTFfMTcKICBidXJwLWNsaWVudDw9MS40LjQwXzEzCgpGcm9tIGRkZWNl NmE3MTQ3MWJmODA2OGEwYzhlZjA5NjdmYzkzNjNlZGE0OGYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEw MjFAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDIyOjAwOjU0ICswMDAwClN1Ympl Y3Q6IFtQQVRDSCAxOS8zMF0gbGx2bTEzOiB1cGRhdGUgdG8gMTMuMC4xLgoKLS0tCiBzcmNwa2dz L2xsdm0vdGVtcGxhdGUgICB8IDIgKy0KIHNyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIHwgNiArKyst LS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQpp bmRleCBiY2ZlZTgyMDk4ZmYuLjk2ZDE4ZjczMGZjYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZt L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQpAQCAtNCw4ICs0LDggQEAgdmVy c2lvbj0xMy4wLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1ldGEKIGRlcGVuZHM9Imxsdm0x MyIKLXJlcGxhY2VzPSJsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBsbHZt OD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZNIG1l dGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmciCityZXBsYWNlcz0ibGx2bTEyPj0wIGxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+ PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQppbmRleCBi ZmM5MTA1NmQyNzcuLjhlNjczNzAxZmI5YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdsbHZtMTMnCiBwa2duYW1lPWxsdm0xMwotdmVyc2lvbj0xMy4wLjAK LXJldmlzaW9uPTIKK3ZlcnNpb249MTMuMC4xCityZXZpc2lvbj0xCiB3cmtzcmM9Imxsdm0tcHJv amVjdC0ke3ZlcnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9zdHlsZT1jbWFr ZQpAQCAtMzUsNyArMzUsNyBAQCBtYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PiIKIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cubGx2bS5vcmci CiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNl cy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3Jj LnRhci54eiIKLWNoZWNrc3VtPTYwNzVhZDMwZjFhYzBlMTVmMDdjMWJmMDYyYzFlMTI2OGMyNDFk Njc0ZjExYmQzMmNkZjBlMDQwYzcxZjJiZjMKK2NoZWNrc3VtPTMyNjMzNWE4MzBmMmUzMmQwNmQw YTM2MzkzYjU0NTVkMTdkYzczZTBiZDEyMTEwNjUyMjdlZTAxNGY5MmNiZjgKIGxpYjMyZGlzYWJs ZWQ9eWVzCiBweXRob25fdmVyc2lvbj0zCiAKCkZyb20gZjc5ZmQ2MmM5Y2ExODk1YmNhYTg5ZDIz ZTI2NmM5ZWRjNzkwODcwYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNhYWMgRnJl dW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4KRGF0ZTogV2VkLCAyIE1hciAyMDIyIDIwOjQ5OjM3 ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMC8zMF0gcml2ZXI6IHVwZGF0ZSB0byAwLjEuMwoKLS0t CiAuLi5hYmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoIHwgMTggKysr KysrKysrLS0tLS0tLS0tCiBzcmNwa2dzL3JpdmVyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JpdmVyL3BhdGNoZXMvMDAwMS1FbmFi bGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1yaXZlcnRpbGUucGF0Y2ggYi9zcmNwa2dzL3JpdmVy L3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1yaXZlcnRpbGUucGF0 Y2gKaW5kZXggZWNjNjgzMDJkYjA5Li45ZGEwZTVkNWQwNDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cml2ZXIvcGF0Y2hlcy8wMDAxLUVuYWJsZS1QSUUtZm9yLXJpdmVyLXJpdmVyY3RsLXJpdmVydGls ZS5wYXRjaAorKysgYi9zcmNwa2dzL3JpdmVyL3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1y aXZlci1yaXZlcmN0bC1yaXZlcnRpbGUucGF0Y2gKQEAgLTEwLDMzICsxMCwzMyBAQCBidWlsZCBz eXN0ZW0uIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ppZ2xhbmcvemlnL2lzc3Vlcy83MjAxCiAg MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvYnVpbGQuemln IGIvYnVpbGQuemlnCi1pbmRleCBkNTYxZjQ5Li44YWM5YTRlIDEwMDY0NAoraW5kZXggOTgyOTYz My4uMTgwMTc5ZiAxMDA2NDQKIC0tLSBhL2J1aWxkLnppZwogKysrIGIvYnVpbGQuemlnCi1AQCAt ODUsNiArODUsNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7CitAQCAt ODksNiArODksNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7CiAgICAg ICAgICBjb25zdCByaXZlciA9IGIuYWRkRXhlY3V0YWJsZSgicml2ZXIiLCAicml2ZXIvbWFpbi56 aWciKTsKICAgICAgICAgIHJpdmVyLnNldFRhcmdldCh0YXJnZXQpOwogICAgICAgICAgcml2ZXIu c2V0QnVpbGRNb2RlKG1vZGUpOwogKyAgICAgICAgcml2ZXIucGllID0gdHJ1ZTsKLSAgICAgICAg IHJpdmVyLmFkZEJ1aWxkT3B0aW9uKGJvb2wsICJ4d2F5bGFuZCIsIHh3YXlsYW5kKTsKLSAgICAg ICAgIHJpdmVyLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25zdCB1OCwgInZlcnNpb24iLCBmdWxsX3Zl cnNpb24pOworICAgICAgICAgcml2ZXIuYWRkT3B0aW9ucygiYnVpbGRfb3B0aW9ucyIsIG9wdGlv bnMpOwogIAotQEAgLTk3LDYgKzk4LDcgQEAgcHViIGZuIGJ1aWxkKGI6ICp6YnMuQnVpbGRlcikg IXZvaWQgeworICAgICAgICAgYWRkU2VydmVyRGVwcyhyaXZlciwgc2Nhbm5lcik7CitAQCAtMTAw LDYgKzEwMSw3IEBAIHB1YiBmbiBidWlsZChiOiAqemJzLkJ1aWxkZXIpICF2b2lkIHsKICAgICAg ICAgIGNvbnN0IHJpdmVyY3RsID0gYi5hZGRFeGVjdXRhYmxlKCJyaXZlcmN0bCIsICJyaXZlcmN0 bC9tYWluLnppZyIpOwogICAgICAgICAgcml2ZXJjdGwuc2V0VGFyZ2V0KHRhcmdldCk7CiAgICAg ICAgICByaXZlcmN0bC5zZXRCdWlsZE1vZGUobW9kZSk7CiArICAgICAgICByaXZlcmN0bC5waWUg PSB0cnVlOwotICAgICAgICAgcml2ZXJjdGwuYWRkQnVpbGRPcHRpb24oWzowXWNvbnN0IHU4LCAi dmVyc2lvbiIsIGZ1bGxfdmVyc2lvbik7CisgICAgICAgICByaXZlcmN0bC5hZGRPcHRpb25zKCJi dWlsZF9vcHRpb25zIiwgb3B0aW9ucyk7CiAgCiAgICAgICAgICByaXZlcmN0bC5zdGVwLmRlcGVu ZE9uKCZzY2FubmVyLnN0ZXApOwotQEAgLTExNCw2ICsxMTYsNyBAQCBwdWIgZm4gYnVpbGQoYjog Knpicy5CdWlsZGVyKSAhdm9pZCB7CitAQCAtMTIwLDYgKzEyMiw3IEBAIHB1YiBmbiBidWlsZChi OiAqemJzLkJ1aWxkZXIpICF2b2lkIHsKICAgICAgICAgIGNvbnN0IHJpdmVydGlsZSA9IGIuYWRk RXhlY3V0YWJsZSgicml2ZXJ0aWxlIiwgInJpdmVydGlsZS9tYWluLnppZyIpOwogICAgICAgICAg cml2ZXJ0aWxlLnNldFRhcmdldCh0YXJnZXQpOwogICAgICAgICAgcml2ZXJ0aWxlLnNldEJ1aWxk TW9kZShtb2RlKTsKICsgICAgICAgIHJpdmVydGlsZS5waWUgPSB0cnVlOwotICAgICAgICAgcml2 ZXJ0aWxlLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25zdCB1OCwgInZlcnNpb24iLCBmdWxsX3ZlcnNp b24pOworICAgICAgICAgcml2ZXJ0aWxlLmFkZE9wdGlvbnMoImJ1aWxkX29wdGlvbnMiLCBvcHRp b25zKTsKICAKICAgICAgICAgIHJpdmVydGlsZS5zdGVwLmRlcGVuZE9uKCZzY2FubmVyLnN0ZXAp OwogLS0gCi0yLjMzLjEKKzIuMzUuMQogCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JpdmVyL3RlbXBs YXRlIGIvc3JjcGtncy9yaXZlci90ZW1wbGF0ZQppbmRleCA5Y2YzYWJlNGI4NWIuLmFlMDlhZTU0 YjM0ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9yaXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Jp dmVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncml2ZXIn CiBwa2duYW1lPXJpdmVyCi12ZXJzaW9uPTAuMS4xCit2ZXJzaW9uPTAuMS4zCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT16aWctYnVpbGQKIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfaWYgeHdheWxh bmQgLUR4d2F5bGFuZCkiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IklzYWFjIEZyZXVu ZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vcml2ZXJ3bS9yaXZlciIKIGRpc3RmaWxlcz0iJHto b21lcGFnZX0vcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vcml2ZXItJHt2ZXJzaW9ufS50 YXIuZ3oiCi1jaGVja3N1bT0yYTBiY2Q0NjcwZWQ5ZWJkMzljMjc5ZjJiZjEwODAzZmM2NWM5ZjNl ZTIzMDdjZTQwNzI4ZGYyM2NlOTE0ZDE4CitjaGVja3N1bT1mNjM0NDRjMzAwYWI1NTRlZjNjYTBk OTA0YTZiMTI0YTgzMmM4Mzk3ZDQ3NGVmMDY3YmRkZTkxMWM5ODFjNzlmCiAKIGJ1aWxkX29wdGlv bnM9Inh3YXlsYW5kIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJ4d2F5bGFuZCIKCkZyb20gOTVk ZmE2Y2M5YThkYjI1NmRhMmJkMzYzYjVlYzk5NzhiZWZlNzY4YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4KRGF0ZTogV2Vk LCAyIE1hciAyMDIyIDIwOjUwOjE3ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMS8zMF0gcnVuZGly ZDogcmVtb3ZlIHBhY2thZ2UKCiAgICBUaGlzIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdXBzdHJl YW0gd2hpY2ggcmVjb21tZW5kcyB1c2luZwogICAgZHVtYl9ydW50aW1lX2RpciAoYWxyZWFkeSBw YWNrYWdlZCBmb3Igdm9pZCkgaW5zdGVhZC4KCiAgICBSZW1vdmluZyBub3cgc2luY2UgcnVuZGly ZCAwLjIuMCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHppZyAwLjkgYW5kCiAgICB0aGVyZSB3b24n dCBiZSBhbnkgbmV3IHJ1bmRpcmQgcmVsZWFzZXMuCi0tLQogc3JjcGtncy9yZW1vdmVkLXBhY2th Z2VzL3RlbXBsYXRlIHwgIDMgKystCiBzcmNwa2dzL3J1bmRpcmQvZmlsZXMvcnVuZGlyZC9ydW4g fCAgMiAtLQogc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRlICAgICAgICAgIHwgMTcgLS0tLS0tLS0t LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMo LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3J1bmRpcmQvZmlsZXMvcnVuZGlyZC9ydW4K IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3J1bmRpcmQvdGVtcGxhdGUKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgYi9zcmNwa2dzL3JlbW92ZWQtcGFj a2FnZXMvdGVtcGxhdGUKaW5kZXggMmQ5MTBiYzFhODU1Li5kNTA5YjQ5OGMyMWUgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JlbW92 ZWQtcGFja2FnZXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdyZW1vdmVkLXBhY2thZ2VzJwogcGtnbmFtZT1yZW1vdmVkLXBhY2thZ2VzCiB2ZXJzaW9uPTAu MQotcmV2aXNpb249NjkKK3JldmlzaW9uPTcwCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9ydF9kZXNj PSJVbmluc3RhbGxzIHBhY2thZ2VzIHJlbW92ZWQgZnJvbSByZXBvc2l0b3J5IgogbWFpbnRhaW5l cj0iUGlvdHIgV8OzamNpayA8Y2hvY2ltaWVyQHRsZW4ucGw+IgpAQCAtMzcxLDYgKzM3MSw3IEBA IHJlcGxhY2VzPSIKICBya3Qtc3RhZ2UxLWNvcmVvczw9MS4zMC4wXzMKICBya3Qtc3RhZ2UxLWZs eTw9MS4zMC4wXzMKICBya3Q8PTEuMzAuMF8zCisgcnVuZGlyZDw9MC4yLjBfMQogIHNjYW50YWls b3I8PTAuOS4xMi4xXzIKICBzZWFob3JzZS1zaGFyaW5nPD0zLjguMF80CiAgc2VyaWVzcGw8PTIu My41XzIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVuZGlyZC9maWxlcy9ydW5kaXJkL3J1biBiL3Ny Y3BrZ3MvcnVuZGlyZC9maWxlcy9ydW5kaXJkL3J1bgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZTRhYWU4YzgzYjRiLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ydW5kaXJkL2Zp bGVzL3J1bmRpcmQvcnVuCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIS9iaW4vc2gK LWV4ZWMgcnVuZGlyZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRlIGIvc3Jj cGtncy9ydW5kaXJkL3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmY4 OTdhYmQ0NTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3J1bmRpcmQvdGVtcGxhdGUKKysr IC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdydW5kaXJk JwotcGtnbmFtZT1ydW5kaXJkCi12ZXJzaW9uPTAuMi4wCi1yZXZpc2lvbj0xCi1idWlsZF9zdHls ZT16aWctYnVpbGQKLW1ha2VkZXBlbmRzPSJwYW0tZGV2ZWwiCi1zaG9ydF9kZXNjPSJTaW1wbGUg ZGFlbW9uICsgUEFNIG1vZHVsZSBwcm92aWRpbmcgYW4gWERHX1JVTlRJTUVfRElSIgotbWFpbnRh aW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCi1saWNlbnNlPSJHUEwt My4wLW9yLWxhdGVyIgotaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9pZnJldW5kL3J1bmRp cmQiCi1kaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6Igot Y2hlY2tzdW09MWRlYTIwN2YzOTM4OGU4YzJjMjc1YjhhOWFhZGEwMTY2ZDFmNTg3YTgwNmYyZTVl NDQ4NmQ5ODI1OWUyM2U0YwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JdnN2IHJ1bmRpcmQKLQl2ZG9j IFJFQURNRS5tZAotfQoKRnJvbSBmMjliNTM4NWFjYWM4OTM3NzJlMzQzOGM2OGMzZWRmOGNkOWIz YzVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0y MENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAy MDIyIDExOjU1OjQ2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMi8zMF0gYmNjOiByZWJ1aWxkIGZv ciBsbHZtMTMKCi0tLQogc3JjcGtncy9iY2MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jj Yy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCmluZGV4IDU0NTA5YjYzZDVhNy4uMmNm YTBhMjk3N2QwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JjYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2JjYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JjYycK IHBrZ25hbWU9YmNjCiB2ZXJzaW9uPTAuMjQuMAotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jr c3JjPSJiY2MiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EUkVWSVNJT049 JHt2ZXJzaW9ufSAtREVOQUJMRV9MTFZNX1NIQVJFRD0xIgoKRnJvbSBkOGZjOGM2ZDFiODQxZWRl ODZiMTEyNjk4OTc1OTJjZmFiMjk2NWVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDExOjU2OjMyICswMDAwClN1YmplY3Q6IFtQQVRDSCAy My8zMF0gZ25vbWUtYnVpbGRlcjogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvZ25v bWUtYnVpbGRlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCA5MzU1OWIyMTc3NGYu LjVhNWE1MTg5M2FlOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIK IHZlcnNpb249NDEuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24K IGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLURoZWxwPXRydWUgLURuZXR3b3Jr X3Rlc3RzPWZhbHNlIgoKRnJvbSBkMWNmNGE2MzYxZjAxZThhMDMyMjQwYTNmODE4NmI1NzgxODc0 OWY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0y MENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAy MDIyIDExOjU2OjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyNC8zMF0gbGRjOiByZWJ1aWxkIGZv ciBsbHZtMTMKCi0tLQogc3JjcGtncy9sZGMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sZGMvdGVtcGxhdGUgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQppbmRleCBhMjcyODBkZGUzYjgu LjgwNTk3OGE4MWZkOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9sZGMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9sZGMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICds ZGMnCiBwa2duYW1lPWxkYwogdmVyc2lvbj0xLjI4LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IHdya3NyYz0ibGRjLSR7dmVyc2lvbn0tc3JjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSIKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IgogIC1EQkFTSF9DT01Q TEVUSU9OX0NPTVBMRVRJT05TRElSPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uCiAgLURDX1NZ U1RFTV9MSUJTPSd1bndpbmQ7bTtwdGhyZWFkO3J0O2RsJyIKIGNvbmZfZmlsZXM9Ii9ldGMvbGRj Mi5jb25mIgotaG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTEyIHBlcmwgcGtnLWNvbmZpZyIKK2hv c3RtYWtlZGVwZW5kcz0iZG1kIGxsdm0gcGVybCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9Imxp YmN1cmwtZGV2ZWwgbGliZmZpLWRldmVsIG5jdXJzZXMtZGV2ZWwgemxpYi1kZXZlbAogIGxsdm0t bGlidW53aW5kLWRldmVsIgogZGVwZW5kcz0ibGRjLXJ1bnRpbWUgbGx2bS1saWJ1bndpbmQtZGV2 ZWwiCgpGcm9tIDJmNzgyNDI4MGE5MzVkZDdlNzczZDcyNzM3NzBjMmI5M2QwMmY2MjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJh Pz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTE6NTg6 MTcgKzAwMDAKU3ViamVjdDogW1BBVENIIDI1LzMwXSBzaGlib2tlbjI6IHJlYnVpbGQgZm9yIGxs dm0xMwoKLS0tCiBzcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv c2hpYm9rZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKaW5kZXggYjU2 NjEzMjI5YzEzLi5hYjlkMmM0Y2I4ZjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2hpYm9rZW4yL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnc2hpYm9rZW4yJwogcGtnbmFtZT1zaGlib2tlbjIKIHZlcnNp b249NS4xNS4yCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBfcGtnbmFtZT0icHlzaWRlLXNldHVw LW9wZW5zb3VyY2Utc3JjLSR7dmVyc2lvbn0iCiB3cmtzcmM9IiR7X3BrZ25hbWUvJTUuMTQuMi4x LzUuMTQuMn0iCiBidWlsZF93cmtzcmM9InNvdXJjZXMvc2hpYm9rZW4yIgoKRnJvbSAzODE2MzRm OTZkODUyMTkyNTM3ODc1NmRlMTgzYjBlZDJjYmQ2MGMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIx QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDExOjU4OjIzICswMDAwClN1YmplY3Q6 IFtQQVRDSCAyNi8zMF0gdGlsaXg6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL3Rp bGl4L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90aWxpeC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv dGlsaXgvdGVtcGxhdGUKaW5kZXggZDhmMDE0YmM3OGM1Li5hYzFiZjdkZDNiZGQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90aWxpeC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RpbGl4JwogcGtnbmFtZT10aWxp eAogdmVyc2lvbj0xLjkuNAotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9bWVz b24KIGNvbmZpZ3VyZV9hcmdzPSItRGJfbHRvPWZhbHNlIgogaG9zdG1ha2VkZXBlbmRzPSJhdXRv bWFrZSBnZXR0ZXh0LWRldmVsIGdkay1waXhidWYgZ2xpYi1kZXZlbCBsZGMgcG80YSBwa2ctY29u ZmlnCgpGcm9tIDc0NTkyMDgzM2QxYTI1MjlhNDIzNzk2YjVjODhjZTUwZmQxMTI2N2EgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJh Pz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIgMTI6MTM6 MTggKzAwMDAKU3ViamVjdDogW1BBVENIIDI3LzMwXSBydXN0OiByZWJ1aWxkIGZvciBsbHZtMTMK Ci0tLQogc3JjcGtncy9ydXN0L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydXN0 L3RlbXBsYXRlIGIvc3JjcGtncy9ydXN0L3RlbXBsYXRlCmluZGV4IDU2MGE2MjlmM2RhMi4uMjdm NDkxZDNjNjk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J1c3QvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9ydXN0L3RlbXBsYXRlCkBAIC05LDEwICs5LDEwIEBACiAjCiBwa2duYW1lPXJ1c3QKIHZlcnNp b249MS41Ny4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9InJ1c3RjLSR7dmVyc2lv bn0tc3JjIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjdXJsIHBrZy1jb25maWcgcHl0aG9uMyB0 YXIgY2FyZ28tYm9vdHN0cmFwIgotbWFrZWRlcGVuZHM9ImxpYmZmaS1kZXZlbCBuY3Vyc2VzLWRl dmVsIGxpYnhtbDItZGV2ZWwgemxpYi1kZXZlbCBsbHZtMTIiCittYWtlZGVwZW5kcz0ibGliZmZp LWRldmVsIG5jdXJzZXMtZGV2ZWwgbGlieG1sMi1kZXZlbCB6bGliLWRldmVsIGxsdm0iCiBkZXBl bmRzPSJydXN0LXN0ZCIKIHNob3J0X2Rlc2M9IlNhZmUsIGNvbmN1cnJlbnQsIHByYWN0aWNhbCBz eXN0ZW1zIGxhbmd1YWdlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKQEAgLTM0LDcgKzM0LDcgQEAgaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KIGZpCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWhvc3RtYWtl ZGVwZW5kcys9IiBydXN0IGxsdm0xMiIKKwlob3N0bWFrZWRlcGVuZHMrPSIgcnVzdCBsbHZtIgog CSMgVGhlc2UgYXJlIHJlcXVpcmVkIGZvciBidWlsZGluZyB0aGUgYnVpbGRob3N0J3Mgc3RhZ2Uw LzEKIAlob3N0bWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIGxpYnhtbDItZGV2ZWwgbmN1cnNl cy1kZXZlbCB6bGliLWRldmVsIgogZWxzZQoKRnJvbSBhODhiZmIyNDA0MDMxNmMxN2QwNmFjNzM2 NTQyYTBhZWViMmRmMzg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAyOSBNYXIgMjAyMiAwOToyODoxNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzBdIGxs dm0xMzogYWRkIHBhdGNoIHRvIGJ1aWxkIG9uIHg4Nl82NC1tdXNsCgotLS0KIC4uLjZiZTAxMjgx ZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNy5wYXRjaCB8IDU1ICsrKysrKysrKysrKysrKysr KysKIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1 MmUyMWY3LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJl MDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDAwYjIwOTczMDYwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIx MmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoCkBAIC0wLDAgKzEsNTUgQEAKK0Zyb20gZDY5MDZi ZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IE5lbmFkIE1pa3NhIDxuZW5hZC5taWtzYUBtaWNyb2JsaW5rLmNvbT4KK0RhdGU6 IFR1ZSwgNSBPY3QgMjAyMSAxNDowMjozNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBmaXggYnVp bGQgb24gQWxwaW5lIExpbnV4CisKKy0gbWFrZSBzdXJlIGxpYmV4ZWNpbmZvIGdldHMgbGlua2Vk IGludG8gY29tcGlsZXItcnQgd2hlbiBidWlsZGluZworICBhZ2FpbnN0IG11c2wgYyBsaWJyYXJ5 IG9uIEFscGluZSBMaW51eAorLS0tCisgY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtl ICAgICAgICAgICAgICAgfCAxICsKKyBjb21waWxlci1ydC9saWIvc2N1ZG8vQ01ha2VMaXN0cy50 eHQgICAgICAgICAgICB8IDIgKysKKyBjb21waWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9uZS9D TWFrZUxpc3RzLnR4dCB8IDEgKworIDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UgYi9jb21waWxl ci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKK2luZGV4IDM5YjkxMjBmMDBhZGYuLjczZDAyNzhk YWUxMTQgMTAwNjQ0CistLS0gYS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKKysr KyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQorQEAgLTE0LDYgKzE0LDcgQEAg ZnVuY3Rpb24oY29tcGlsZXJfcnRfY2hlY2tfbGlua2VyX2ZsYWcgZmxhZyBvdXRfdmFyKQorIGVu ZGZ1bmN0aW9uKCkKKyAKKyBjaGVja19saWJyYXJ5X2V4aXN0cyhjIGZvcGVuICIiIENPTVBJTEVS X1JUX0hBU19MSUJDKQorK2NoZWNrX2xpYnJhcnlfZXhpc3RzKGV4ZWNpbmZvIGJhY2t0cmFjZSAi IiBDT01QSUxFUl9SVF9IQVNfRVhFQ0lORk8pCisgaWYgKENPTVBJTEVSX1JUX1VTRV9CVUlMVElO U19MSUJSQVJZKQorICAgaW5jbHVkZShIYW5kbGVDb21waWxlclJUKQorICAgZmluZF9jb21waWxl cl9ydF9saWJyYXJ5KGJ1aWx0aW5zICIiIENPTVBJTEVSX1JUX0JVSUxUSU5TX0xJQlJBUlkpCitk aWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0IGIvY29tcGls ZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0CitpbmRleCBlNTgwZDZkMTQwOGJkLi5lOTkz NjQxNjlmNDkyIDEwMDY0NAorLS0tIGEvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMu dHh0CisrKysgYi9jb21waWxlci1ydC9saWIvc2N1ZG8vQ01ha2VMaXN0cy50eHQKK0BAIC0xNCwx MSArMTQsMTMgQEAgYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJfUlRfSEFTX0xJQlBUSFJFQUQgcHRo cmVhZCBTQ1VET19NSU5JTUFMX0RZTkFNSUNfTElCUykKKyBhcHBlbmRfbGlzdF9pZihDT01QSUxF Ul9SVF9IQVNfTElCTE9HIGxvZyBTQ1VET19NSU5JTUFMX0RZTkFNSUNfTElCUykKKyBhcHBlbmRf bGlzdF9pZihDT01QSUxFUl9SVF9IQVNfT01JVF9GUkFNRV9QT0lOVEVSX0ZMQUcgLWZuby1vbWl0 LWZyYW1lLXBvaW50ZXIKKyAgICAgICAgICAgICAgICBTQ1VET19DRkxBR1MpCisrYXBwZW5kX2xp c3RfaWYoQ09NUElMRVJfUlRfSEFTX0VYRUNJTkZPIGV4ZWNpbmZvIFNDVURPX01JTklNQUxfRFlO QU1JQ19MSUJTKQorIAorIHNldChTQ1VET19EWU5BTUlDX0xJTktfRkxBR1MgJHtTQU5JVElaRVJf Q09NTU9OX0xJTktfRkxBR1N9KQorICMgVXNlIGdjLXNlY3Rpb25zIGJ5IGRlZmF1bHQgdG8gYXZv aWQgdW51c2VkIGNvZGUgYmVpbmcgcHVsbGVkIGluLgorIGxpc3QoQVBQRU5EIFNDVURPX0RZTkFN SUNfTElOS19GTEFHUyAtV2wsLS1nYy1zZWN0aW9ucykKKyAKKysKKyBpZihBTkRST0lEKQorICMg UHV0IG1vc3QgU2FuaXRpemVyIHNoYXJlZCBsaWJyYXJpZXMgaW4gdGhlIGdsb2JhbCBncm91cC4g Rm9yIG1vcmUgZGV0YWlscywgc2VlCisgIyBhbmRyb2lkLWNoYW5nZXMtZm9yLW5kay1kZXZlbG9w ZXJzLm1kI2NoYW5nZXMtdG8tbGlicmFyeS1zZWFyY2gtb3JkZXIKK2RpZmYgLS1naXQgYS9jb21w aWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9uZS9DTWFrZUxpc3RzLnR4dCBiL2NvbXBpbGVyLXJ0 L2xpYi9zY3Vkby9zdGFuZGFsb25lL0NNYWtlTGlzdHMudHh0CitpbmRleCBkNmZmYTQ0OGQ3ZTA5 Li45NTlhZmVkYzBjMGNkIDEwMDY0NAorLS0tIGEvY29tcGlsZXItcnQvbGliL3NjdWRvL3N0YW5k YWxvbmUvQ01ha2VMaXN0cy50eHQKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9zdGFuZGFs b25lL0NNYWtlTGlzdHMudHh0CitAQCAtMTM0LDYgKzEzNCw3IEBAIGVuZGlmKCkKKyBzZXQoU0NV RE9fTElOS19MSUJTKQorIAorIGFwcGVuZF9saXN0X2lmKENPTVBJTEVSX1JUX0hBU19MSUJQVEhS RUFEIC1wdGhyZWFkIFNDVURPX0xJTktfRkxBR1MpCisrYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJf UlRfSEFTX0VYRUNJTkZPIGV4ZWNpbmZvIFNDVURPX0xJTktfTElCUykKKyAKKyBhcHBlbmRfbGlz dF9pZihGVUNIU0lBIHppcmNvbiBTQ1VET19MSU5LX0xJQlMpCisgCgpGcm9tIDhkNWMxYWVlZmNm MzgzMWE0ZjUxY2Y3ZTI2YmVlNWQ3ZTlhZTY0YzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIE1hciAyMDIyIDE3OjAyOjM4ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAyOS8zMF0gU1BJUlYtTExWTS1UcmFuc2xhdG9yOiByZWJ1aWxkIGZvciBsbHZtMTMuCgot LS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmNwa2dzL1NQSVJWLUhlYWRlcnMvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgIDIgKy0K IC4uLi9TUElSVi1MTFZNLVRyYW5zbGF0b3IvcGF0Y2hlcy8xMjg0LnBhdGNoICB8IDI5NyArKysr KysrKysrKysrKysrKysKIHNyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlICAg ICAgICB8ICAxMSArLQogNCBmaWxlcyBjaGFuZ2VkLCAzMDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRv ci9wYXRjaGVzLzEyODQucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCA4ODY4OGQ3ZWUwZGEuLmJhZmE2MmY4NTE3NiAxMDA2NDQKLS0tIGEvY29t bW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzksNiArOTc5LDcgQEAgbGliY2xh bmctY3BwLnNvLjEzIGxpYmNsYW5nLWNwcC0xMy4wLjBfMQogbGliTExWTS0xMS5zbyBsaWJsbHZt MTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCiBsaWJMTFZNLTEz LnNvIGxpYmxsdm0xMy0xMy4wLjBfMQorbGliTExWTVNQSVJWTGliLnNvLjEzIFNQSVJWLUxMVk0t VHJhbnNsYXRvci0xMy4wLjBfMQogbGliaXNvZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGli bXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8xCiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44 XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvU1BJUlYtSGVhZGVycy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv U1BJUlYtSGVhZGVycy90ZW1wbGF0ZQppbmRleCA4ZjNlNjhiYTg3YzMuLmYzOTQxODNlNjcxOSAx MDA2NDQKLS0tIGEvc3JjcGtncy9TUElSVi1IZWFkZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv U1BJUlYtSGVhZGVycy90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9U1BJUlYtSGVh ZGVycwogcmV2ZXJ0cz0iMS41LjQucmF5dHJhY2luZy5maXhlZF8xIDEuNS4zXzIgMS41LjNfMSAx LjUuMV8xIDEuNC4xXzEiCiB2ZXJzaW9uPTEuMy4yMDQuMQotcmV2aXNpb249MQorcmV2aXNpb249 Mgogd3Jrc3JjPSJTUElSVi1IZWFkZXJzLXNkay0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21h a2UKIHNob3J0X2Rlc2M9Ik1hY2hpbmUtcmVhZGFibGUgZmlsZXMgZm9yIHRoZSBTUElSLVYgUmVn aXN0cnkiCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci9wYXRjaGVz LzEyODQucGF0Y2ggYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci9wYXRjaGVzLzEyODQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMzdlYjQ4MzJm NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci9wYXRj aGVzLzEyODQucGF0Y2gKQEAgLTAsMCArMSwyOTcgQEAKK0Zyb20gNzBmZmRiNDcwOTg2NjA4YjFm NGY0YzZkNjFlMTVkZDY1Mjc1YzE4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERt aXRyeSBTaWRvcm92IDxkbWl0cnkuc2lkb3JvdkBpbnRlbC5jb20+CitEYXRlOiBUaHUsIDE4IE5v diAyMDIxIDE2OjU2OjQwICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSBPcENvbnN0RnVu Y3Rpb25Qb2ludGVySU5URUwgdG8KKyBPcENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgKCMx MjY1KQorCitTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgU2lkb3JvdiA8ZG1pdHJ5LnNpZG9yb3ZAaW50 ZWwuY29tPgorLS0tCisgbGliL1NQSVJWL1NQSVJWUmVhZGVyLmNwcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNiArKystLS0KKyBsaWIvU1BJUlYvU1BJUlZXcml0ZXIuY3BwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgbGliL1NQSVJWL1NQSVJWV3JpdGVyLmgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KKyBsaWIvU1BJUlYvbGliU1BJ UlYvU1BJUlZGdW5jdGlvbi5oICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KKyBs aWIvU1BJUlYvbGliU1BJUlYvU1BJUlZNb2R1bGUuY3BwICAgICAgICAgICAgICAgICAgICB8IDEx ICsrKysrKy0tLS0tCisgbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9kdWxlLmggICAgICAgICAg ICAgICAgICAgICAgfCAgNCArKy0tCisgbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWT3BDb2RlLmgg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQorIGxpYi9TUElSVi9saWJTUElSVi9TUElSVk9w Q29kZUVudW0uaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KKyBzcGlydi1oZWFkZXJzLXRhZy5j b25mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgdGVzdC9jb25zdGV4 cHJfdmVjdG9yLmxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQor IC4uLi9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvYml0Y2FzdC5sbCAgICAgICAgICAgIHwg IDIgKy0KKyAuLi4vY29uc3QtZnVuY3Rpb24tcG9pbnRlci5sbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICsrLS0KKyAuLi4vU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2Z1bmN0aW9u LXBvaW50ZXIubGwgICB8ICAyICstCisgLi4uL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9n bG9iYWxfY3Rvcl9kdG9yLmxsICAgfCAgNCArKy0tCisgLi4uL25vbi11bmlmb3JtLWZ1bmN0aW9u LXBvaW50ZXIubGwgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCisgLi4uL3RyYW5zY29kaW5n L1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9zZWxlY3QubGwgfCAgNCArKy0tCisgLi4uL1NQ Vl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy92ZWN0b3JfZWxlbS5sbCAgICAgICAgfCAgNCArKy0t CisgMTcgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9saWIvU1BJUlYvU1BJUlZSZWFkZXIuY3BwIGIvbGliL1NQSVJWL1NQSVJW UmVhZGVyLmNwcAoraW5kZXggOGE0ZGI1M2JlLi45ZDM3YTQ5MGUgMTAwNjQ0CistLS0gYS9saWIv U1BJUlYvU1BJUlZSZWFkZXIuY3BwCisrKysgYi9saWIvU1BJUlYvU1BJUlZSZWFkZXIuY3BwCitA QCAtMTQzOSw5ICsxNDM5LDkgQEAgVmFsdWUgKlNQSVJWVG9MTFZNOjp0cmFuc1ZhbHVlV2l0aG91 dERlY29yYXRpb24oU1BJUlZWYWx1ZSAqQlYsIEZ1bmN0aW9uICpGLAorICAgICByZXR1cm4gbWFw VmFsdWUoQlYsIHRyYW5zVmFsdWUoQkksIG51bGxwdHIsIG51bGxwdHIsIGZhbHNlKSk7CisgICB9 CisgCistICBjYXNlIE9wQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTDogeworLSAgICBTUElSVkNv bnN0RnVuY3Rpb25Qb2ludGVySU5URUwgKkJDID0KKy0gICAgICAgIHN0YXRpY19jYXN0PFNQSVJW Q29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCAqPihCVik7CisrICBjYXNlIE9wQ29uc3RhbnRGdW5j dGlvblBvaW50ZXJJTlRFTDogeworKyAgICBTUElSVkNvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5U RUwgKkJDID0KKysgICAgICAgIHN0YXRpY19jYXN0PFNQSVJWQ29uc3RhbnRGdW5jdGlvblBvaW50 ZXJJTlRFTCAqPihCVik7CisgICAgIFNQSVJWRnVuY3Rpb24gKkYgPSBCQy0+Z2V0RnVuY3Rpb24o KTsKKyAgICAgQlYtPnNldE5hbWUoRi0+Z2V0TmFtZSgpKTsKKyAgICAgcmV0dXJuIG1hcFZhbHVl KEJWLCB0cmFuc0Z1bmN0aW9uKEYpKTsKK2RpZmYgLS1naXQgYS9saWIvU1BJUlYvU1BJUlZXcml0 ZXIuY3BwIGIvbGliL1NQSVJWL1NQSVJWV3JpdGVyLmNwcAoraW5kZXggMThhMzljZjhlLi5iMThj OWMzNmIgMTAwNjQ0CistLS0gYS9saWIvU1BJUlYvU1BJUlZXcml0ZXIuY3BwCisrKysgYi9saWIv U1BJUlYvU1BJUlZXcml0ZXIuY3BwCitAQCAtMTQxOCw3ICsxNDE4LDcgQEAgTExWTVRvU1BJUlZC YXNlOjp0cmFuc1ZhbHVlV2l0aG91dERlY29yYXRpb24oVmFsdWUgKlYsIFNQSVJWQmFzaWNCbG9j ayAqQkIsCisgICAgIGlmICghQk0tPmNoZWNrRXh0ZW5zaW9uKEV4dGVuc2lvbklEOjpTUFZfSU5U RUxfZnVuY3Rpb25fcG9pbnRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQSVJW RUNfRnVuY3Rpb25Qb2ludGVycywgdG9TdHJpbmcoVikpKQorICAgICAgIHJldHVybiBudWxscHRy OworLSAgICByZXR1cm4gQk0tPmFkZENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwoCisrICAgIHJl dHVybiBCTS0+YWRkQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCgKKyAgICAgICAgIHRyYW5z VHlwZShGLT5nZXRUeXBlKCkpLAorICAgICAgICAgc3RhdGljX2Nhc3Q8U1BJUlZGdW5jdGlvbiAq Pih0cmFuc1ZhbHVlKEYsIG51bGxwdHIpKSk7CisgICB9CitkaWZmIC0tZ2l0IGEvbGliL1NQSVJW L1NQSVJWV3JpdGVyLmggYi9saWIvU1BJUlYvU1BJUlZXcml0ZXIuaAoraW5kZXggMGM1Nzg2MWJm Li4yNDI3OTMyNzYgMTAwNjQ0CistLS0gYS9saWIvU1BJUlYvU1BJUlZXcml0ZXIuaAorKysrIGIv bGliL1NQSVJWL1NQSVJWV3JpdGVyLmgKK0BAIC03NSw3ICs3NSw4IEBAIGNsYXNzIExMVk1Ub1NQ SVJWQmFzZSB7CisgICAvLyBhIGZ1bmN0aW9uLCB0aGF0IGlzIG5lY2Vzc2FyeSBmb3IgYSBjb252 ZW5pZW50IGZ1bmN0aW9uIHBvaW50ZXJzIGhhbmRsaW5nLgorICAgLy8gQnkgZGVmYXVsdCB0cmFu c1ZhbHVlIHVzZXMgJ0RlY2wnIG1vZGUsIHdoaWNoIG1lYW5zIGV2ZXJ5IGZ1bmN0aW9uCisgICAv LyB3ZSBtZWV0IGR1cmluZyB0aGUgdHJhbnNsYXRpb24gc2hvdWxkIHJlc3VsdCBpbiBpdHMgZGVj bGFyYXRpb24gZ2VuZXJhdGVkLgorLSAgLy8gSW4gJ1BvaW50ZXInIG1vZGUgd2UgZ2VuZXJhdGUg T3BDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIGNvbnN0YW50IGluc3RlYWQuCisrICAvLyBJbiAn UG9pbnRlcicgbW9kZSB3ZSBnZW5lcmF0ZSBPcENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwg Y29uc3RhbnQKKysgIC8vIGluc3RlYWQuCisgICBlbnVtIGNsYXNzIEZ1bmNUcmFuc01vZGUgeyBE ZWNsLCBQb2ludGVyIH07CisgCisgICBTUElSVlR5cGUgKnRyYW5zVHlwZShUeXBlICpUKTsKK2Rp ZmYgLS1naXQgYS9saWIvU1BJUlYvbGliU1BJUlYvU1BJUlZGdW5jdGlvbi5oIGIvbGliL1NQSVJW L2xpYlNQSVJWL1NQSVJWRnVuY3Rpb24uaAoraW5kZXggYmYxMjZkNDAyLi4zNWNhYjg2MmIgMTAw NjQ0CistLS0gYS9saWIvU1BJUlYvbGliU1BJUlYvU1BJUlZGdW5jdGlvbi5oCisrKysgYi9saWIv U1BJUlYvbGliU1BJUlYvU1BJUlZGdW5jdGlvbi5oCitAQCAtMTcxLDE4ICsxNzEsMTggQEAgY2xh c3MgU1BJUlZGdW5jdGlvbiA6IHB1YmxpYyBTUElSVlZhbHVlLCBwdWJsaWMgU1BJUlZDb21wb25l bnRFeGVjdXRpb25Nb2RlcyB7CisgCisgdHlwZWRlZiBTUElSVkVudHJ5T3BDb2RlT25seTxPcEZ1 bmN0aW9uRW5kPiBTUElSVkZ1bmN0aW9uRW5kOworIAorLWNsYXNzIFNQSVJWQ29uc3RGdW5jdGlv blBvaW50ZXJJTlRFTCA6IHB1YmxpYyBTUElSVlZhbHVlIHsKKy0gIGNvbnN0IHN0YXRpYyBPcCBP QyA9IE9wQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTDsKKytjbGFzcyBTUElSVkNvbnN0YW50RnVu Y3Rpb25Qb2ludGVySU5URUwgOiBwdWJsaWMgU1BJUlZWYWx1ZSB7CisrICBjb25zdCBzdGF0aWMg T3AgT0MgPSBPcENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUw7CisgICBjb25zdCBzdGF0aWMg U1BJUlZXb3JkIEZpeGVkV29yZENvdW50ID0gNDsKKyAKKyBwdWJsaWM6CistICBTUElSVkNvbnN0 RnVuY3Rpb25Qb2ludGVySU5URUwoU1BJUlZJZCBUaGVJZCwgU1BJUlZUeXBlICpUaGVUeXBlLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQSVJWRnVuY3Rpb24gKlRoZUZ1bmN0 aW9uLCBTUElSVk1vZHVsZSAqTSkKKysgIFNQSVJWQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRF TChTUElSVklkIFRoZUlkLCBTUElSVlR5cGUgKlRoZVR5cGUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1BJUlZGdW5jdGlvbiAqVGhlRnVuY3Rpb24sIFNQSVJWTW9kdWxl ICpNKQorICAgICAgIDogU1BJUlZWYWx1ZShNLCBGaXhlZFdvcmRDb3VudCwgT0MsIFRoZVR5cGUs IFRoZUlkKSwKKyAgICAgICAgIFRoZUZ1bmN0aW9uKFRoZUZ1bmN0aW9uLT5nZXRJZCgpKSB7Cisg ICAgIHZhbGlkYXRlKCk7CisgICB9CistICBTUElSVkNvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwo KQorKyAgU1BJUlZDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMKCkKKyAgICAgICA6IFNQSVJW VmFsdWUoT0MpLCBUaGVGdW5jdGlvbihTUElSVklEX0lOVkFMSUQpIHt9CisgICBTUElSVkZ1bmN0 aW9uICpnZXRGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIGdldDxTUElSVkZ1bmN0aW9uPihUaGVG dW5jdGlvbik7IH0KKyAgIF9TUElSVl9ERUZfRU5DREVDMyhUeXBlLCBJZCwgVGhlRnVuY3Rpb24p CitkaWZmIC0tZ2l0IGEvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9kdWxlLmNwcCBiL2xpYi9T UElSVi9saWJTUElSVi9TUElSVk1vZHVsZS5jcHAKK2luZGV4IDNkMmE2YWU1Ny4uMGY4ZTZlNTAy IDEwMDY0NAorLS0tIGEvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9kdWxlLmNwcAorKysrIGIv bGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9kdWxlLmNwcAorQEAgLTI2OSw4ICsyNjksOCBAQCBj bGFzcyBTUElSVk1vZHVsZUltcGwgOiBwdWJsaWMgU1BJUlZNb2R1bGUgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFNQSVJWVmFsdWUgKj4gJkVsZW1lbnRz KSBvdmVycmlkZTsKKyAgIFNQSVJWRW50cnkgKmFkZFNwZWNDb25zdGFudENvbXBvc2l0ZUNvbnRp bnVlZElOVEVMKAorICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFNQSVJWVmFsdWUgKj4gJikgb3Zl cnJpZGU7CistICBTUElSVlZhbHVlICphZGRDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMKFNQSVJW VHlwZSAqVHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQ SVJWRnVuY3Rpb24gKkYpIG92ZXJyaWRlOworKyAgU1BJUlZWYWx1ZSAqYWRkQ29uc3RhbnRGdW5j dGlvblBvaW50ZXJJTlRFTChTUElSVlR5cGUgKlR5LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSBvdmVycmlkZTsKKyAgIFNQ SVJWVmFsdWUgKmFkZENvbnN0YW50KFNQSVJWVmFsdWUgKikgb3ZlcnJpZGU7CisgICBTUElSVlZh bHVlICphZGRDb25zdGFudChTUElSVlR5cGUgKiwgdWludDY0X3QpIG92ZXJyaWRlOworICAgU1BJ UlZWYWx1ZSAqYWRkQ29uc3RhbnQoU1BJUlZUeXBlICosIGxsdm06OkFQSW50KSBvdmVycmlkZTsK K0BAIC0xMTQyLDkgKzExNDIsMTAgQEAgU1BJUlZFbnRyeSAqU1BJUlZNb2R1bGVJbXBsOjphZGRT cGVjQ29uc3RhbnRDb21wb3NpdGVDb250aW51ZWRJTlRFTCgKKyAgIHJldHVybiBhZGQobmV3IFNQ SVJWU3BlY0NvbnN0YW50Q29tcG9zaXRlQ29udGludWVkSU5URUwodGhpcywgRWxlbWVudHMpKTsK KyB9CisgCistU1BJUlZWYWx1ZSAqU1BJUlZNb2R1bGVJbXBsOjphZGRDb25zdEZ1bmN0aW9uUG9p bnRlcklOVEVMKFNQSVJWVHlwZSAqVHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQSVJWRnVuY3Rpb24gKkYpIHsKKy0gIHJldHVy biBhZGRDb25zdGFudChuZXcgU1BJUlZDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMKGdldElkKCks IFR5LCBGLCB0aGlzKSk7CisrU1BJUlZWYWx1ZSAqU1BJUlZNb2R1bGVJbXBsOjphZGRDb25zdGFu dEZ1bmN0aW9uUG9pbnRlcklOVEVMKFNQSVJWVHlwZSAqVHksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQSVJWRnVuY3Rpb24g KkYpIHsKKysgIHJldHVybiBhZGRDb25zdGFudCgKKysgICAgICBuZXcgU1BJUlZDb25zdGFudEZ1 bmN0aW9uUG9pbnRlcklOVEVMKGdldElkKCksIFR5LCBGLCB0aGlzKSk7CisgfQorIAorIFNQSVJW VmFsdWUgKlNQSVJWTW9kdWxlSW1wbDo6YWRkVW5kZWYoU1BJUlZUeXBlICpUaGVUeXBlKSB7Citk aWZmIC0tZ2l0IGEvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9kdWxlLmggYi9saWIvU1BJUlYv bGliU1BJUlYvU1BJUlZNb2R1bGUuaAoraW5kZXggODM3Mjk1OTRjLi4yNzdhMTlmYjAgMTAwNjQ0 CistLS0gYS9saWIvU1BJUlYvbGliU1BJUlYvU1BJUlZNb2R1bGUuaAorKysrIGIvbGliL1NQSVJW L2xpYlNQSVJWL1NQSVJWTW9kdWxlLmgKK0BAIC0yNjMsOCArMjYzLDggQEAgY2xhc3MgU1BJUlZN b2R1bGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFNQ SVJWVmFsdWUgKj4gJkVsZW1lbnRzKSA9IDA7CisgICB2aXJ0dWFsIFNQSVJWRW50cnkgKgorICAg YWRkU3BlY0NvbnN0YW50Q29tcG9zaXRlQ29udGludWVkSU5URUwoY29uc3Qgc3RkOjp2ZWN0b3I8 U1BJUlZWYWx1ZSAqPiAmKSA9IDA7CistICB2aXJ0dWFsIFNQSVJWVmFsdWUgKmFkZENvbnN0RnVu Y3Rpb25Qb2ludGVySU5URUwoU1BJUlZUeXBlICpUeSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSA9IDA7CisrICB2 aXJ0dWFsIFNQSVJWVmFsdWUgKmFkZENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwoU1BJUlZU eXBlICpUeSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSA9IDA7CisgICB2aXJ0dWFsIFNQSVJWVmFsdWUgKmFk ZENvbnN0YW50KFNQSVJWVmFsdWUgKikgPSAwOworICAgdmlydHVhbCBTUElSVlZhbHVlICphZGRD b25zdGFudChTUElSVlR5cGUgKiwgdWludDY0X3QpID0gMDsKKyAgIHZpcnR1YWwgU1BJUlZWYWx1 ZSAqYWRkQ29uc3RhbnQoU1BJUlZUeXBlICosIGxsdm06OkFQSW50KSA9IDA7CitkaWZmIC0tZ2l0 IGEvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWT3BDb2RlLmggYi9saWIvU1BJUlYvbGliU1BJUlYv U1BJUlZPcENvZGUuaAoraW5kZXggMGIyNDFiYTc1Li5mYjk0Njc0MjggMTAwNjQ0CistLS0gYS9s aWIvU1BJUlYvbGliU1BJUlYvU1BJUlZPcENvZGUuaAorKysrIGIvbGliL1NQSVJWL2xpYlNQSVJW L1NQSVJWT3BDb2RlLmgKK0BAIC0yMjYsNyArMjI2LDcgQEAgaW5saW5lIGJvb2wgaXNTcGVjQ29u c3RhbnRPcENvZGUoT3AgT3BDb2RlKSB7CisgaW5saW5lIGJvb2wgaXNDb25zdGFudE9wQ29kZShP cCBPcENvZGUpIHsKKyAgIHVuc2lnbmVkIE9DID0gT3BDb2RlOworICAgcmV0dXJuIChPcENvbnN0 YW50VHJ1ZSA8PSBPQyAmJiBPQyA8PSBPcFNwZWNDb25zdGFudE9wKSB8fCBPQyA9PSBPcFVuZGVm IHx8CistICAgICAgICAgT0MgPT0gT3BDb25zdGFudFBpcGVTdG9yYWdlIHx8IE9DID09IE9wQ29u c3RGdW5jdGlvblBvaW50ZXJJTlRFTDsKKysgICAgICAgICBPQyA9PSBPcENvbnN0YW50UGlwZVN0 b3JhZ2UgfHwgT0MgPT0gT3BDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMOworIH0KKyAKKyBp bmxpbmUgYm9vbCBpc01vZHVsZVNjb3BlQWxsb3dlZE9wQ29kZShPcCBPcENvZGUpIHsKK2RpZmYg LS1naXQgYS9saWIvU1BJUlYvbGliU1BJUlYvU1BJUlZPcENvZGVFbnVtLmggYi9saWIvU1BJUlYv bGliU1BJUlYvU1BJUlZPcENvZGVFbnVtLmgKK2luZGV4IDBiODI2N2RiYy4uNzQ4MjU3YjllIDEw MDY0NAorLS0tIGEvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWT3BDb2RlRW51bS5oCisrKysgYi9s aWIvU1BJUlYvbGliU1BJUlYvU1BJUlZPcENvZGVFbnVtLmgKK0BAIC0zNDQsNyArMzQ0LDcgQEAg X1NQSVJWX09QKFN1Ymdyb3VwSW1hZ2VCbG9ja1JlYWRJTlRFTCwgNTU3NykKKyBfU1BJUlZfT1Ao U3ViZ3JvdXBJbWFnZUJsb2NrV3JpdGVJTlRFTCwgNTU3OCkKKyBfU1BJUlZfT1AoU3ViZ3JvdXBJ bWFnZU1lZGlhQmxvY2tSZWFkSU5URUwsIDU1ODApCisgX1NQSVJWX09QKFN1Ymdyb3VwSW1hZ2VN ZWRpYUJsb2NrV3JpdGVJTlRFTCwgNTU4MSkKKy1fU1BJUlZfT1AoQ29uc3RGdW5jdGlvblBvaW50 ZXJJTlRFTCwgNTYwMCkKKytfU1BJUlZfT1AoQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCwg NTYwMCkKKyBfU1BJUlZfT1AoRnVuY3Rpb25Qb2ludGVyQ2FsbElOVEVMLCA1NjAxKQorIF9TUElS Vl9PUChBc21UYXJnZXRJTlRFTCwgNTYwOSkKKyBfU1BJUlZfT1AoQXNtSU5URUwsIDU2MTApCitk aWZmIC0tZ2l0IGEvc3BpcnYtaGVhZGVycy10YWcuY29uZiBiL3NwaXJ2LWhlYWRlcnMtdGFnLmNv bmYKK2luZGV4IDFlYTZlNmM3Ny4uYmI4ZDFjNGVjIDEwMDY0NAorLS0tIGEvc3BpcnYtaGVhZGVy cy10YWcuY29uZgorKysrIGIvc3BpcnYtaGVhZGVycy10YWcuY29uZgorQEAgLTEgKzEgQEAKKy1k ZGYzMjMwYzE0YzcxZTgxZmMwZWFlOWI3ODFjYzRiY2MyZDFmMGY1CisrODE0ZTcyOGIzMGRkZDBm NDUwOTIzMzA5OWEzYWQ5NmZkNDMxOGMwNworZGlmZiAtLWdpdCBhL3Rlc3QvY29uc3RleHByX3Zl Y3Rvci5sbCBiL3Rlc3QvY29uc3RleHByX3ZlY3Rvci5sbAoraW5kZXggMmE1YjQyODMyLi5lYWNh M2Y0MWUgMTAwNjQ0CistLS0gYS90ZXN0L2NvbnN0ZXhwcl92ZWN0b3IubGwKKysrKyBiL3Rlc3Qv Y29uc3RleHByX3ZlY3Rvci5sbAorQEAgLTYyLDEwICs2MiwxMCBAQAorIDsgQ0hFQ0stU1BJUlYt REFHOiA0IFR5cGVQb2ludGVyIFtbU3RvcmVQdHI6WzAtOV0rXV0gNyBbW1R5cGVWZWMxNl1dCisg OyBDSEVDSy1TUElSVi1EQUc6IDMgVW5kZWYgW1tUeXBlVmVjMTZdXSBbW1R5cGVVbmRlZlYxNjpb MC05XStdXQorIDsgQ0hFQ0stU1BJUlYtREFHOiAzIFVuZGVmIFtbVHlwZVZlYzY0XV0gW1tUeXBl VW5kZWZWNjQ6WzAtOV0rXV0KKy07IENIRUNLLVNQSVJWLURBRzogNCBDb25zdEZ1bmN0aW9uUG9p bnRlcklOVEVMIFtbRnVuY1B0clR5OlswLTldK11dIFtbRjFQdHI6WzAtOV0rXV0gW1tGMV1dCist OyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCBbW0Z1bmNQdHJU eV1dIFtbRjJQdHI6WzAtOV0rXV0gW1tGMl1dCistOyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RG dW5jdGlvblBvaW50ZXJJTlRFTCBbW0Z1bmNQdHJUeV1dIFtbRjExUHRyOlswLTldK11dIFtbRjFd XQorLTsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGdW5j UHRyVHldXSBbW0YyMVB0cjpbMC05XStdXSBbW0YyXV0KKys7IENIRUNLLVNQSVJWLURBRzogNCBD b25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbRnVuY1B0clR5OlswLTldK11dIFtbRjFQdHI6 WzAtOV0rXV0gW1tGMV1dCisrOyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RhbnRGdW5jdGlvblBv aW50ZXJJTlRFTCBbW0Z1bmNQdHJUeV1dIFtbRjJQdHI6WzAtOV0rXV0gW1tGMl1dCisrOyBDSEVD Sy1TUElSVi1EQUc6IDQgQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbW0Z1bmNQdHJUeV1d IFtbRjExUHRyOlswLTldK11dIFtbRjFdXQorKzsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0YW50 RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGdW5jUHRyVHldXSBbW0YyMVB0cjpbMC05XStdXSBbW0Yy XV0KKyAKKyA7IENIRUNLLVNQSVJWOiA0IENvbnZlcnRQdHJUb1UgW1tUeXBlSW50NjRdXSBbW1B0 cjE6WzAtOV0rXV0gW1tGMVB0cl1dCisgOyBDSEVDSy1TUElSVjogNCBCaXRjYXN0IFtbVHlwZVZl YzhdXSBbW1ZlYzE6WzAtOV0rXV0gW1tQdHIxXV0KK2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29k aW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9iaXRjYXN0LmxsIGIvdGVzdC90cmFuc2Nv ZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvYml0Y2FzdC5sbAoraW5kZXggYmY2NWY2 YTc4Li43NDgzMzFiZTkgMTAwNjQ0CistLS0gYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9m dW5jdGlvbl9wb2ludGVycy9iaXRjYXN0LmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9J TlRFTF9mdW5jdGlvbl9wb2ludGVycy9iaXRjYXN0LmxsCitAQCAtMTgsNyArMTgsNyBAQAorIDsg Q0hFQ0stU1BJUlY6IFR5cGVGdW5jdGlvbiBbWyNERVNUX1RZOl1dIFtbI11dIFtbI11dCisgOyBD SEVDSy1TUElSVjogVHlwZVBvaW50ZXIgW1sjREVTVF9UWV9QVFI6XV0gW1sjXV0gW1sjREVTVF9U WV1dCisgOyBDSEVDSy1TUElSVjogVHlwZVBvaW50ZXIgW1sjRk9PX1RZX1BUUjpdXSBbWyNdXSBb WyNGT09fVFldXQorLTsgQ0hFQ0stU1BJUlY6IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1sj Rk9PX1RZX1BUUl1dIFtbI0ZPT19QVFI6XV0gW1sjRk9POl1dCisrOyBDSEVDSy1TUElSVjogQ29u c3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbWyNGT09fVFlfUFRSXV0gW1sjRk9PX1BUUjpdXSBb WyNGT086XV0KKyA7IENIRUNLLVNQSVJWOiBGdW5jdGlvbiBbWyNdXSBbWyNGT09dXSBbWyNdXSBb WyNGT09fVFldXQorIAorIDsgQ0hFQ0stU1BJUlY6IEJpdGNhc3QgW1sjREVTVF9UWV9QVFJdXSBb WyNdXSBbWyNGT09fUFRSXV0KK2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRF TF9mdW5jdGlvbl9wb2ludGVycy9jb25zdC1mdW5jdGlvbi1wb2ludGVyLmxsIGIvdGVzdC90cmFu c2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvY29uc3QtZnVuY3Rpb24tcG9pbnRl ci5sbAoraW5kZXggZGYyNjMwNDhhLi4zODk4YWQ1YjkgMTAwNjQ0CistLS0gYS90ZXN0L3RyYW5z Y29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9jb25zdC1mdW5jdGlvbi1wb2ludGVy LmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9j b25zdC1mdW5jdGlvbi1wb2ludGVyLmxsCitAQCAtMTQsOCArMTQsOCBAQAorIDsgQ0hFQ0stU1BJ UlYtREFHOiBDb25zdGFudCBbW0ludDMyXV0gW1tYQXJnOlswLTldK11dIDMyCisgOyBDSEVDSy1T UElSVi1EQUc6IENvbnN0YW50IFtbSW50MzJdXSBbW1lBcmc6WzAtOV0rXV0gMgorIAorLTsgQ0hF Q0stU1BJUlY6IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwge3tbMC05XSt9fSBbW0YxOlswLTld K11dIFtbRjFOYW1lXV0KKy07IENIRUNLLVNQSVJWOiBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVM IHt7WzAtOV0rfX0gW1tGMjpbMC05XStdXSBbW0YyTmFtZV1dCisrOyBDSEVDSy1TUElSVjogQ29u c3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCB7e1swLTldK319IFtbRjE6WzAtOV0rXV0gW1tGMU5h bWVdXQorKzsgQ0hFQ0stU1BJUlY6IENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwge3tbMC05 XSt9fSBbW0YyOlswLTldK11dIFtbRjJOYW1lXV0KKyA7IENIRUNLLVNQSVJWOiBDb25zdGFudENv bXBvc2l0ZSB7e1swLTldK319IFtbQ29uc3RDb21wOlswLTldK11dIFtbRjFdXSBbW0YyXV0KKyA7 IENIRUNLLVNQSVJWOiBWYXJpYWJsZSB7e1swLTldK319IFtbVmFyOlswLTldK11dIHt7WzAtOV0r fX0gW1tDb25zdENvbXBdXQorIAorZGlmZiAtLWdpdCBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lO VEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2Z1bmN0aW9uLXBvaW50ZXIubGwgYi90ZXN0L3RyYW5zY29k aW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9mdW5jdGlvbi1wb2ludGVyLmxsCitpbmRl eCBkZWViOGI1ZmEuLjg0YTk3MjU1ZiAxMDA2NDQKKy0tLSBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BW X0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2Z1bmN0aW9uLXBvaW50ZXIubGwKKysrKyBiL3Rlc3Qv dHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2Z1bmN0aW9uLXBvaW50ZXIu bGwKK0BAIC0yNCw3ICsyNCw3IEBACisgOyBDSEVDSy1TUElSVjogVHlwZUZ1bmN0aW9uIFtbRk9P X1RZUEVfSUQ6WzAtOV0rXV0gW1tUWVBFX0lOVF9JRF1dIFtbVFlQRV9JTlRfSURdXQorIDsgQ0hF Q0stU1BJUlY6IFR5cGVQb2ludGVyIFtbRk9PX1BUUl9JRDpbMC05XStdXSB7e1swLTldK319IFtb Rk9PX1RZUEVfSURdXQorIDsgQ0hFQ0stU1BJUlY6IFR5cGVQb2ludGVyIFtbRk9PX1BUUl9BTExP Q0FfSUQ6WzAtOV0rXV0gNyBbW0ZPT19QVFJfSURdXQorLTsgQ0hFQ0stU1BJUlY6IENvbnN0RnVu Y3Rpb25Qb2ludGVySU5URUwgW1tGT09fUFRSX0lEXV0gW1tGT09fUFRSOlswLTldK11dIFtbRk9P X0lEOlswLTldK11dCisrOyBDSEVDSy1TUElSVjogQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRF TCBbW0ZPT19QVFJfSURdXSBbW0ZPT19QVFI6WzAtOV0rXV0gW1tGT09fSUQ6WzAtOV0rXV0KKyA7 CisgOyBDSEVDSy1TUElSVjogRnVuY3Rpb24ge3tbMC05XSt9fSBbW0ZPT19JRF1dIHt7WzAtOV0r fX0gW1tGT09fVFlQRV9JRF1dCisgOyBDSEVDSy1TUElSVjogRnVuY3Rpb24ge3tbMC05XSt9fSBb W0tFUk5FTF9JRF1dCitkaWZmIC0tZ2l0IGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVu Y3Rpb25fcG9pbnRlcnMvZ2xvYmFsX2N0b3JfZHRvci5sbCBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BW X0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2dsb2JhbF9jdG9yX2R0b3IubGwKK2luZGV4IDZkNWI3 ZTJkZC4uOGU4NTNmYTZmIDEwMDY0NAorLS0tIGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxf ZnVuY3Rpb25fcG9pbnRlcnMvZ2xvYmFsX2N0b3JfZHRvci5sbAorKysrIGIvdGVzdC90cmFuc2Nv ZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvZ2xvYmFsX2N0b3JfZHRvci5sbAorQEAg LTIyLDkgKzIyLDkgQEAgdGFyZ2V0IHRyaXBsZSA9ICJzcGlyNjQtdW5rbm93bi11bmtub3duIgor IDsgQ0hFQ0s6IFR5cGVGdW5jdGlvbiB7e1swLTldK319IFtbVEY6WzAtOV0rXV0KKyAKKyA7IENI RUNLOiBUeXBlUG9pbnRlciBbW1RQOlswLTldK11dCistOyBDSEVDSzogQ29uc3RGdW5jdGlvblBv aW50ZXJJTlRFTCBbW1RQXV0gW1tGUEN0b3I6WzAtOV0rXV0gW1tOYW1lQ3Rvcl1dCisrOyBDSEVD SzogQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbW1RQXV0gW1tGUEN0b3I6WzAtOV0rXV0g W1tOYW1lQ3Rvcl1dCisgOyBDSEVDSzogQ29uc3RhbnRDb21wb3NpdGUge3tbMC05XSt9fSB7e1sw LTldK319IHt7WzAtOV0rfX0gW1tGUEN0b3JdXQorLTsgQ0hFQ0s6IENvbnN0RnVuY3Rpb25Qb2lu dGVySU5URUwgW1tUUF1dIFtbRlBEdG9yOlswLTldK11dIFtbTmFtZUR0b3JdXQorKzsgQ0hFQ0s6 IENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgW1tUUF1dIFtbRlBEdG9yOlswLTldK11dIFtb TmFtZUR0b3JdXQorIDsgQ0hFQ0s6IENvbnN0YW50Q29tcG9zaXRlIHt7WzAtOV0rfX0ge3tbMC05 XSt9fSB7e1swLTldK319IFtbRlBEdG9yXV0KKyAKKyA7IENIRUNLOiA1IEZ1bmN0aW9uIFtbVEZd XSBbW05hbWVDdG9yXV0gMAorZGlmZiAtLWdpdCBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVM X2Z1bmN0aW9uX3BvaW50ZXJzL25vbi11bmlmb3JtLWZ1bmN0aW9uLXBvaW50ZXIubGwgYi90ZXN0 L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9ub24tdW5pZm9ybS1mdW5j dGlvbi1wb2ludGVyLmxsCitpbmRleCA5NmQwZDk2MWMuLmZkN2FmYzBkZCAxMDA2NDQKKy0tLSBh L3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL25vbi11bmlmb3Jt LWZ1bmN0aW9uLXBvaW50ZXIubGwKKysrKyBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1 bmN0aW9uX3BvaW50ZXJzL25vbi11bmlmb3JtLWZ1bmN0aW9uLXBvaW50ZXIubGwKK0BAIC0zNCw4 ICszNCw4IEBACisgOyBDSEVDSy1TUElSVjogVHlwZUZ1bmN0aW9uIFtbRk9PX1RZUEVfSUQ6WzAt OV0rXV0gW1tUWVBFX0lOVDMyX0lEXV0gW1tUWVBFX0lOVDMyX0lEXV0KKyA7IENIRUNLLVNQSVJW OiBUeXBlUG9pbnRlciBbW0ZPT19QVFJfVFlQRV9JRDpbMC05XStdXSB7e1swLTldK319IFtbRk9P X1RZUEVfSURdXQorIDsgQ0hFQ0stU1BJUlY6IFR5cGVQb2ludGVyIFtbRk9PX1BUUl9BTExPQ0Ff VFlQRV9JRDpbMC05XStdXSA3IFtbRk9PX1BUUl9UWVBFX0lEXV0KKy07IENIRUNLLVNQSVJWOiBD b25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbRk9PX1BUUl9UWVBFX0lEXV0gW1tGT09fUFRSX0lE OlswLTldK11dIFtbRk9PX0lEOlswLTldK11dCistOyBDSEVDSy1TUElSVjogQ29uc3RGdW5jdGlv blBvaW50ZXJJTlRFTCBbW0ZPT19QVFJfVFlQRV9JRF1dIFtbQkFSX1BUUl9JRDpbMC05XStdXSBb W0JBUl9JRDpbMC05XStdXQorKzsgQ0hFQ0stU1BJUlY6IENvbnN0YW50RnVuY3Rpb25Qb2ludGVy SU5URUwgW1tGT09fUFRSX1RZUEVfSURdXSBbW0ZPT19QVFJfSUQ6WzAtOV0rXV0gW1tGT09fSUQ6 WzAtOV0rXV0KKys7IENIRUNLLVNQSVJWOiBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtb Rk9PX1BUUl9UWVBFX0lEXV0gW1tCQVJfUFRSX0lEOlswLTldK11dIFtbQkFSX0lEOlswLTldK11d CisgOworIDsgQ0hFQ0stU1BJUlY6IEZ1bmN0aW9uIHt7WzAtOV0rfX0gW1tGT09fSURdXSB7e1sw LTldK319IFtbRk9PX1RZUEVfSURdXQorIDsgQ0hFQ0stU1BJUlY6IEZ1bmN0aW9uIHt7WzAtOV0r fX0gW1tCQVJfSURdXSB7e1swLTldK319IFtbRk9PX1RZUEVfSURdXQorZGlmZiAtLWdpdCBhL3Rl c3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3NlbGVjdC5sbCBiL3Rl c3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3NlbGVjdC5sbAoraW5k ZXggNTk5MDRmMWYyLi4yMzc1YWEzZDggMTAwNjQ0CistLS0gYS90ZXN0L3RyYW5zY29kaW5nL1NQ Vl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9zZWxlY3QubGwKKysrKyBiL3Rlc3QvdHJhbnNjb2Rp bmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3NlbGVjdC5sbAorQEAgLTEzLDggKzEzLDgg QEAKKyA7IENIRUNLLVNQSVJWOiBUeXBlRnVuY3Rpb24gW1sjRlVOQ19UWVBFOl1dIFtbI0lOVDMy XV0gW1sjSU5UMzJdXQorIDsgQ0hFQ0stU1BJUlY6IFR5cGVQb2ludGVyIFtbI0ZVTkNfUFRSX1RZ UEU6XV0gW1sjXV0gW1sjRlVOQ19UWVBFXV0KKyA7IENIRUNLLVNQSVJWOiBUeXBlUG9pbnRlciBb WyNGVU5DX1BUUl9BTExPQ0FfVFlQRTpdXSBbWyNdXSBbWyNGVU5DX1BUUl9UWVBFXV0KKy07IENI RUNLLVNQSVJWLURBRzogQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCBbWyNGVU5DX1BUUl9UWVBF XV0gW1sjQkFSUFRSOl1dIFtbI0JBUl1dCistOyBDSEVDSy1TUElSVi1EQUc6IENvbnN0RnVuY3Rp b25Qb2ludGVySU5URUwgW1sjRlVOQ19QVFJfVFlQRV1dIFtbI0JBWlBUUjpdXSBbWyNCQVpdXQor KzsgQ0hFQ0stU1BJUlYtREFHOiBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbI0ZVTkNf UFRSX1RZUEVdXSBbWyNCQVJQVFI6XV0gW1sjQkFSXV0KKys7IENIRUNLLVNQSVJWLURBRzogQ29u c3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbWyNGVU5DX1BUUl9UWVBFXV0gW1sjQkFaUFRSOl1d IFtbI0JBWl1dCisgOyBDSEVDSy1TUElSVjogRnVuY3Rpb24gW1sjXV0gW1sjS0VSTkVMX0lEXV0K KyA7IENIRUNLLVNQSVJWOiBWYXJpYWJsZSBbWyNGVU5DX1BUUl9BTExPQ0FfVFlQRV1dIFtbI0ZQ VFI6XV0KKyA7IENIRUNLLVNQSVJWOiBTZWxlY3QgW1sjRlVOQ19QVFJfVFlQRV1dIFtbI1NFTEVD VDpdXSBbWyNdXSBbWyNCQVJQVFJdXSBbWyNCQVpQVFJdXQorZGlmZiAtLWdpdCBhL3Rlc3QvdHJh bnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3ZlY3Rvcl9lbGVtLmxsIGIvdGVz dC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvdmVjdG9yX2VsZW0ubGwK K2luZGV4IGQ5ODJhMDk3Yi4uYWI4MzJmOWQ1IDEwMDY0NAorLS0tIGEvdGVzdC90cmFuc2NvZGlu Zy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvdmVjdG9yX2VsZW0ubGwKKysrKyBiL3Rlc3Qv dHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3ZlY3Rvcl9lbGVtLmxsCitA QCAtOSw4ICs5LDggQEAKKyA7IENIRUNLLVNQSVJWOiA0IFR5cGVQb2ludGVyIFtbVHlwZVB0cjpb MC05XStdXSB7e1swLTldK319IFtbVHlwZUZ1bmNdXQorIDsgQ0hFQ0stU1BJUlY6IDQgVHlwZVZl Y3RvciBbW1R5cGVWZWM6WzAtOV0rXV0gW1tUeXBlUHRyXV0gW1tUeXBlSW50MzJdXQorIDsgQ0hF Q0stU1BJUlYtREFHOiAzIFVuZGVmIFtbVHlwZVZlY11dIFtbVHlwZVVuZGVmOlswLTldK11dCist OyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCBbW1R5cGVQdHJd XSBbW0YxUHRyOlswLTldK11dIFtbRjFdXQorLTsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0RnVu Y3Rpb25Qb2ludGVySU5URUwgW1tUeXBlUHRyXV0gW1tGMlB0cjpbMC05XStdXSBbW0YyXV0KKys7 IENIRUNLLVNQSVJWLURBRzogNCBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbVHlwZVB0 cl1dIFtbRjFQdHI6WzAtOV0rXV0gW1tGMV1dCisrOyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3Rh bnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbW1R5cGVQdHJdXSBbW0YyUHRyOlswLTldK11dIFtbRjJd XQorIAorIDsgQ0hFQ0stU1BJUlY6IDYgQ29tcG9zaXRlSW5zZXJ0IFtbVHlwZVZlY11dIFtbTmV3 VmVjMDpbMC05XStdXSBbW0YxUHRyXV0gW1tUeXBlVW5kZWZdXSAwCisgOyBDSEVDSy1TUElSVjog NiBDb21wb3NpdGVJbnNlcnQgW1tUeXBlVmVjXV0gW1tOZXdWZWMxOlswLTldK11dIFtbRjJQdHJd XSBbW05ld1ZlYzBdXSAxCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRv ci90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlCmluZGV4 IDI1MDRjYWJlZDM2Ny4uNzQ3OGU5OTc4YmMyIDEwMDY0NAotLS0gYS9zcmNwa2dzL1NQSVJWLUxM Vk0tVHJhbnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRv ci90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnU1BJUlYt TExWTS1UcmFuc2xhdG9yJwogcGtnbmFtZT1TUElSVi1MTFZNLVRyYW5zbGF0b3IKLXZlcnNpb249 MTIuMC4wCit2ZXJzaW9uPTEzLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIG1h a2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKLWNvbmZpZ3VyZV9hcmdzPSItV25vLWRldiAtRExM Vk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTgotIC1ETExWTV9TUElS Vl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJTPU9OIgorY29uZmlndXJlX2Fy Z3M9Ii1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UKKyAt RENNQUtFX1BPU0lUSU9OX0lOREVQRU5ERU5UX0NPREU9T04gLURDTUFLRV9TS0lQX1JQQVRIPU9O IC1ETExWTV9JTkNMVURFX1RFU1RTPU9GRgorIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9T04gLURM TFZNX0VYVEVSTkFMX0xJVD0vdXNyL2Jpbi9saXQgLVduby1kZXYgLURMTFZNX0VYVEVSTkFMX1NQ SVJWX0hFQURFUlNfU09VUkNFX0RJUj0vdXNyL2luY2x1ZGUvc3BpcnYvICIKIGhvc3RtYWtlZGVw ZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgbGx2bSIKLW1ha2VkZXBlbmRzPSJsbHZtIgor bWFrZWRlcGVuZHM9Imxsdm0gU1BJUlYtSGVhZGVycyIKIHNob3J0X2Rlc2M9IkFQSSBhbmQgY29t bWFuZHMgZm9yIHByb2Nlc3NpbmcgU1BJUi1WIG1vZHVsZXMiCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTkNTQSIKIGhvbWVwYWdlPSJodHRw czovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUxMVk0tVHJhbnNsYXRvciIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC8ke3BrZ25hbWV9L2FyY2hpdmUv cmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTZlNGZhZDA0MjAzZjI1ZmNk ZTRjMzA4YzUzZTlmNTliZDA1YTM5MDk3ODk5MmRiMzIxMmQ0YjYzYWZmNjIxMDgKK2NoZWNrc3Vt PWI0MTZjMDY1MjVjODcyNGJlNjI4MzI3NTY1OTU2YzQxODc1NWZiYjQ3MWI0ZmUyM2QwNDBjYTU2 ZTFhNzkwNjEKIG1ha2VfY2hlY2s9bm8KIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSAyZGUxYjIw NWU3MzU4MzBjZjU0MzgwYmMwN2IyMzYyNTg1NTQ1NThhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIx QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAzMSBNYXIgMjAyMiAxOTo1NDo0OSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMzAvMzBdIGdoZGw6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2do ZGwvcGF0Y2hlcy9sbHZtMTMucGF0Y2ggfCAyMSArKysrKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvZ2hkbC90ZW1wbGF0ZSAgICAgICAgICAgICB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwg MjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2doZGwvcGF0Y2hlcy9sbHZtMTMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2doZGwv cGF0Y2hlcy9sbHZtMTMucGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZTU0OTkwYzBkYTIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTMucGF0Y2gKQEAgLTAs MCArMSwyMSBAQAorRnJvbSBlNDljYjdiOTE5NDZiYmU4NjZlNjg0YzQ3Y2NiNzAzYTgzZjc4ZGVj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVHJpc3RhbiBHaW5nb2xkIDx0Z2luZ29s ZEBmcmVlLmZyPgorRGF0ZTogRnJpLCAxNSBPY3QgMjAyMSAwNzo0MjozOCArMDIwMAorU3ViamVj dDogW1BBVENIXSBjb25maWd1cmU6IGJsaW5kbHkgYWxsb3cgbGx2bSAxMworCistLS0KKyBjb25m aWd1cmUgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdp dCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQoraW5kZXggZDg3MGVhMjFhMy4uN2FmNGU5YWIwNiAx MDA3NTUKKy0tLSBhL2NvbmZpZ3VyZQorKysrIGIvY29uZmlndXJlCitAQCAtMjgwLDYgKzI4MCw3 IEBAIGlmIHRlc3QgJGJhY2tlbmQgPSBsbHZtOyB0aGVuCisgICAgICAgIGNoZWNrX3ZlcnNpb24g MTEuMCAkbGx2bV92ZXJzaW9uIHx8CisgICAgICAgIGNoZWNrX3ZlcnNpb24gMTEuMSAkbGx2bV92 ZXJzaW9uIHx8CisgICAgICAgIGNoZWNrX3ZlcnNpb24gMTIuMCAkbGx2bV92ZXJzaW9uIHx8Cisr ICAgICAgIGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92ZXJzaW9uIHx8CisgICAgICAgIGZhbHNl OyB0aGVuCisgICAgIGVjaG8gIkRlYnVnZ2luZyBpcyBlbmFibGVkIHdpdGggbGx2bSAkbGx2bV92 ZXJzaW9uIgorICAgZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3RlbXBsYXRlIGIvc3Jj cGtncy9naGRsL3RlbXBsYXRlCmluZGV4IGU3NTZkOGMzY2Q4Ny4uYTgzZDk5ZjRiZjVkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2doZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9naGRsL3RlbXBsYXRl CkBAIC03LDcgKzcsNyBAQAogcGtnbmFtZT1naGRsCiByZXZlcnRzPSIyMDE4MTEyOV8xIgogdmVy c2lvbj0xLjAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmlndXJl CiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzciAtLXNyY2Rpcj0uLiAtLWluY2Rpcj1saWIv Z2hkbC9pbmNsdWRlIgogbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwiCkBAIC01MSw3ICs1MSw3IEBA IGZpCiAKIGlmIFsgIiRidWlsZF9vcHRpb25fbGx2bSIgXTsgdGhlbgogCXN1YnBhY2thZ2VzKz0i IGdoZGwtbGx2bSIKLQltYWtlZGVwZW5kcys9IiBsbHZtMTIiCisJbWFrZWRlcGVuZHMrPSIgbGx2 bSIKIGZpCiAKIGRvX2NvbmZpZ3VyZSgpIHsK --===============8226511426121621817==--