From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 3165 invoked from network); 28 Feb 2022 21:56:57 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 28 Feb 2022 21:56:57 -0000 Content-Type: multipart/mixed; boundary="===============3882514330260512520==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_Llvm13?= To: ml@inbox.vuxu.org From: motorto Reply-to: ml@inbox.vuxu.org Message-ID: Date: Mon, 28 Feb 2022 22:56:56 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============3882514330260512520== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IG1vdG9ydG8gYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL21vdG9ydG8v dm9pZC1wYWNrYWdlcyBsbHZtMTMKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9wdWxsLzM1ODk1CgpMbHZtMTMKVGhpcyBhZGRzIExMVk0gMTMgYW5kIHVwZGF0ZXMg ZnJvbSBMTFZNIDEyLg0KDQpXb3JrLWluLXByb2dyZXNzDQoNClRoZSBmb2xsb3dpbmcgcGFja2Fn ZXMgd2FzIHJlbW92ZWQ6DQogKiBiZWlnbmV0IC0tIHVwc3RyZWFtIGlzIGRlYWQNCg0KVGhlIGZv bGxvd2luZyBwYWNrYWdlcyB3ZXJlIHVwZGF0ZWQgb3IgcGF0Y2hlZDoNCiAqIGlzcGMNCiAqIHF0 Y3JlYXRvcg0KICogemlnDQoNClJlYnVpbHQgcGFja2FnZXM6DQoNCioganVDaSsrIA0KKiBrZGV2 ZWxvcCANCiogY29kZWxpdGUgDQoqICBjaHJvbWl1bQ0KKiBtZXNhIA0KKiBpbmNsdWRlLXdoYXQt eW91LXVzZSANCiogY2NscyANCiogY2xhenkgDQoqIGJwZnRyYWNlIA0KKiBxdDUgDQoqIHJ0YWdz IA0KKiBzaGlib2tlbjIgDQoqIGdub21lLWJ1aWxkZXINCiogYmNjDQoNCihJIGFtIHByb2JhYmx5 IG1pc3Npbmcgc29tZSBwYWNrYWdlcykNCg0KDQpUaGFua3MgQERCTG91aXMgZm9yIHlvdXIgaGFy ZCB3b3JrISANCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM1ODk1LnBhdGNoIGlzIGF0dGFjaGVk --===============3882514330260512520== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm13-35895.patch" RnJvbSBkYjhiZGQ1MDFlYTZlYTA3ZDVlZmM4Y2EyY2MyZjFjMDJhN2NlNjhiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9u aT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAy MDIxIDE2OjIxOjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8yMV0gTmV3IHBhY2thZ2U6IGxs 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 IGQzNTk0NDIyODI4Ny4uMmNhZWE0MTczYjUyIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3MCwxMSArOTcwLDEyIEBAIGxpYnVjaGFyZGV0LnNvLjAg dWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZp ZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIg Y29uZnVzZS0zLjIuMV8xCi1saWJsbGRiLnNvLjEyIGxsZGItMTIuMC4wXzEKLWxpYmNsYW5nLnNv LjEyIGxpYmNsYW5nLTEyLjAuMF8xCi1saWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmctY3BwLTEy LjAuMF8xCitsaWJsbGRiLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNs YW5nLTEzLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTMgbGliY2xhbmctY3BwLTEzLjAuMF8xCiBs aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTIt MTIuMC4wXzEKK2xpYkxMVk0tMTMuc28gbGlibGx2bTEzLTEzLjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpAQCAtNDA5OCwzICs0MDk5LDEyIEBAIGxpYmttYWls Y29uZmlybWJlZm9yZWRlbGV0aW5nLnNvLjUga2RlcGltLWFkZG9ucy0yMS4wOC4zXzEKIGxpYmth ZGRyZXNzYm9va3ByaXZhdGUuc28uNSBrYWRkcmVzc2Jvb2stMjEuMDguM18xCiBsaWJjb2RlYzIu c28uMS4wIGNvZGVjMi0xLjAuMV8xCiBsaWJ4ODZlbXUuc28uMyBsaWJ4ODZlbXUtMy40XzEKK2xp Ym9tcC5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwuYW1kZ3B1LnNvIGxpYm9t cC0xMy4wLjBfMQorbGlib21wdGFyZ2V0LnJ0bC5jdWRhLnNvIGxpYm9tcC0xMy4wLjBfMQorbGli b21wdGFyZ2V0LnJ0bC54ODZfNjQuc28gbGlib21wLTEzLjAuMF8xCitsaWJhcmNoZXIuc28gbGli b21wLTEzLjAuMF8xCitsaWJvbXB0YXJnZXQuc28gbGlib21wLTEzLjAuMF8xCitsaWJsbGRiSW50 ZWxGZWF0dXJlcy5zby4xMyBsbGRiLTEzLjAuMF8xCitsaWJMVE8uc28uMTMgbGx2bTEzLTEzLjAu MF8xCitsaWJSZW1hcmtzLnNvLjEzIGxsdm0xMy0xMy4wLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jbGFuZyBiL3NyY3BrZ3MvY2xhbmcKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUg MTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmcKKysrIGIvc3JjcGtncy9jbGFuZwpAQCAtMSArMSBA QAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy1hbmFseXplciBiL3Ny Y3BrZ3MvY2xhbmctYW5hbHl6ZXIKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIw MDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKKysrIGIvc3JjcGtncy9jbGFuZy1hbmFs eXplcgpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2 bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFu Zy10b29scy1leHRyYSBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKaW5kZXggY2Q2MGZkN2E5 ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEK KysrIGIvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZyBiL3NyY3BrZ3MvbGliY2xhbmcKaW5kZXgg Y2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY2xhbmcK KysrIGIvc3JjcGtncy9saWJjbGFuZwpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saWJjbGFuZy1jcHAgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcAppbmRleCBj ZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjbGFuZy1j cHAKKysrIGIvc3JjcGtncy9saWJjbGFuZy1jcHAKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4IGIvc3JjcGtncy9saWJjeHgKaW5kZXggY2Q2MGZk N2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4CisrKyBiL3Ny Y3BrZ3MvbGliY3h4CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYmN4eC1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4LWRldmVsCmluZGV4IGNkNjBmZDdhOTgx Yi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmN4eC1kZXZlbAorKysgYi9z cmNwa2dzL2xpYmN4eC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saWJjeHhhYmkgYi9zcmNwa2dzL2xpYmN4eGFiaQppbmRleCBjZDYwZmQ3YTk4 MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHhhYmkKKysrIGIvc3Jj cGtncy9saWJjeHhhYmkKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGliY3h4YWJpLWRldmVsIGIvc3JjcGtncy9saWJjeHhhYmktZGV2ZWwKaW5kZXggY2Q2 MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4YWJpLWRl dmVsCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmxsdm0xMyBiL3NyY3BrZ3MvbGlibGx2bTEzCm5l dyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uZDYzNjZkN2QzYjk1Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJsbHZtMTMKQEAgLTAsMCArMSBAQAorbGx2bTEzClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJvbXAgYi9z cmNwa2dzL2xpYm9tcAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0t IGEvc3JjcGtncy9saWJvbXAKKysrIGIvc3JjcGtncy9saWJvbXAKQEAgLTEgKzEgQEAKLWxsdm0x MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlib21wLWRldmVsIGIvc3JjcGtncy9saWJv bXAtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGlib21wLWRldmVsCisrKyBiL3NyY3BrZ3MvbGlib21wLWRldmVsCkBAIC0xICsxIEBA Ci1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZCBiL3NyY3BrZ3MvbGxkCmlu ZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsZAor KysgYi9zcmNwa2dzL2xsZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbGQtZGV2ZWwgYi9zcmNwa2dzL2xsZC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIu LmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGQtZGV2ZWwKKysrIGIvc3JjcGtn cy9sbGQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkYiBiL3NyY3BrZ3MvbGxkYgppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiCisrKyBiL3NyY3BrZ3MvbGxkYgpAQCAtMSArMSBAQAot bGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGRiLWRldmVsIGIvc3JjcGtncy9s bGRiLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9z cmNwa2dzL2xsZGItZGV2ZWwKKysrIGIvc3JjcGtncy9sbGRiLWRldmVsCkBAIC0xICsxIEBACi1s bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kIGIvc3JjcGtn cy9sbHZtLWxpYnVud2luZAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAK LS0tIGEvc3JjcGtncy9sbHZtLWxpYnVud2luZAorKysgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5k CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0tbGli dW53aW5kLWRldmVsIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbAppbmRleCBjZDYwZmQ3 YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC1k ZXZlbAorKysgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9maWxlcy9sbHZtLUNvbmZpZy1s bHZtLWNvbmZpZy5oIGIvc3JjcGtncy9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25m aWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJmYTA4YzliZTY5 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL2ZpbGVzL2xsdm0tQ29uZmlnLWxs dm0tY29uZmlnLmgKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgor CisjaWYgX19XT1JEU0laRSA9PSAzMgorI2luY2x1ZGUgImxsdm0tY29uZmlnLTMyLmgiCisjZWxp ZiBfX1dPUkRTSVpFID09IDY0CisjaW5jbHVkZSAibGx2bS1jb25maWctNjQuaCIKKyNlbHNlCisj ZXJyb3IgIlVua25vd24gd29yZCBzaXplIgorI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVz aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTRlYWE3 NzgzZTdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0w MDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorRnJv bSAzNTI5NzQxNjlmMGQyYjVkYTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgor RGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjE0OjU3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMi83 XSBmaXggdW53aW5kIGNoYWluIGluY2x1c2lvbgorCistLS0KKyBsaWIvSGVhZGVycy91bndpbmQu aCB8IDkgKysrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIvbGliL0hlYWRl cnMvdW53aW5kLmgKK2luZGV4IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0CistLS0gYS9jbGFuZy9s aWIvSGVhZGVycy91bndpbmQuaAorKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKK0BA IC05LDkgKzksNiBAQAorIAorIC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3Mi IGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCisgCistI2lmbmRlZiBfX0NMQU5HX1VOV0lO RF9ICistI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICistCisgI2lmIGRlZmluZWQoX19BUFBMRV9f KSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikKKyAvKiBEYXJ3aW4gKGZyb20gMTEu eCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKKyAgKiB1c2Ug aXQuIGxpYnVud2luZCB3cmFwcyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAjaWZkZWYgX0dO VV9TT1VSQ0UsCitAQCAtMzksNiArMzYsOSBAQAorICMgZW5kaWYKKyAjZWxzZQorIAorKyNpZm5k ZWYgX19DTEFOR19VTldJTkRfSAorKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAorKworICNpbmNs dWRlIDxzdGRpbnQuaD4KKyAKKyAjaWZkZWYgX19jcGx1c3BsdXMKK0BAIC0zMjIsNiArMzIyLDcg QEAgX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250 ZXh0ICopOworIH0KKyAjZW5kaWYKKyAKKysjZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwor KworICNlbmRpZgorIAorLSNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCistLSAKKzIuNS4x CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wt dHJpcGxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI1 Njg4ZDQwZGJjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xh bmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxMTAgQEAKKy0tLSBhL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvR251LmNwcAorQEAgLTIwODYsNyArMjA4Niw4IEBAIHZvaWQgR2VuZXJpY19H Q0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7ImFybS1saW51eC1nbnVl YWJpaGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXJlZGhhdC1saW51eC1nbnVlYWJpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGlu dXgtZ251ZWFiaSJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVlYWJpaGYifTsKKyAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsiL2xpYiJ9OworICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJhcm1lYi1saW51eC1nbnVl YWJpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJt ZWItbGludXgtYW5kcm9pZGVhYmkifTsKK0BAIC0yMTUzLDggKzIxNTQsNyBAQCB2b2lkIEdlbmVy aWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAor ICAgICAgICJwb3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhz cGUifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xp YjMyIiwgIi9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNb XSA9IHsicG93ZXJwY2xlLWxpbnV4LWdudSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1t dXNsIn07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBv d2VycGNsZS11bmtub3duLWxpbnV4LWdudSJ9OworIAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IFBQQzY0VHJpcGxlc1tdID0geworQEAgLTIyMzUsNiArMjIzNSw4NyBAQCB2 b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1By ZWZpeGVzKAorICAgICByZXR1cm47CisgICB9CisgCisrICBpZiAoVGFyZ2V0VHJpcGxlLmlzTXVz bCgpKSB7CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0TXVzbFRyaXBsZXNb XSA9IHsiYWFyY2g2NC1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBBUk1IRk11c2xUcmlwbGVzW10gPSB7CisrICAgICAgICAiYXJtLWxpbnV4LW11c2xlYWJpaGYi LCAiYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBBUk1NdXNsVHJpcGxlc1tdID0geyJhcm0tbGludXgtbXVzbGVhYmkifTsKKysg ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nl82NE11c2xUcmlwbGVzW10gPSB7Ing4Nl82 NC1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZNdXNsVHJp cGxlc1tdID0geyJpNjg2LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IE1JUFNNdXNsVHJpcGxlc1tdID0geworKyAgICAgICAgIm1pcHMtbGludXgtbXVzbCIsICJt aXBzZWwtbGludXgtbXVzbCIsCisrICAgICAgICAibWlwc2VsLWxpbnV4LW11c2xoZiIsICJtaXBz LWxpbnV4LW11c2xoZiIKKysgICAgfTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQ Q011c2xUcmlwbGVzW10gPSB7InBvd2VycGMtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgUFBDTEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtbXVz bCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRNdXNsVHJpcGxlc1tdID0g eyJwb3dlcnBjNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg UFBDNjRMRU11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NGxlLWxpbnV4LW11c2wifTsKKysKKysg ICAgc3dpdGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7CisrICAgIGNhc2UgbGx2bTo6VHJp cGxlOjphYXJjaDY0OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJz KSwgZW5kKEFBcmNoNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oQUFyY2g2NE11c2xUcmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOworKyAgICAg IEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRM aWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2 NE11c2xUcmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YXJtOgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2lu KEFSTUxpYkRpcnMpLCBlbmQoQVJNTGliRGlycykpOworKyAgICAgIGlmIChUYXJnZXRUcmlwbGUu Z2V0RW52aXJvbm1lbnQoKSA9PSBsbHZtOjpUcmlwbGU6Ok11c2xFQUJJSEYpIHsKKysgICAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTUhGTXVzbFRyaXBsZXMpLCBlbmQoQVJNSEZN dXNsVHJpcGxlcykpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFw cGVuZChiZWdpbihBUk1NdXNsVHJpcGxlcyksIGVuZChBUk1NdXNsVHJpcGxlcykpOworKyAgICAg IH0KKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4Nl82NDoKKysgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRpcnMp KTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyks IGVuZChYODZfNjRNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJl Z2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODY6CisrICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRy aXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJz KSwgZW5kKFg4Nl82NExpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJpcGxlcykpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6bWlwczoKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihNSVBTTGliRGlycyksIGVuZChNSVBTTGliRGlycykpOworKyAgICAgIFRy aXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKE1JUFNNdXNsVHJpcGxlcyksIGVuZChNSVBTTXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzoKKysg ICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsK KysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQ UENNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0 TGliRGlycyksIGVuZChQUEM2NExpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwY2xlOgorKyAgICAgIExp YkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKKysg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQ Q0xFTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVuZChQUEM2NExFTXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0Ogor KyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGlycyksIGVuZChQUEM2NExpYkRp cnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVz KSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChi ZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVB bGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykp OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKKysgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGly cykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxl cyksIGVuZChQUEM2NExFTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgQmlhcmNo VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soVGFyZ2V0VHJpcGxlLnN0cigp KTsKKysgICAgaWYgKFRhcmdldFRyaXBsZS5zdHIoKSAhPSBCaWFyY2hUcmlwbGUuc3RyKCkpCisr ICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soQmlhcmNoVHJpcGxlLnN0cigpKTsK KysgICAgcmV0dXJuOworKyAgfQorKworICAgLy8gQW5kcm9pZCB0YXJnZXRzIHNob3VsZCBub3Qg dXNlIEdOVS9MaW51eCB0b29scyBvciBsaWJyYXJpZXMuCisgICBpZiAoVGFyZ2V0VHJpcGxlLmlz QW5kcm9pZCgpKSB7CisgICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0QW5kcm9p ZFRyaXBsZXNbXSA9IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmct MDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGFkNjQxMmQxZTZjCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rv b2xDaGFpbnMvTGludXguY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGlu dXguY3BwCitAQCAtNTA0LDEwICs1MDQsNiBAQCBzdGQ6OnN0cmluZyBMaW51eDo6Z2V0RHluYW1p Y0xpbmtlcihjb25zdCBBcmdMaXN0ICZBcmdzKSBjb25zdCB7CisgICAgIExvYWRlciA9ICJsZC5z by4xIjsKKyAgICAgYnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CistICAgIExp YkRpciA9ICJsaWI2NCI7CistICAgIExvYWRlciA9CistICAgICAgICAodG9vbHM6OnBwYzo6aGFz UFBDQWJpQXJnKEFyZ3MsICJlbGZ2MiIpKSA/ICJsZDY0LnNvLjIiIDogImxkNjQuc28uMSI7Cist ICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgIExpYkRpciA9 ICJsaWI2NCI7CisgICAgIExvYWRlciA9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjIxZmM4MDAzYzVmMQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKQEAg LTAsMCArMSw0OCBAQAorLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKKysrKyBi L2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCitAQCAtNDE1LDExICs0MTUsMTAgQEAgcHVi bGljOgorICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBGbG9hdDo6SUVFRWRvdWJs ZSgpOworICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6 cHBjNjRsZSkpIHsKKyAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2NDo2NC1uMzI6NjQiOwor LSAgICAgIEFCSSA9ICJlbGZ2MiI7CisgICAgIH0gZWxzZSB7CisgICAgICAgRGF0YUxheW91dCA9 ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjEiOworICAgICB9Cisr ICAgIEFCSSA9ICJlbGZ2MiI7CisgCisgICAgIGlmIChUcmlwbGUuaXNPU0ZyZWVCU0QoKSB8fCBU cmlwbGUuaXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsKKyAgICAgICBMb25nRG91 YmxlV2lkdGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKKy0tLSBhL2NsYW5nL2xpYi9Db2RlR2Vu L1RhcmdldEluZm8uY3BwCisrKysgYi9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAor QEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdlbkluZm8gJkNvZGVHZW5N b2R1bGU6OmdldFRhcmdldENvZGVHZW5JbmZvKCkgeworICAgICAgIHJldHVybiBTZXRDR0luZm8o bmV3IEFJWFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQqLyB0cnVlKSk7CisgCisg ICAgIGlmIChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7CistICAgICAgUFBDNjRfU1ZSNF9B QklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworLSAgICAg IGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQorLSAgICAgICAgS2luZCA9IFBQ QzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7CisrICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklL aW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAgIGlmIChnZXRUYXJn ZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEiKQorKyAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJ SW5mbzo6RUxGdjE7CisgICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENvZGVHZW5PcHRzLkZsb2F0 QUJJID09ICJzb2Z0IjsKKyAKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKAorLS0tIGEvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9U b29sQ2hhaW5zL0NsYW5nLmNwcAorQEAgLTE5MjAsMTQgKzE5MjAsNyBAQCB2b2lkIENsYW5nOjpB ZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCisgICBjb25zdCBsbHZtOjpUcmlw bGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKKyAgIGlmIChULmlzT1NCaW5Gb3Jt YXRFTEYoKSkgeworICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdldEFyY2goKSkgeworLSAg ICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKKy0gICAgICBpZiAoKFQuaXNPU0ZyZWVCU0Qo KSAmJiBULmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8CistICAgICAgICAgIFQuaXNPU09w ZW5CU0QoKSB8fCBULmlzTXVzbCgpKQorLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CistICAg ICAgZWxzZQorLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7CistICAgICAgYnJlYWs7CistICAg IH0KKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorICAgICBjYXNlIGxsdm06OlRyaXBs ZTo6cHBjNjRsZToKKyAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKyAgICAgICBicmVhazsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29u dGV4dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11 Y29udGV4dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg5 M2MwNTlkN2I4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9j b21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwLm9yaWcK KysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5j cHAKK0BAIC0xNzk5LDcgKzE3OTksNyBAQAorIAorIHN0YXRpYyBib29sIEFhcmNoNjRHZXRFU1Io dWNvbnRleHRfdCAqdWNvbnRleHQsIHU2NCAqZXNyKSB7CisgICBzdGF0aWMgY29uc3QgdTMyIGtF c3JNYWdpYyA9IDB4NDU1MzUyMDE7CistICB1OCAqYXV4ID0gdWNvbnRleHQtPnVjX21jb250ZXh0 Ll9fcmVzZXJ2ZWQ7CisrICB1OCAqYXV4ID0gcmVpbnRlcnByZXRfY2FzdDx1OCAqPih1Y29udGV4 dC0+dWNfbWNvbnRleHQuX19yZXNlcnZlZCk7CisgICB3aGlsZSAodHJ1ZSkgeworICAgICBfYWFy Y2g2NF9jdHggKmN0eCA9IChfYWFyY2g2NF9jdHggKilhdXg7CisgICAgIGlmIChjdHgtPnNpemUg PT0gMCkgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVy LXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9j b21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjM1ZjE2ZDI0ZjM0MAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKQEAgLTAsMCArMSwzNSBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21t b24vc2FuaXRpemVyX2xpbnV4LmNwcAorKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9j b21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAorQEAgLTc0LDYgKzc0LDEwIEBACisgI2luY2x1ZGUg PHN5cy91dHNuYW1lLmg+CisgI2VuZGlmCisgCisrI2lmIFNBTklUSVpFUl9MSU5VWCAmJiBkZWZp bmVkKF9fcG93ZXJwY19fKQorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisg I2lmIFNBTklUSVpFUl9MSU5VWCAmJiAhU0FOSVRJWkVSX0FORFJPSUQKKyAjaW5jbHVkZSA8c3lz L3BlcnNvbmFsaXR5Lmg+CisgI2VuZGlmCistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAorKysrIGIvY29tcGls ZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3Np eC5jcHAKK0BAIC05Miw3ICs5Miw3IEBACisgIyBpbmNsdWRlIDx1dGltZS5oPgorICMgaW5jbHVk ZSA8c3lzL3B0cmFjZS5oPgorICNpZiBkZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgU0FOSVRJWkVSX1JJU0NWNjQK KysgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQKKyAjICBpbmNs dWRlIDxhc20vcHRyYWNlLmg+CisgIyAgaWZkZWYgX19hcm1fXworIHR5cGVkZWYgc3RydWN0IHVz ZXJfZnByZWdzIGVsZl9mcHJlZ3NldF90OworLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXpl cl9jb21tb24vc2FuaXRpemVyX3N0b3B0aGV3b3JsZF9saW51eF9saWJjZGVwLmNwcAorKysrIGIv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3N0b3B0aGV3b3JsZF9s aW51eF9saWJjZGVwLmNwcAorQEAgLTMxLDcgKzMxLDcgQEAKKyAjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+IC8vIGZvciBwaWRfdAorICNpbmNsdWRlIDxzeXMvdWlvLmg+IC8vIGZvciBpb3ZlYworICNp bmNsdWRlIDxlbGYuaD4gLy8gZm9yIE5UX1BSU1RBVFVTCistI2lmIChkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NCkgJiYgIVNBTklUSVpFUl9BTkRST0lECisrI2lmIChk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJf UklTQ1Y2NCkgJiYgIVNBTklUSVpFUl9BTkRST0lECisgLy8gR0xJQkMgMi4yMCsgc3lzL3VzZXIg ZG9lcyBub3QgaW5jbHVkZSBhc20vcHRyYWNlLmgKKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4K KyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQt eHJheS1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1y dC14cmF5LXBwYzY0LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5kMGI2MWM4MGM4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaApAQCAtMCwwICsxLDYyIEBA CistLS0gYS9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKKysrKyBiL2Nv bXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYworQEAgLTEyLDcgKzEyLDEzIEBA CisgCisgI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPG11dGV4PgorKyNpZmRlZiBfX0dM SUJDX18KKyAjaW5jbHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgorKyNlbHNlCisrI2luY2x1ZGUg PGNjdHlwZT4KKysjaW5jbHVkZSA8Y3N0cmluZz4KKysjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjZW5k aWYKKyAKKyAjaW5jbHVkZSAieHJheV9kZWZzLmgiCisgCitAQCAtMjAsMTMgKzI2LDQ1IEBAIG5h bWVzcGFjZSBfX3hyYXkgeworIAorIEFMV0FZU19JTkxJTkUgdWludDY0X3QgcmVhZFRTQyh1aW50 OF90ICZDUFUpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CisgICBDUFUgPSAwOworKyNpZmRlZiBf X0dMSUJDX18KKyAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsKKysjZWxzZQorKyAgcmV0 dXJuIF9fYnVpbHRpbl9wcGNfZ2V0X3RpbWViYXNlKCk7CisrI2VuZGlmCisgfQorIAorIGlubGlu ZSB1aW50NjRfdCBnZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgeworICAg c3RhdGljIHN0ZDo6bXV0ZXggTTsKKyAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBHdWFy ZChNKTsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1cm4gX19wcGNfZ2V0X3RpbWViYXNlX2Zy ZXEoKTsKKysjZWxzZQorKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBpbXBsZW1lbnRhdGlvbj8g Ki8KKysgIHN0YXRpYyB1aW50NjRfdCBiYXNlOworKyAgaWYgKCFiYXNlKSB7CisrICAgIEZJTEUg KmYgPSBmb3BlbigiL3Byb2MvY3B1aW5mbyIsICJyYiIpOworKyAgICBpZiAoZikgeworKyAgICAg IHNzaXplX3QgbnI7CisrICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBiaWcgZW5vdWdoIHRvIGhv bGQgdGhlIGxpbmUgKi8KKysgICAgICBjaGFyIGJ1Zls1MTJdOworKyAgICAgIHdoaWxlIChmZ2V0 cyhidWYsIHNpemVvZihidWYpLCBmKSkgeworKyAgICAgICAgY2hhciAqcmV0ID0gc3Ryc3RyKGJ1 ZiwgInRpbWViYXNlIik7CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgICAgIHJldCArPSBzaXplb2YoInRpbWViYXNlIikgLSAxOwor KyAgICAgICAgcmV0ID0gc3RyY2hyKHJldCwgJzonKTsKKysgICAgICAgIGlmICghcmV0KSB7Cisr ICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgfQorKyAgICAgICAgYmFzZSA9IHN0cnRvdWwo cmV0ICsgMSwgbnVsbHB0ciwgMTApOworKyAgICAgICAgYnJlYWs7CisrICAgICAgfQorKyAgICAg IGZjbG9zZShmKTsKKysgICAgfQorKyAgfQorKyAgcmV0dXJuIGJhc2U7CisrI2VuZGlmCisgfQor IAorIGlubGluZSBib29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygpIFhSQVlfTkVWRVJfSU5T VFJVTUVOVCB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1tdXNs LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJiZDMxZmZjMmNiMQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKQEAgLTAs MCArMSwyNiBAQAorLS0tIGEvbGliY3h4L2luY2x1ZGUvbG9jYWxlCisrKysgYi9saWJjeHgvaW5j bHVkZS9sb2NhbGUKK0BAIC03NDIsNyArNzQyLDExIEBAIF9fbnVtX2dldF9zaWduZWRfaW50ZWdy YWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAorICAgICAgICAgdHlwZW5h bWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9 IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAgICAgICAgY2hhciAqX19wMjsKKysjaWYg ZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgICAgIGxvbmcg bG9uZyBfX2xsID0gc3RydG9sbChfX2EsICZfX3AyLCBfX2Jhc2UpOworKyNlbHNlCisgICAgICAg ICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGxfbChfX2EsICZfX3AyLCBfX2Jhc2UsIF9MSUJDUFBf R0VUX0NfTE9DQUxFKTsKKysjZW5kaWYKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJubzsKKyAgICAg ICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKKyAgICAgICAgICAgICBlcnJubyA9IF9fc2F2 ZV9lcnJubzsKK0BAIC03ODIsNyArNzg2LDExIEBAIF9fbnVtX2dldF91bnNpZ25lZF9pbnRlZ3Jh bChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCisgICAgICAgICB0eXBlbmFt ZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0g ZXJybm87CisgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBjaGFyICpfX3AyOworKyNpZiBk ZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbChfX2EsICZfX3AyLCBfX2Jhc2UpOworKyNlbHNl CisgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsX2woX19hLCAmX19w MiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAgICAgICB0eXBl bmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vy cm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCisgICAgICAg ICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YTkyZjgw MDRlMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorVGhpcyBlbnN1cmVzIGBpc19pZWM1NTlgIGlzIGRl ZmluZWQgY29ycmVjdGx5IHVuZGVyIGFsbCBsb25nIGRvdWJsZSBBQklzLAoraW5jbHVkaW5nIG11 c2wgYW5kIGl0cyA2NC1iaXQgbG9uZyBkb3VibGUuIEFsc28sIGBfX3BwY19fYCBvciBgX19wcGM2 NF9fYAoraXMgbm90IGRlZmluZWQgb24gZ2NjLgorCistLS0gYS9saWJjeHgvaW5jbHVkZS9saW1p dHMKKysrKyBiL2xpYmN4eC9pbmNsdWRlL2xpbWl0cworQEAgLTQyNiw4ICs0MjYsMTQgQEAgcHJv dGVjdGVkOgorICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiB0eXBlIHNpZ25hbGluZ19OYU4oKSBfTk9FWENFUFQge3JldHVybiBfX2J1aWx0aW5f bmFuc2woIiIpO30KKyAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQ UF9DT05TVEVYUFIgdHlwZSBkZW5vcm1fbWluKCkgX05PRVhDRVBUIHtyZXR1cm4gX19MREJMX0RF Tk9STV9NSU5fXzt9CisgCistI2lmIChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2 NF9fKSkKKysjaWYgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorKyNpZiAoX19MREJMX01BWF9FWFBfXyA+IF9fREJMX01BWF9FWFBfXykgfHwgKF9fTERCTF9N QU5UX0RJR19fID09IF9fREJMX01BTlRfRElHX18pCisrICAgIC8qIElFRUUgNzU0IHF1YWRydXBs ZSBvciBkb3VibGUgcHJlY2lzaW9uICovCisrICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBj b25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7CisrI2Vsc2UKKysgICAgLyogMTI4LWJpdCBJQk0g ZG91YmxlLWRvdWJsZSAqLworICAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9v bCBpc19pZWM1NTkgPSBmYWxzZTsKKysjZW5kaWYKKyAjZWxzZQorICAgICBzdGF0aWMgX0xJQkNQ UF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MDI5MmJlYjJmY2QKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBh dGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorKysrIGIv bGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNzY5LDYgKzc2OSw4IEBAIGZ1bmN0aW9uKGN4eF9s aW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMo JHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQorICAgZW5kaWYoKQorIAorKyNzc3AgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9uc2hhcmVkKQorKworICAgaWYg KE1JTkdXKQorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgIiR7 TUlOR1dfTElCUkFSSUVTfSIpCisgICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x My9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u M2ExNWY5ZGI4Yzk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9s aWJjeHhhYmktZGwucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorQWxzbyBsaW5rIHRvIC1sZGwgdG8g cHJldmVudCB1bmRlZmluZWQgcmVmZXJlbmNlcy4KKworLS0tIGEvbGliY3h4YWJpL3NyYy9DTWFr ZUxpc3RzLnR4dAorKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAorQEAgLTczLDYg KzczLDcgQEAKKyAgIGVuZGlmKCkKKyAKKyAgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNYWEFC SV9IQVNfQ19MSUIgYykKKysgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNYWEFCSV9IQVNfQ19M SUIgZGwpCisgZW5kaWYoKQorIAorIGlmIChMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVIpCist LS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAor QEAgLTc0NSw2ICs3NDUsMTAgQEAKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0 fSBQUklWQVRFIG0pCisgICBlbmRpZigpCisgCisrICBpZiAoTElCQ1hYX0hBU19DX0xJQikKKysg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGRsKQorKyAgZW5kaWYo KQorKworICAgaWYgKExJQkNYWF9IQVNfUlRfTElCKQorICAgICB0YXJnZXRfbGlua19saWJyYXJp ZXMoJHt0YXJnZXR9IFBSSVZBVEUgcnQpCisgICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNzRhYTc1NzZlY2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorVGhpcyBm aXhlcyBidWlsZCBhdCBsZWFzdCB3aXRoIGdjYzkgd2hpY2ggZG9lcyBub3QgZGVmaW5lIGBfX3Bw Y19fYC4KKworLS0tIGEvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKKysr KyBiL2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oCitAQCAtNDksNyArNDks NyBAQAorICMgIGRlZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxNjcKKyAjICBkZWZpbmUg X0xJQlVOV0lORF9DVVJTT1JfU0laRSAxNzkKKyAjICBkZWZpbmUgX0xJQlVOV0lORF9ISUdIRVNU X0RXQVJGX1JFR0lTVEVSIF9MSUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUl9QUEM2NAor LSMgZWxpZiBkZWZpbmVkKF9fcHBjX18pCisrIyBlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCisg IyAgZGVmaW5lIF9MSUJVTldJTkRfVEFSR0VUX1BQQyAxCisgIyAgZGVmaW5lIF9MSUJVTldJTkRf Q09OVEVYVF9TSVpFIDExNworICMgIGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDEyNAor LS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKKysrKyBiL2xpYnVu d2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzUmVzdG9yZS5TCitAQCAtMzkyLDcgKzM5Miw3IEBAIExu b3ZlYzoKKyAgIFBQQzY0X0xSKDMpCisgICBiY3RyCisgCistI2VsaWYgZGVmaW5lZChfX3BwY19f KQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCisgCisgREVGSU5FX0xJQlVOV0lORF9GVU5D VElPTihfWk45bGlidW53aW5kMTNSZWdpc3RlcnNfcHBjNmp1bXB0b0V2KQorIC8vCistLS0gYS9s aWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUworKysrIGIvbGlidW53aW5kL3NyYy9V bndpbmRSZWdpc3RlcnNTYXZlLlMKK0BAIC01NTQsNyArNTU0LDcgQEAgREVGSU5FX0xJQlVOV0lO RF9GVU5DVElPTihfX3Vud19nZXRjb250ZXh0KQorICAgYmxyCisgCisgCistI2VsaWYgZGVmaW5l ZChfX3BwY19fKQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCisgCisgLy8KKyAvLyBleHRl cm4gaW50IHVud19nZXRjb250ZXh0KHVud19jb250ZXh0X3QqIHRocmVhZF9zdGF0ZSkKKy0tLSBh L2xpYnVud2luZC9zcmMvY29uZmlnLmgKKysrKyBiL2xpYnVud2luZC9zcmMvY29uZmlnLmgKK0BA IC05NSwxMiArOTUsMTIgQEAKKyAjZGVmaW5lIF9MSUJVTldJTkRfQlVJTERfU0pMSl9BUElTCisg I2VuZGlmCisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAjZGVm aW5lIF9MSUJVTldJTkRfU1VQUE9SVF9GUkFNRV9BUElTCisgI2VuZGlmCisgCisgI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKy0gICAgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCAgICAgICAgXAorKyAgICBkZWZpbmVkKF9f cG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICghZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmluZWQoX19hcm1fXykp IHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKGRlZmluZWQoX19hcm02 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICBkZWZpbmVkKF9fbWlwc19fKQorLS0tIGEvbGlidW53aW5kL3NyYy9saWJ1bndp bmQuY3BwCisrKysgYi9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKK0BAIC00Miw3ICs0Miw3 IEBAIF9MSUJVTldJTkRfSElEREVOIGludCBfX3Vud19pbml0X2xvY2FsKHVud19jdXJzb3JfdCAq Y3Vyc29yLAorICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3g4Nl82NAorICNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c19wcGM2NAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw Y19fKQorICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYworICNlbGlmIGRlZmlu ZWQoX19hYXJjaDY0X18pCisgIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfYXJtNjQK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTMvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi42MDFjMGQxMzg1MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApAQCAtMCwwICsxLDMxIEBACistLS0g YS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgKKysrKyBiL2xsZGIv c291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAorQEAgLTEwLDIxICsxMCwxMiBA QAorIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFy Y2hpdGVjdHVyZXMuCisgCisgI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorIAorLSNpZmRlZiBfX0FORFJPSURfXworLSNpZiBkZWZpbmVkKF9fYXJtNjRf XykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKy10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dy ZWdfdDsKKy10eXBlZGVmIGVsZl9ncmVnX3QKKy0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0 cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07CistdHlwZWRlZiBzdHJ1 Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7CistI2lmbmRlZiBOVF9GUFJFR1NF VAorLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NF VAorLSNlbGlmIGRlZmluZWQoX19taXBzX18pCistI2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZp bmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbmRp ZgorLSNlbHNlIC8vIF9fQU5EUk9JRF9fCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVm aW5lZChfX3Bvd2VycGNfXykKKysjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9yZWdzCisrI2luY2x1 ZGUgPHN5cy9wcm9jZnMuaD4KKysjdW5kZWYgcHRfcmVncworKyNlbHNlCisgI2luY2x1ZGUgPHN5 cy9wcm9jZnMuaD4KKy0jZW5kaWYgLy8gX19BTkRST0lEX18KKysjZW5kaWYKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmYyYTNmOGQ2MjgxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9t IGZhY2EzZmJkMTVkMGMzMTA4NDkzYzNjNTRjZDkzMTM4ZTA0OWFjNDMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+CitE YXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MDM6MDIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNd IG11c2wKKworLS0tCisgaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgg fCA5ICsrKysrKysrKworIGxpYi9TdXBwb3J0L0R5bmFtaWNMaWJyYXJ5LmNwcCAgICAgICAgICAg IHwgMiArLQorIGxpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMgICAgICAgICAgICAgIHwgNiAr KystLS0KKyB1dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYyAgICB8IDEgKwor IDUgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIGIvaW5j bHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKK2luZGV4IDM0YThhMWUzLi4x MjE0ZWNlNSAxMDA2NDQKKy0tLSBhL2xsdm0vaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExp YnJhcnlJbmZvLmgKKysrKyBiL2xsdm0vaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJh cnlJbmZvLmgKK0BAIC0xOCw2ICsxOCwxNSBAQAorICNpbmNsdWRlICJsbHZtL0lSL1Bhc3NNYW5h Z2VyLmgiCisgI2luY2x1ZGUgImxsdm0vUGFzcy5oIgorIAorKyN1bmRlZiBmb3BlbjY0CisrI3Vu ZGVmIGZzZWVrbzY0CisrI3VuZGVmIGZzdGF0NjQKKysjdW5kZWYgZnN0YXR2ZnM2NAorKyN1bmRl ZiBmdGVsbG82NAorKyN1bmRlZiBsc3RhdDY0CisrI3VuZGVmIHN0YXQ2NAorKyN1bmRlZiB0bXBm aWxlNjQKKysKKyBuYW1lc3BhY2UgbGx2bSB7CisgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNz IEFycmF5UmVmOworIGNsYXNzIFRyaXBsZTsKK2RpZmYgLS1naXQgYS9saWIvU3VwcG9ydC9Vbml4 L0R5bmFtaWNMaWJyYXJ5LmluYyBiL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5j CitpbmRleCBhMmEzNzk5Ni4uMmY4NmM0NzAgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9TdXBwb3J0 L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCisrKysgYi9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvRHlu YW1pY0xpYnJhcnkuaW5jCitAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyB2b2lkICpEb1NlYXJj aChjb25zdCBjaGFyKiBTeW1ib2xOYW1lKSB7CisgCisgLy8gVGhpcyBtYWNybyByZXR1cm5zIHRo ZSBhZGRyZXNzIG9mIGEgd2VsbC1rbm93biwgZXhwbGljaXQgc3ltYm9sCisgI2RlZmluZSBFWFBM SUNJVF9TWU1CT0woU1lNKSBcCistICAgaWYgKCFzdHJjbXAoU3ltYm9sTmFtZSwgI1NZTSkpIHJl dHVybiAmU1lNCisrICAgaWYgKCFzdHJjbXAoU3ltYm9sTmFtZSwgI1NZTSkpIHJldHVybiAodm9p ZCAqKSZTWU0KKyAKKyAvLyBVbmRlciBnbGliYyB3ZSBoYXZlIGEgd2VpcmQgc2l0dWF0aW9uLiBU aGUgc3RkZXJyL291dC9pbiBzeW1ib2xzIGFyZSBib3RoCisgLy8gbWFjcm9zIGFuZCBnbG9iYWwg dmFyaWFibGVzIGJlY2F1c2Ugb2Ygc3RhbmRhcmRzIHJlcXVpcmVtZW50cy4gU28sIHdlCitkaWZm IC0tZ2l0IGEvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MgYi91dGlscy91 bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYworaW5kZXggZDg4MmFiMmUuLmYxZmIxMmQw IDEwMDY0NAorLS0tIGEvbGx2bS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5j YworKysrIGIvbGx2bS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYworQEAg LTEyOCw2ICsxMjgsNyBAQAorIAorICNpZiBHVEVTVF9DQU5fU1RSRUFNX1JFU1VMVFNfCisgIyBp bmNsdWRlIDxhcnBhL2luZXQuaD4gIC8vIE5PTElOVAorKyMgaW5jbHVkZSA8c3lzL3NvY2tldC5o PiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxuZXRkYi5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRl IDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPiAgLy8g Tk9MSU5UCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAyLW11c2wt cHBjNjQtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAyLW11c2wt cHBjNjQtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wMDcxZDk2NGJkMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorVGhpcyBw YXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBwYzY0IHVuY29uZGl0aW9uYWxseSB1bmxlc3Mg b3ZlcnJpZGRlbi4gV2UKK25lZWQgdGhpcyBiZWNhdXNlIHVubGlrZSBtb3N0IGRpc3Ryb3Mgd2Ug dXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBtdXNsCitvbiBiaWcgZW5kaWFuIHBwYzY0Lgor CitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwIGIv bGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCitpbmRleCAwNjM0ODMzZS4u YjdjYmMyZTcgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRN YWNoaW5lLmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGlu ZS5jcHAKK0BAIC0yMjIsOSArMjIyLDggQEAgc3RhdGljIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ0FC SSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBsZSAmVFQsCisgCisgICBzd2l0Y2ggKFRULmdl dEFyY2goKSkgeworICAgY2FzZSBUcmlwbGU6OnBwYzY0bGU6CistICAgIHJldHVybiBQUENUYXJn ZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAgY2FzZSBUcmlwbGU6OnBwYzY0OgorLSAgICBy ZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MTsKKysgICAgcmV0dXJuIFBQQ1Rh cmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7CisgICBkZWZhdWx0OgorICAgICByZXR1cm4gUFBD VGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dOOworICAgfQorZGlmZiAtLWdpdCBhL3Rlc3Qv Q29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwgYi90ZXN0L0NvZGVHZW4vUG93ZXJQQy9w cGM2NC1lbGYtYWJpLmxsCitpbmRleCA4YjFjZjZiNS4uMjk2YTJhZmEgMTAwNjQ0CistLS0gYS9s bHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKKysrKyBiL2xsdm0vdGVz dC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAorQEAgLTEsNCArMSw1IEBACistOyBS VU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24t bGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQor KzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtu b3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxG djIKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQt dW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVD Sy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2Vy cGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MSA8ICVzIHwgRmlsZUNoZWNr ICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGlu ZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1hYmkg ZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBS VU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0bGUtdW5rbm93 bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYy CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVw bHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNWQxNTk3NDM3 NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAzLXBw Yy1zZWN1cmVwbHQucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMv UFBDU3VidGFyZ2V0LmNwcAorQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFBQQ1N1YnRhcmdldDo6 aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1JlZiBDUFUsIFN0cmluZ1JlZiBGUykgeworIAor ICAgaWYgKChUYXJnZXRUcmlwbGUuaXNPU0ZyZWVCU0QoKSAmJiBUYXJnZXRUcmlwbGUuZ2V0T1NN YWpvclZlcnNpb24oKSA+PSAxMykgfHwKKyAgICAgICBUYXJnZXRUcmlwbGUuaXNPU05ldEJTRCgp IHx8IFRhcmdldFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8CistICAgICAgVGFyZ2V0VHJpcGxlLmlz TXVzbCgpKQorKyAgICAgIGlzVGFyZ2V0TGludXgoKSkKKyAgICAgU2VjdXJlUGx0ID0gdHJ1ZTsK KyAKKyAgIGlmIChIYXNTUEUgJiYgSXNQUEM2NCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi41MWQwZTRiMzFiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaApAQCAtMCwwICsxLDE4 IEBACitUaGlzIGFsbG93cyB1cyB0byBvdmVycmlkZSB0aGUgb3B0aW1pemF0aW9uIGxldmVsIGFz IG5vdCBhbGwgcGxhdGZvcm1zIGNhbgorZGVhbCB3aXRoIC1PMy4KKworLS0tIGEvbGx2bS9DTWFr ZUxpc3RzLnR4dAorKysrIGIvbGx2bS9DTWFrZUxpc3RzLnR4dAorQEAgLTkxOCw2ICs5MTgsMTIg QEAgaWYoIE1JTkdXIEFORCBOT1QgIiR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lEfSIgTUFUQ0hFUyAi Q2xhbmciICkKKyAgIGxsdm1fcmVwbGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdT X1JFTEVBU0UgIi1PMyIgIi1PMiIpCisgZW5kaWYoKQorIAorK3NldChWT0lEX0NYWF9PUFRfRkxB R1MgIiIgQ0FDSEUgU1RSSU5HICJPcHRpbWl6YXRpb24gbGV2ZWwgdG8gdXNlIikKKysKKytpZiAo Tk9UIFZPSURfQ1hYX09QVF9GTEFHUyBTVFJFUVVBTCAiIikKKysgICAgbGx2bV9yZXBsYWNlX2Nv bXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiJHtWT0lEX0NYWF9P UFRfRkxBR1N9IikKKytlbmRpZigpCisrCisgIyBQdXQgdGhpcyBiZWZvcmUgdGJsZ2VuLiBFbHNl IHdlIGhhdmUgYSBjaXJjdWxhciBkZXBlbmRlbmNlLgorIGFkZF9zdWJkaXJlY3RvcnkobGliL0Rl bWFuZ2xlKQorIGFkZF9zdWJkaXJlY3RvcnkobGliL1N1cHBvcnQpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggYi9zcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzMyNjg3YjlkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKQEAgLTAsMCAr MSwzNiBAQAorRnJvbSBmM2RiZGQ0OWMwNmJmYWZjMWQ2MTM4MDk0Y2Y0Mjg4OWMxNGQzOGI2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9s bGFuZC5vcmc+CitEYXRlOiBTdW4sIDMgTm92IDIwMTkgMTA6NTc6MjcgLTA2MDAKK1N1YmplY3Q6 IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENdIEFzc3VtZSBCaWdQSUMgaWYgbm8gUElDIGxldmVsIGlz IHNwZWNpZmllZAorCistLS0KKyBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVy LmNwcCAgfCAyICstCisgbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3Bw IHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIv bGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCitpbmRleCBjY2UyMWYzMi4uODdj YTVmOWIgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVy LmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK0BA IC01MjAsNyArNTIwLDcgQEAgdm9pZCBQUENBc21QcmludGVyOjpFbWl0VGxzQ2FsbChjb25zdCBN YWNoaW5lSW5zdHIgKk1JLAorIAorICAgLy8gQWRkIDMyNzY4IG9mZnNldCB0byB0aGUgc3ltYm9s IHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0ZXN0IEdPVC9QTFQgQUJJLgorICAgaWYgKEtpbmQgPT0g TUNTeW1ib2xSZWZFeHByOjpWS19QTFQgJiYgU3VidGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmCist ICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNMZXZlbDo6QmlnUElDKQorKyAgICAgIE0tPmdl dFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElDKQorICAgICBUbHNSZWYgPSBNQ0JpbmFy eUV4cHI6OmNyZWF0ZUFkZCgKKyAgICAgICAgIFRsc1JlZiwgTUNDb25zdGFudEV4cHI6OmNyZWF0 ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91dENvbnRleHQpOworICAgY29uc3QgTWFjaGluZU9wZXJh bmQgJk1PID0gTUktPmdldE9wZXJhbmQoMik7CitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dl clBDL1BQQ01DSW5zdExvd2VyLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dl ci5jcHAKK2luZGV4IDVjYzE4MGQ3Li5hNWIwMjU2NSAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1Rh cmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitAQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBNQ09w ZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0IE1hY2hpbmVPcGVyYW5kICZNTywgY29uc3QgTUNTeW1i b2wgKlN5bWJvbCwKKyAgIGNvbnN0IE1DRXhwciAqRXhwciA9IE1DU3ltYm9sUmVmRXhwcjo6Y3Jl YXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4KTsKKyAgIC8vIElmIC1tc2VjdXJlLXBsdCAtZlBJQywg YWRkIDMyNzY4IHRvIHN5bWJvbC4KKyAgIGlmIChTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYg VE0uaXNQb3NpdGlvbkluZGVwZW5kZW50KCkgJiYKKy0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09 IFBJQ0xldmVsOjpCaWdQSUMgJiYKKysgICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVs OjpTbWFsbFBJQyAmJgorICAgICAgIE1PLmdldFRhcmdldEZsYWdzKCkgPT0gUFBDSUk6Ok1PX1BM VCkKKyAgICAgRXhwciA9CisgICAgICAgICBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZChFeHByLCBN Q0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBDdHgpLCBDdHgpOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2ggYi9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEwMGFiZDIxNjY2NQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVj LnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0ZpeCBmYWlsdXJlcyBpbiBBbGxvY2F0aW9uVGVzdHMv TWFwcGVkTWVtb3J5VGVzdC4qIG9uIGFhcmNoNjQ6CisKKyAgICBGYWlsaW5nIFRlc3RzICg4KToK KyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRl c3RzL01hcHBlZE1lbW9yeVRlc3QuQWxsb2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0 IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRl c3QuRHVwbGljYXRlTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9y dFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkVuYWJsZWRXcml0ZS8zCisg ICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0 cy9NYXBwZWRNZW1vcnlUZXN0Lk11bHRpcGxlQWxsb2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExW TS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1l bW9yeVRlc3QuU3VjY2Vzc2l2ZU5lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8u L1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5VbmFsaWduZWRO ZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb05lYXIvMworICAgICAgICBMTFZNLVVuaXQg OjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVz dC5aZXJvU2l6ZU5lYXIvMworCitVcHN0cmVhbS1Jc3N1ZTogaHR0cHM6Ly9idWdzLmxsdm0ub3Jn L3Nob3dfYnVnLmNnaT9pZD0xNDI3OCNjMTAKKworLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4 L01lbW9yeS5pbmMKKysrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCitAQCAt NTgsNyArNTgsNyBAQCBzdGF0aWMgaW50IGdldFBvc2l4UHJvdGVjdGlvbkZsYWdzKHVuc2lnbmVk IEZsYWdzKSB7CisgICAgIHJldHVybiBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVD OworICAgY2FzZSBsbHZtOjpzeXM6Ok1lbW9yeTo6TUZfRVhFQzoKKyAjaWYgKGRlZmluZWQoX19G cmVlQlNEX18pIHx8IGRlZmluZWQoX19QT1dFUlBDX18pIHx8IGRlZmluZWQgKF9fcHBjX18pIHx8 IFwKKy0gICAgIGRlZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykpCisrICAgICBk ZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChfQVJDSF9QUEMpIHx8IChkZWZpbmVkKF9fbGludXhf XykgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykpKQorICAgICAvLyBPbiBQb3dlclBDLCBoYXZpbmcg YW4gZXhlY3V0YWJsZSBwYWdlIHRoYXQgaGFzIG5vIHJlYWQgcGVybWlzc2lvbgorICAgICAvLyBj YW4gaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy4gIFRoZSBmdW5jdGlvbiBJbnZhbGlkYXRl SW5zdHJ1Y3Rpb24tCisgICAgIC8vIENhY2hlIHVzZXMgaW5zdHJ1Y3Rpb25zIGRjYmYgYW5kIGlj YmksIGJvdGggb2Ygd2hpY2ggYXJlIHRyZWF0ZWQgYnkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uOGUwYTlhNzc5ZDFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaApAQCAtMCwwICsxLDIxIEBACitjb21t aXQgYmE0ZWRlNTk1ZmY5NTk5MjMyZjVkZDJiNDM4NGMyNDMxMzdiNTNmYworQXV0aG9yOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgVHVlIEp1biAyMiAyMzo0 MDo1NCAyMDIxICswMjAwCisKKyAgICBlbmFibGUgY29tcGlsZXItcnQgc3VwcG9ydCBmb3IgcHBj MzIKKworZGlmZiAtLWdpdCBhL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtl IGIvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKK2luZGV4IDFlZGFiNDMu LjVjMGM4YTIgMTAwNjQ0CistLS0gYS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5j bWFrZQorKysrIGIvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKK0BAIC0x ODIsOSArMTgyLDcgQEAgbWFjcm8odGVzdF90YXJnZXRzKQorICAgICBlbHNlaWYoIiR7Q09NUElM RVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInBvd2VycGM2NGxlIikKKyAgICAg ICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGM2NGxlICIiICItbTY0IikKKyAgICAgZWxzZWlmKCIk e0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjIikKKy0g ICAgICBpZihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJBSVgiKQorLSAgICAgICAgdGVzdF90 YXJnZXRfYXJjaChwb3dlcnBjICIiICItbTMyIikKKy0gICAgICBlbmRpZigpCisrICAgICAgdGVz dF90YXJnZXRfYXJjaChwb3dlcnBjICIiICItbTMyIikKKyAgICAgICB0ZXN0X3RhcmdldF9hcmNo KHBvd2VycGM2NCAiIiAiLW02NCIpCisgICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxU X1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAiczM5MHgiKQorICAgICAgIHRlc3RfdGFyZ2V0X2FyY2go czM5MHggIiIgIiIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGx2bTEzL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMDhkODQ3NDcyNTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvdGVtcGxh dGUKQEAgLTAsMCArMSw0MjMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMycKK3BrZ25h bWU9bGx2bTEzCit2ZXJzaW9uPTEzLjAuMAorcmV2aXNpb249MQord3Jrc3JjPSJsbHZtLXByb2pl Y3QtJHt2ZXJzaW9ufS5zcmMiCitidWlsZF93cmtzcmM9bGx2bQorYnVpbGRfc3R5bGU9Y21ha2UK K2NvbmZpZ3VyZV9hcmdzPSIKKyAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRldgor IC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKKyAtRExMREJfVVNFX1NZU1RFTV9TSVg9WUVT CisgLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKKyAtRExJQkNYWF9FTkFCTEVfU1RBVElDX0FC SV9MSUJSQVJZPVlFUworIC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUworIC1ETElC Q1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVTCisgLURMSUJPTVBfRU5BQkxFX1NIQVJF RD1ZRVMKKyAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9Tk8KKyAtRExMVk1fSU5DTFVERV9ET0NT PVlFUworIC1ETExWTV9CVUlMRF9ET0NTPVlFUworIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwor IC1EU1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTworIC1ETExWTV9JTlNUQUxMX1VUSUxTPVlF UworIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUworIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9 WUVTCisgLURMTFZNX0VOQUJMRV9SVFRJPVlFUworIC1ETExWTV9FTkFCTEVfRkZJPVlFUworIC1E TExWTV9CSU5VVElMU19JTkNESVI9L3Vzci9pbmNsdWRlIgoraG9zdG1ha2VkZXBlbmRzPSJwZXJs IHB5dGhvbjMgemxpYi1kZXZlbCBsaWJmZmktZGV2ZWwgc3dpZyBweXRob24zLVNwaGlueAorIHB5 dGhvbjMtcmVjb21tb25tYXJrIHB5dGhvbjMtc3BoaW54LWF1dG9tb2RhcGkiCittYWtlZGVwZW5k cz0icHl0aG9uMy1kZXZlbCB6bGliLWRldmVsIGVsZnV0aWxzLWRldmVsIGxpYmZmaS1kZXZlbCBs aWJlZGl0LWRldmVsCisgbGlieG1sMi1kZXZlbCBiaW51dGlscy1kZXZlbCBsaWJhdG9taWMtZGV2 ZWwiCitkZXBlbmRzPSJsaWJsbHZtMTM+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9k ZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5lIgorbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4iCitsaWNlbnNlPSJBcGFjaGUtMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8v d3d3Lmxsdm0ub3JnIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXBy b2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tcHJvamVjdC0k e3ZlcnNpb259LnNyYy50YXIueHoiCitjaGVja3N1bT02MDc1YWQzMGYxYWMwZTE1ZjA3YzFiZjA2 MmMxZTEyNjhjMjQxZDY3NGYxMWJkMzJjZGYwZTA0MGM3MWYyYmYzCitsaWIzMmRpc2FibGVkPXll cworcHl0aG9uX3ZlcnNpb249MworCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9WUVTIgor CW1ha2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorCWRlcGVuZHMrPSIgbGliZXhlY2lu Zm8tZGV2ZWwiCitmaQorCisjICJvcGVyYW5kIG91dCBvZiByYW5nZSIgYXNzZW1ibGVyIGZhaWx1 cmVzCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikg Y29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKK2VzYWMKKwor X2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2NsYW5nLXRvb2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xp YmN4eDtsaWJjeHhhYmk7bGlidW53aW5kO2xsZCIKKworX2xsZGJfZW5hYmxlPXllcworX2xpYm9t cF9lbmFibGU9bm8KKworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjRsZSop IDs7CisJcHBjKnxpNjg2KikgX2xsZGJfZW5hYmxlPW5vIDs7Citlc2FjCisKK2Nhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCXg4Nl82NCp8YWFyY2g2NCp8cHBjNjQqKSBfbGlib21wX2Vu YWJsZT15ZXM7OworZXNhYworCitzdWJwYWNrYWdlcz0iY2xhbmctdG9vbHMtZXh0cmEiCisKKyMg bXVzdCBnbyBiZWZvcmUgY2xhbmcKK2lmIFsgIiRfbGlib21wX2VuYWJsZSIgPSAieWVzIiBdOyB0 aGVuCisJX2VuYWJsZWRfcHJvamVjdHMrPSI7b3Blbm1wIgorCXN1YnBhY2thZ2VzKz0iIGxpYm9t cCBsaWJvbXAtZGV2ZWwiCisJIyBiZWNhdXNlIG9mIGNtYWtlIG5vbnNlbnNlIHJlZmVyZW5jaW5n IGxpYm9tcHRhcmdldC5zby4qCisJZGVwZW5kcys9IiBsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCitmaQorCitzdWJwYWNrYWdlcys9IiBjbGFuZyBjbGFuZy1hbmFseXplciBsaWJjbGFu ZyBsaWJjbGFuZy1jcHAKKyBsbHZtLWxpYnVud2luZCBsbHZtLWxpYnVud2luZC1kZXZlbCBsaWJj eHggbGliY3h4LWRldmVsCisgbGliY3h4YWJpIGxpYmN4eGFiaS1kZXZlbCBsaWJsbHZtMTMiCisK K2lmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCSMgWFhYIGZhaWxzIHRvIGNy b3NzIGNvbXBpbGUgZHVlIHRvIHB5dGhvbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO2xsZGIiCisJ c3VicGFja2FnZXMrPSIgbGxkYiBsbGRiLWRldmVsIgorZmkKKworc3VicGFja2FnZXMrPSIgbGxk IGxsZC1kZXZlbCIKKworY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0k e19lbmFibGVkX3Byb2plY3RzfSIKKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkX2xsZGJfZW5h YmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wi IF07IHRoZW4KKwkJCXZzZWQgLWkgJ3N8X19wdHJhY2VfcmVxdWVzdHxpbnR8ZycgXAorCQkJCSR7 d3Jrc3JjfS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvTmF0aXZlUHJvY2Vzc0xp bnV4LmNwcAorCQlmaQorCQkjIGRpc2FibGUgZG9jcyBmb3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8g Z2VuZXJhdGUKKwkJdnNlZCAtaSAnL2FkZF9zdWJkaXJlY3RvcnkoZG9jcykvZCcgXAorCQkJJHt3 cmtzcmN9L2xsZGIvQ01ha2VMaXN0cy50eHQKKwlmaQorCisJIyB1cGRhdGUgY29uZmlnLmd1ZXNz IGZvciBiZXR0ZXIgcGxhdGZvcm0gZGV0ZWN0aW9uCisJY3AgJFhCUFNfQ09NTU9ORElSL2Vudmly b25tZW50L2NvbmZpZ3VyZS9hdXRvbWFrZS9jb25maWcuZ3Vlc3MgXAorCQkke3dya3NyY30vbGx2 bS9jbWFrZQorCisJIyBmaXggbGlua2VyIGZhaWx1cmVzIG9uIHNvbWUgYXJjaHMKKwl2c2VkIC1p ICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjY19zIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19T X0xJQiBPTiksJyBcCisJCSR7d3Jrc3JjfS9saWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtl CisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2MgLiosc2V0KExJQkNYWEFCSV9I QVNfR0NDX0xJQiBPTiksJyBcCisJCSR7d3Jrc3JjfS9saWJjeHhhYmkvY21ha2UvY29uZmlnLWl4 LmNtYWtlCisKKwkjIG5lZWQgbGlic3NwX25vbnNoYXJlZCBvbiBzb21lIG11c2wgcGxhdGZvcm1z IChiZWNhdXNlIG9mIG5vZGVmYXVsdGxpYnMpCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJCXBwYzY0KikgOzsKKwkJcHBjKi1tdXNsfGk2ODYtbXVzbHxtaXBzKi1tdXNsKQorCQkJ dnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFy ZWQpLCcgXAorCQkJCSR7d3Jrc3JjfS9saWJ1bndpbmQvc3JjL0NNYWtlTGlzdHMudHh0CisJCQl2 c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJl ZCksJyBcCisJCQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKwkJCXZz ZWQgLWkgJ3MsI3NzcCwsJyAke3dya3NyY30vbGliY3h4L0NNYWtlTGlzdHMudHh0CisJCQk7Owor CWVzYWMKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQl4ODZfNjQtbXVzbCkg IyBzb21lIHNhbml0aXplciBjdXJyZW50bHkgb25seSBvbiB4ODZfNjQgc3R1ZmYgbmVlZHMgYmFj a3RyYWNlCisJCQl2c2VkIC1pICdzLCMgU2V0IGNvbW1vbiBsaW5rIGZsYWdzLixsaXN0KEFQUEVO RCBTQU5JVElaRVJfQ09NTU9OX0xJTktfTElCUyBleGVjaW5mbyksJyBcCisJCQkJJHt3cmtzcmN9 L2NvbXBpbGVyLXJ0L0NNYWtlTGlzdHMudHh0CisJCQk7OworCQlhcm0qLW11c2x8aTY4Ni1tdXNs KSAjIHNhbml0aXplciBjb2RlIGlzIGJyb2tlbiBzaW5jZSBpdCBkdXBsaWNhdGVzIHNvbWUgbGli YyBiaXRzCisJCQl2c2VkIC1pICdzL3NldChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1P TiBUUlVFKS9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gRkFMU0UpLycgXAor CQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKKwkJCTs7CisJ ZXNhYworfQorCitwcmVfY29uZmlndXJlKCkgeworCWxvY2FsIHRyaXBsZXQKKworCSMgVmFzdGx5 IHJlZHVjZSBzaXplIG9mIGRlYnVnZ2luZyBzeW1ib2xzOgorCUNGTEFHUz0ke0NGTEFHUy8gLWcv IC1nMX0KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLyAtZy8gLWcxfQorCisJIyBzaW5jZSBnY2M5LCB0 aGUgYnVpbGQgbGlrZXMgdG8gYmxvdyB1cCBmb3IgcHBjMzIgYXBwYXJlbnRseSBiZWNhdXNlCisJ IyBvZiBjbGFuZyBiZWluZyB0b28gbGFyZ2UgZm9yIGEgMjQtYml0IHJlbGF0aXZlIGNhbGwgdG8g dGhlIFBMVCwgc28KKwkjIG9wdGltaXplIGZvciBzaXplIGluc3RlYWQKKwljYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKSA7OworCQltaXBzKi1tdXNsfHBwYyopIGNvbmZp Z3VyZV9hcmdzKz0iIC1EVk9JRF9DWFhfT1BUX0ZMQUdTPS1PcyIgOzsKKwllc2FjCisKKwlpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJbXNnX25vcm1hbCAiQnVpbGRpbmcgaG9zdCB0Ymxn ZW5cbiIKKwkJbWtkaXIgLXAgYnVpbGQvSE9TVAorCQljZCBidWlsZC9IT1NUCisJCUNDPSIkQlVJ TERfQ0MiIENYWD0iJEJVSUxEX0NYWCIgQ0ZMQUdTPSIkQlVJTERfQ0ZMQUdTIiBcCisJCQlDWFhG TEFHUz0iJEJVSUxEX0NYWEZMQUdTIiBMREZMQUdTPSIkQlVJTERfTERGTEFHUyIgXAorCQkJY21h a2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAorCQkJLURMTFZNX0VOQUJMRV9Q Uk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQorCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxz L1RhYmxlR2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVH ZW4KKwkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMg dG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgorCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFC TEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCisJCWNvbmZp Z3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9i aW4vY2xhbmctdGJsZ2VuIgorCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmln dXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmlu L2xsZGItdGJsZ2VuIgorCQljZCAuLi8uLgorCWZpCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwkJaTY4NiopIF9hcmNoPSJYODYiOzsKKwkJeDg2XzY0KikgX2FyY2g9Ilg4NiI7 OworCQlhcm12NSopIF9hcmNoPSJBcm12NXRlIjs7CisJCWFybXY2KikgX2FyY2g9IkFybXY2Ijs7 CisJCWFybXY3KikgX2FyY2g9IkFybXY3Ijs7CisJCWFhcmNoNjQqKSBfYXJjaD0iQUFyY2g2NCI7 OworCQltaXBzKikgX2FyY2g9Ik1pcHMiOzsKKwkJcHBjKikgX2FyY2g9IlBvd2VyUEMiOzsKKwkJ cmlzY3Y2NCopIF9hcmNoPSJSSVNDVjY0Ijs7CisJZXNhYworCisJdHJpcGxldD0ke1hCUFNfQ1JP U1NfVFJJUExFVDotJFhCUFNfVFJJUExFVH0KKworCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9U QVJHRVRfQVJDSD0ke19hcmNofSIKKwljb25maWd1cmVfYXJncys9IiAtRExMVk1fSE9TVF9UUklQ TEU9JHt0cmlwbGV0fSIKKwljb25maWd1cmVfYXJncys9IiAtRExMVk1fREVGQVVMVF9UQVJHRVRf VFJJUExFPSR7dHJpcGxldH0iCit9CisKK2RvX2luc3RhbGwoKSB7CisJY2QgYnVpbGQKKwljbWFr ZSAtRENNQUtFX0lOU1RBTExfUFJFRklYPSR7REVTVERJUn0vdXNyIC1QIGNtYWtlX2luc3RhbGwu Y21ha2UKKworCSMgUmVxdWlyZWQgZm9yIG11bHRpbGliLgorCWlmIFsgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiA9ICJ4ODZfNjQiIF07IHRoZW4KKwkJZm9yIF9oZWFkZXIgaW4gbGx2bS1jb25maWc7 IGRvCisJCQltdiAke0RFU1RESVJ9L3Vzci9pbmNsdWRlL2xsdm0vQ29uZmlnLyR7X2hlYWRlcn17 LC02NH0uaAorCQkJdmluc3RhbGwgJHtGSUxFU0RJUn0vbGx2bS1Db25maWctJHtfaGVhZGVyfS5o IDY0NCBcCisJCQkJdXNyL2luY2x1ZGUvbGx2bS9Db25maWcgJHtfaGVhZGVyfS5oCisJCWRvbmUK KwlmaQorCisJIyBSZW1vdmUgbGx2bS1jb25maWctaG9zdCBpbiBjcm9zcyBidWlsZHMuCisJaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi9sbHZt LWNvbmZpZy1ob3N0CisJZmkKKworCSMgSW5zdGFsbCBsaWJjeHhhYmkgaGVhZGVycworCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9fX2N4eGFiaV9jb25maWcuaCA2NDQgdXNy L2luY2x1ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvY3h4YWJpLmgg NjQ0IHVzci9pbmNsdWRlCisKKwkjIEluc3RhbGwgbGlidW53aW5kIGhlYWRlcnMKKwl2aW5zdGFs bCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmggNjQ0IHVz ci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL2xpYnVud2lu ZC5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS91bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5k L2luY2x1ZGUvbWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmggXAorCQk2NDQgdXNyL2lu Y2x1ZGUvbWFjaC1vCit9CisKK2NsYW5nLWFuYWx5emVyX3BhY2thZ2UoKSB7CisJcHljb21waWxl X2RpcnM9InVzci9zaGFyZS9zY2FuLXZpZXciCisJZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSBweXRob24zIHBlcmwiCisJc2hvcnRfZGVzYys9IiAtIEEgc291cmNlIGNvZGUg YW5hbHlzaXMgZnJhbWV3b3JrIgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLWFuYWx5emVyLmxs dm0ub3JnLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL3Nj YW4tYnVpbGQuMQorCQl2bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9zaGFy ZS9zY2FuLSoiCisJCXZtb3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5emVyIgorCX0KK30KKworY2xh bmctdG9vbHMtZXh0cmFfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9 ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIKKwlzaG9ydF9kZXNjKz0iIC0g RXh0cmEgQ2xhbmcgdG9vbHMiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZXh0 cmEvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy10aWR5CisJ CXZtb3ZlIHVzci9iaW4vY2xhbmctYXBwbHktcmVwbGFjZW1lbnRzCisJCXZtb3ZlIHVzci9iaW4v Y2xhbmctcXVlcnkKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1yZW5hbWUKKwkJdm1vdmUgdXNyL2Jp bi9jbGFuZy10aWR5CisJCXZtb3ZlIHVzci9iaW4vZGlhZ3Rvb2wKKwkJdm1vdmUgdXNyL2Jpbi9m aW5kLWFsbC1zeW1ib2xzCisJCXZtb3ZlIHVzci9iaW4vaG1hcHRvb2wKKwkJdm1vdmUgdXNyL2Jp bi9tb2R1bGFyaXplCisJCXZtb3ZlIHVzci9iaW4vcHAtdHJhY2UKKwkJdm1vdmUgdXNyL2Jpbi9z YW5jb3YKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmdBcHBseVJlcGxhY2VtZW50cyoiCisJCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nUXVlcnkqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1Rp ZHkqIgorCQl2bW92ZSAidXNyL3NoYXJlL2NsYW5nLyp0aWR5KiIKKwkJdm1vdmUgdXNyL3NoYXJl L2RvYy9jbGFuZy10b29scworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZXh0cmFjbGFuZ3Rv b2xzLjEKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2RpYWd0b29sLjEKKwl9Cit9CisKK2Ns YW5nX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCisJ IGxpYmNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIEMgbGFu Z3VhZ2UgZmFtaWx5IGZyb250ZW5kIgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3Jn LyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmcKKwkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctYworCQl2bW92ZSAidXNyL2Jpbi8qY2xhbmcqIgorCQl2bW92ZSB1 c3IvYmluL2MtaW5kZXgtdGVzdAorCQl2bW92ZSB1c3IvbGliL2NsYW5nCisJCXZtb3ZlIHVzci9s aWIvY21ha2UvY2xhbmcKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLmEiCisJCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nKi5zbyIKKwkJdm1vdmUgdXNyL3NoYXJlL2NsYW5nCisJCXZtb3ZlIHVz ci9zaGFyZS9kb2MvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKKwl9 Cit9CisKK2xpYmNsYW5nX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIEMgZnJvbnRlbmQg cnVudGltZSBsaWJyYXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZy5zby4qIgorCX0KK30KKworbGliY2xhbmctY3BwX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVz Yys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCisJfQorfQor CitsbGRfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCXNob3J0X2Rlc2MrPSIgLSBs aW5rZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgorCXBrZ19pbnN0YWxsKCkg eworCQl2bW92ZSB1c3IvYmluL2xsZCoKKwkJdm1vdmUgdXNyL2Jpbi93YXNtLWxkCisJCXZtb3Zl IHVzci9iaW4vbGQubGxkKgorCQl2bW92ZSB1c3IvYmluL2xkNjQubGxkKgorCQl2bW92ZSB1c3Iv c2hhcmUvZG9jL2xsZAorCX0KK30KKworbGxkLWRldmVsX3BhY2thZ2UoKSB7CisJbGliMzJkaXNh YmxlZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJ aG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgorCWRlcGVuZHM9ImxsZD49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxk CisJCXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgor CX0KK30KKworbGxkYl9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcys9 IiBweXRob24zLXNpeCIKKwlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKKwlob21lcGFn ZT0iaHR0cHM6Ly9sbGRiLmxsdm0ub3JnLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNy L2Jpbi8qbGxkYioKKwkJdm1vdmUgdXNyL2xpYi9saWJsbGRiKnNvLioKKwkJdm1vdmUgL3Vzci9s aWIvcHl0aG9uKgorCX0KK30KKworbGxkYi1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJs ZWQ9eWVzCisJZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9k ZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIq LnNvIgorCX0KK30KKworbGx2bS1saWJ1bndpbmRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJ1bndp bmQuc28uKiIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9Imxs dm0tbGlidW53aW5kPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWNvbmZsaWN0cz0ibGlidW53 aW5kLWRldmVsPj0wIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2xpYnVud2lu ZC5zbworCQl2bW92ZSB1c3IvbGliL2xpYnVud2luZC5hCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS8q dW53aW5kKiIKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbWFjaC1vCisJCXZtb3ZlIHVzci9zaGFyZS9k b2MvbGlidW53aW5kCisJfQorfQorCitsaWJjeHhhYmlfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNj Kz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJ dm1vdmUgInVzci9saWIvbGliYysrYWJpLnNvLioiCisJfQorfQorCitsaWJjeHhhYmktZGV2ZWxf cGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMr KyAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eGFiaT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJjKythYmku c28KKwkJdm1vdmUgdXNyL2xpYi9saWJjKythYmkuYQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKmN4 eGFiaSoiCisJfQorfQorCitsaWJjeHhfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmMrKy5zby4qIgorCX0KK30KKworbGliY3h4LWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJZGVwZW5k cz0ibGliY3h4Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2 bW92ZSB1c3IvbGliL2xpYmMrKy5zbworCQl2bW92ZSB1c3IvbGliL2xpYmMrKy5hCisJCXZtb3Zl IHVzci9saWIvbGliYysrZXhwZXJpbWVudGFsLmEKKwkJdm1vdmUgdXNyL2luY2x1ZGUvYysrCisJ CXZtb3ZlIHVzci9zaGFyZS9kb2MvbGliY3h4CisJfQorfQorCitsaWJvbXBfcGFja2FnZSgpIHsK KwlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSIKKwlwa2dfaW5z dGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJvbXAuc28KKwkJdm1vdmUgInVzci9saWIvbGli b21wdGFyZ2V0LnJ0bC4qLnNvIgorCQl2bW92ZSB1c3IvbGliL2xpYmFyY2hlci5zbworCX0KK30K KworbGlib21wLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5N UCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJvbXA+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3Iv bGliL2xpYm9tcCouc28iCisJCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCisJCXZtb3ZlICJ1 c3IvaW5jbHVkZS9vbXAqLmgiCisJCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5j bHVkZS9vbXAqLmgiCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1wLjEKKwkJ dm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKKwl9Cit9CisKK2xpYmxsdm0xM19wYWNrYWdlKCkg eworCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlICJ1c3IvbGliL2xpYkxMVk0tKi5zbyoiCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvdXBkYXRlIGIvc3JjcGtncy9sbHZtMTMvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTk1Y2YyNmIzNTg2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTMvdXBkYXRlCkBAIC0wLDAgKzEsMyBAQAorc2l0ZT0iaHR0cHM6Ly9naXRo dWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzIgorcGF0dGVybj0ibGx2bW9yZy1cSyhc ZCsuKXsyfVxkKygtcmNcZCspPyIKK2lnbm9yZT0iKi1yYyoiCgpGcm9tIDNmYmQxYzRkMzYxNDY4 ODk1ZWQ4ZGQ2NzVkOGVhZjVkMTI0OGM4MDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3Bl dGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IEZyaSwgMzEgRGVjIDIwMjEgMTY6MjM6MTcgKzAyMDAK U3ViamVjdDogW1BBVENIIDAyLzIxXSBsbHZtOiB1cGRhdGUgdG8gMTMuMC4wCgotLS0KIHNyY3Br Z3MvbGx2bS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZSBi L3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQppbmRleCBhOTJkYjZmOTRmOWYuLmJjZmVlODIwOThmZiAx MDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bS90ZW1w bGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bScKIHBrZ25h bWU9bGx2bQotdmVyc2lvbj0xMi4wLjAKK3ZlcnNpb249MTMuMC4wCiByZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXRhCi1kZXBlbmRzPSJsbHZtMTIiCi1yZXBsYWNlcz0ibGx2bTExPj0wIGxsdm0x MD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCitk ZXBlbmRzPSJsbHZtMTMiCityZXBsYWNlcz0ibGx2bTEyPj0wIGxsdm0xMT49MCBsbHZtMTA+PTAg bGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgogc2hvcnRf ZGVzYz0iTExWTSBtZXRhIHBhY2thZ2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iUHVibGljIERvbWFpbiIKCkZyb20gNDdkN2JhNTJi N2I3NDExZDE1MmQ1NDM4NzY0ZDg4ZjAxYmY2ZDI0NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJA bGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogRnJpLCAzMSBEZWMgMjAyMSAxNjo0Mzo1NiAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjFdIGxsdm0xMjogcmVtb3ZlIGNsYW5nIHBhcnRzCgot LS0KIC4uLmNsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaCB8ICA0NCAt LS0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCAt LS0tLS0tCiAuLi4vY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggfCAg MTMgLQogLi4uL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggIHwgIDQ4 IC0tLQogLi4uL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggICAgICAgIHwgIDEx IC0KIC4uLi9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCAgICB8ICAzNSAt LQogLi4uL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNpemVfdC5wYXRjaCAgIHwgIDEwIC0K IC4uLi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaCB8ICA2MiAtLS0t CiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoICAgICAgfCAgMjYgLS0K IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaCAgICAgICB8ICAyMiAtLQog Li4uL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIHwgIDExIC0KIHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoICAgICB8ICAyNSAtLQogc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggIHwgIDYzIC0tLS0KIHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoICAgICAgICB8ICAzMSAtLQogLi4u L2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoICAgIHwgIDIxIC0tCiBzcmNw a2dzL2xsdm0xMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAzMDEgKy0tLS0tLS0t LS0tLS0tLS0tCiAxNiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgODMyIGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAx LWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5 bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVjb250ZXh0 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxl ci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1t dXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJj eHgtcHBjLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWlu LWluY2x1c2lvbi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11 bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlNGVhYTc3ODNlN2EuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDQ0ICswLDAgQEAKLUZyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1 OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBCcmFuY2FsZW9u aSA8bWl3YXhlQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIw MAotU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KLQotLS0t Ci0gbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvSGVhZGVy cy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCi1pbmRleCAzMDNkNzkyLi40NGUxMGNj IDEwMDY0NAotLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKLSsrKyBiL2NsYW5nL2xp Yi9IZWFkZXJzL3Vud2luZC5oCi1AQCAtOSw5ICs5LDYgQEAKLSAKLSAvKiBTZWUgIkRhdGEgRGVm aW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLwotIAot LSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAotLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAotLQot ICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQuaD4p Ci0gLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRoYXQn cyBhdmFpbGFibGUsCi0gICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMgZGVm aW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAotQEAgLTM5LDYgKzM2LDkgQEAKLSAjIGVu ZGlmCi0gI2Vsc2UKLSAKLSsjaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKLSsjZGVmaW5lIF9fQ0xB TkdfVU5XSU5EX0gKLSsKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0gI2lmZGVmIF9fY3BsdXNw bHVzCi1AQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJlbEJh c2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKLSB9Ci0gI2VuZGlmCi0gCi0rI2VuZGlmIC8q IF9fQ0xBTkdfVU5XSU5EX0ggKi8KLSsKLSAjZW5kaWYKLSAKLS0jZW5kaWYgLyogX19DTEFOR19V TldJTkRfSCAqLwotLS0gCi0yLjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDI1Njg4ZDQwZGJjMi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMTAgKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5j cHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCi1AQCAtMjA4Niw3 ICsyMDg2LDggQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFk ZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1IRlRy aXBsZXNbXSA9IHsiYXJtLWxpbnV4LWdudWVhYmloZiIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3aGwtcmVkaGF0LWxpbnV4LWdudWVhYmkiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12NmhsLXN1 c2UtbGludXgtZ251ZWFiaSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJpIn07Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJp IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjds LWxpbnV4LWdudWVhYmloZiJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViTGli RGlyc1tdID0geyIvbGliIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJUcmlw bGVzW10gPSB7ImFybWViLWxpbnV4LWdudWVhYmkiLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJhcm1lYi1saW51eC1hbmRyb2lkZWFiaSJ9OwotQEAgLTIx NTMsOCArMjE1NCw3IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9y OjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCi0gICAgICAgInBvd2VycGM2NC1zdXNlLWxpbnV4Iiwg InBvd2VycGMtbW9udGF2aXN0YS1saW51eHNwZSJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQ0xFTGliRGlyc1tdID0geyIvbGliMzIiLCAiL2xpYiJ9OwotICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IFBQQ0xFVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtZ251IiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLXVu a25vd24tbGludXgtZ251IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLXVua25vd24tbGludXgtZ251In07Ci0g Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRMaWJEaXJzW10gPSB7Ii9saWI2NCIs ICIvbGliIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRUcmlwbGVzW10gPSB7 Ci1AQCAtMjIzNSw2ICsyMjM1LDg3IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlv bkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCi0gICAgIHJldHVybjsKLSAgIH0KLSAK LSsgIGlmIChUYXJnZXRUcmlwbGUuaXNNdXNsKCkpIHsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IEFBcmNoNjRNdXNsVHJpcGxlc1tdID0geyJhYXJjaDY0LWxpbnV4LW11c2wifTsKLSsg ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGTXVzbFRyaXBsZXNbXSA9IHsKLSsgICAg ICAgICJhcm0tbGludXgtbXVzbGVhYmloZiIsICJhcm12N2wtbGludXgtbXVzbGVhYmloZiIKLSsg ICAgfTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7 ImFybS1saW51eC1tdXNsZWFiaSJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2 XzY0TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlwbGVzW10gPSB7Imk2ODYtbGludXgtbXVzbCJ9Owot KyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgTUlQU011c2xUcmlwbGVzW10gPSB7Ci0rICAg ICAgICAibWlwcy1saW51eC1tdXNsIiwgIm1pcHNlbC1saW51eC1tdXNsIiwKLSsgICAgICAgICJt aXBzZWwtbGludXgtbXVzbGhmIiwgIm1pcHMtbGludXgtbXVzbGhmIgotKyAgICB9OwotKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51 eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRU11c2xUcmlwbGVz W10gPSB7InBvd2VycGNsZS1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBQUEM2NE11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NC1saW51eC1tdXNsIn07Ci0rICAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJw YzY0bGUtbGludXgtbXVzbCJ9OwotKwotKyAgICBzd2l0Y2ggKFRhcmdldFRyaXBsZS5nZXRBcmNo KCkpIHsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFhcmNoNjQ6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFy Y2g2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oQUFy Y2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVB bGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xU cmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjphcm06Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQVJNTGliRGlycyksIGVuZChBUk1MaWJEaXJzKSk7 Ci0rICAgICAgaWYgKFRhcmdldFRyaXBsZS5nZXRFbnZpcm9ubWVudCgpID09IGxsdm06OlRyaXBs ZTo6TXVzbEVBQklIRikgewotKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJN SEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11c2xUcmlwbGVzKSk7Ci0rICAgICAgfSBlbHNlIHsK LSsgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTU11c2xUcmlwbGVzKSwgZW5k KEFSTU11c2xUcmlwbGVzKSk7Ci0rICAgICAgfQotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxs dm06OlRyaXBsZTo6eDg2XzY0OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExp YkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7Ci0rICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBs ZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZt OjpUcmlwbGU6Ong4NjoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwg ZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZN dXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMu YXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOwotKyAgICAg IEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5k KFg4Nl82NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJp cGxlOjptaXBzOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKE1JUFNMaWJEaXJzKSwgZW5k KE1JUFNMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oTUlQU011 c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6cHBjOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xp YkRpcnMpLCBlbmQoUFBDTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJl Z2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykpOwot KyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMp LCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6cHBjbGU6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJz KSwgZW5kKFBQQ0xFTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2lu KFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJj aExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xU cmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBD NjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOwotKyAg ICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGly cykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlw bGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjpwcGM2NGxlOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVM aWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOwot KyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENM RUxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENM RU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsg ICAgZGVmYXVsdDoKLSsgICAgICBicmVhazsKLSsgICAgfQotKyAgICBUcmlwbGVBbGlhc2VzLnB1 c2hfYmFjayhUYXJnZXRUcmlwbGUuc3RyKCkpOwotKyAgICBpZiAoVGFyZ2V0VHJpcGxlLnN0cigp ICE9IEJpYXJjaFRyaXBsZS5zdHIoKSkKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLnB1c2hf YmFjayhCaWFyY2hUcmlwbGUuc3RyKCkpOwotKyAgICByZXR1cm47Ci0rICB9Ci0rCi0gICAvLyBB bmRyb2lkIHRhcmdldHMgc2hvdWxkIG5vdCB1c2UgR05VL0xpbnV4IHRvb2xzIG9yIGxpYnJhcmll cy4KLSAgIGlmIChUYXJnZXRUcmlwbGUuaXNBbmRyb2lkKCkpIHsKLSAgICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IEFBcmNoNjRBbmRyb2lkVHJpcGxlc1tdID0gewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlu a2VyLXBhdGgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhZDY0MTJkMWU2 Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBw YzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww IEBACi0tLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGludXguY3BwCi0rKysgYi9j bGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGludXguY3BwCi1AQCAtNTA0LDEwICs1MDQsNiBA QCBzdGQ6OnN0cmluZyBMaW51eDo6Z2V0RHluYW1pY0xpbmtlcihjb25zdCBBcmdMaXN0ICZBcmdz KSBjb25zdCB7Ci0gICAgIExvYWRlciA9ICJsZC5zby4xIjsKLSAgICAgYnJlYWs7Ci0gICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjQ6Ci0tICAgIExpYkRpciA9ICJsaWI2NCI7Ci0tICAgIExvYWRl ciA9Ci0tICAgICAgICAodG9vbHM6OnBwYzo6aGFzUFBDQWJpQXJnKEFyZ3MsICJlbGZ2MiIpKSA/ ICJsZDY0LnNvLjIiIDogImxkNjQuc28uMSI7Ci0tICAgIGJyZWFrOwotICAgY2FzZSBsbHZtOjpU cmlwbGU6OnBwYzY0bGU6Ci0gICAgIExpYkRpciA9ICJsaWI2NCI7Ci0gICAgIExvYWRlciA9CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVs ZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFmYzgwMDNjNWYxLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQt bXVzbC1lbGZ2Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS0tLSBhL2Ns YW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi0rKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0 cy9QUEMuaAotQEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKLSAgICAgICBMb25nRG91Ymxl Rm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKLSAgICAgfSBlbHNlIGlmICgo VHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7Ci0gICAgICAgRGF0 YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkgPSAiZWxmdjIiOwot ICAgICB9IGVsc2UgewotICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7 Ci0tICAgICAgQUJJID0gImVsZnYxIjsKLSAgICAgfQotKyAgICBBQkkgPSAiZWxmdjIiOwotIAot ICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwg VHJpcGxlLmlzTXVzbCgpKSB7Ci0gICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFs aWduID0gNjQ7Ci0tLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAotKysrIGIv Y2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKLUBAIC0xMDkyNyw5ICsxMDkyNyw5IEBA IGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2Vu SW5mbygpIHsKLSAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5m byhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOwotIAotICAgICBpZiAoVHJpcGxlLmlzT1NCaW5G b3JtYXRFTEYoKSkgewotLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKLS0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJ KCkgPT0gImVsZnYyIikKLS0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYy OwotKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9B QklJbmZvOjpFTEZ2MjsKLSsgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYx IikKLSsgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwotICAgICAgIGJv b2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7Ci0gCi0gICAg ICAgcmV0dXJuIFNldENHSW5mbygKLS0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9D bGFuZy5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKLUBA IC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBB cmdMaXN0ICZBcmdzLAotICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCku Z2V0VHJpcGxlKCk7Ci0gICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKLSAgICAgc3dpdGNo IChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsKLS0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBw YzY0OiB7Ci0tICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lv bigpID49IDEzKSB8fAotLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkK LS0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwotLSAgICAgIGVsc2UKLS0gICAgICAgIEFCSU5h bWUgPSAiZWxmdjEiOwotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NDoKLSAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0gICAgICAgQUJJ TmFtZSA9ICJlbGZ2MiI7Ci0gICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5M2MwNTlkN2I4ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5p dGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAub3JpZwotKysrIGIvY29tcGlsZXItcnQv bGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAotQEAgLTE3OTksNyArMTc5 OSw3IEBACi0gCi0gc3RhdGljIGJvb2wgQWFyY2g2NEdldEVTUih1Y29udGV4dF90ICp1Y29udGV4 dCwgdTY0ICplc3IpIHsKLSAgIHN0YXRpYyBjb25zdCB1MzIga0Vzck1hZ2ljID0gMHg0NTUzNTIw MTsKLS0gIHU4ICphdXggPSB1Y29udGV4dC0+dWNfbWNvbnRleHQuX19yZXNlcnZlZDsKLSsgIHU4 ICphdXggPSByZWludGVycHJldF9jYXN0PHU4ICo+KHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jl c2VydmVkKTsKLSAgIHdoaWxlICh0cnVlKSB7Ci0gICAgIF9hYXJjaDY0X2N0eCAqY3R4ID0gKF9h YXJjaDY0X2N0eCAqKWF1eDsKLSAgICAgaWYgKGN0eC0+c2l6ZSA9PSAwKSBicmVhazsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0 LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXpl ci1wcGM2NC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWYxNmQy NGYzNDAuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVy LXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs MCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xp bnV4LmNwcAotKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVy X2xpbnV4LmNwcAotQEAgLTc0LDYgKzc0LDEwIEBACi0gI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+ Ci0gI2VuZGlmCi0gCi0rI2lmIFNBTklUSVpFUl9MSU5VWCAmJiBkZWZpbmVkKF9fcG93ZXJwY19f KQotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rI2VuZGlmCi0rCi0gI2lmIFNBTklUSVpFUl9M SU5VWCAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSAjaW5jbHVkZSA8c3lzL3BlcnNvbmFsaXR5Lmg+ Ci0gI2VuZGlmCi0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6 ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAotKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0 aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKLUBAIC05Miw3 ICs5Miw3IEBACi0gIyBpbmNsdWRlIDx1dGltZS5oPgotICMgaW5jbHVkZSA8c3lzL3B0cmFjZS5o PgotICNpZiBkZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKLS0gICAgU0FOSVRJWkVSX1JJU0NWNjQKLSsgICAgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQKLSAjICBpbmNsdWRlIDxhc20vcHRyYWNl Lmg+Ci0gIyAgaWZkZWYgX19hcm1fXwotIHR5cGVkZWYgc3RydWN0IHVzZXJfZnByZWdzIGVsZl9m cHJlZ3NldF90OwotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRp emVyX3N0b3B0aGV3b3JsZF9saW51eF9saWJjZGVwLmNwcAotKysrIGIvY29tcGlsZXItcnQvbGli L3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3N0b3B0aGV3b3JsZF9saW51eF9saWJjZGVwLmNw cAotQEAgLTMxLDcgKzMxLDcgQEAKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+IC8vIGZvciBwaWRf dAotICNpbmNsdWRlIDxzeXMvdWlvLmg+IC8vIGZvciBpb3ZlYwotICNpbmNsdWRlIDxlbGYuaD4g Ly8gZm9yIE5UX1BSU1RBVFVTCi0tI2lmIChkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBTQU5JVEla RVJfUklTQ1Y2NCkgJiYgIVNBTklUSVpFUl9BTkRST0lECi0rI2lmIChkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NCkgJiYgIVNB TklUSVpFUl9BTkRST0lECi0gLy8gR0xJQkMgMi4yMCsgc3lzL3VzZXIgZG9lcyBub3QgaW5jbHVk ZSBhc20vcHRyYWNlLmgKLSAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjZW5kaWYKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90LnBhdGNoIGIv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNjMwNjNhNWU5ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTAgKzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL2Z1enplci9GdXp6ZXJJ bnRlcmNlcHRvcnMuY3BwLm9yaWcKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9mdXp6ZXIvRnV6emVy SW50ZXJjZXB0b3JzLmNwcAotQEAgLTI1LDYgKzI1LDcgQEAKLSAgIH0KLSAKLSAjaW5jbHVkZSA8 Y2Fzc2VydD4KLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5j bHVkZSA8ZGxmY24uaD4gLy8gZm9yIGRsc3ltKCkKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9s bHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwYjYxYzgwYzg5Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3hyYXkv eHJheV9wb3dlcnBjNjQuaW5jCi0rKysgYi9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2Vy cGM2NC5pbmMKLUBAIC0xMiw3ICsxMiwxMyBAQAotIAotICNpbmNsdWRlIDxjc3RkaW50PgotICNp bmNsdWRlIDxtdXRleD4KLSsjaWZkZWYgX19HTElCQ19fCi0gI2luY2x1ZGUgPHN5cy9wbGF0Zm9y bS9wcGMuaD4KLSsjZWxzZQotKyNpbmNsdWRlIDxjY3R5cGU+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+ Ci0rI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2VuZGlmCi0gCi0gI2luY2x1ZGUgInhyYXlfZGVmcy5o IgotIAotQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsKLSAKLSBBTFdBWVNf SU5MSU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05FVkVSX0lOU1RSVU1F TlQgewotICAgQ1BVID0gMDsKLSsjaWZkZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNfZ2V0 X3RpbWViYXNlKCk7Ci0rI2Vsc2UKLSsgIHJldHVybiBfX2J1aWx0aW5fcHBjX2dldF90aW1lYmFz ZSgpOwotKyNlbmRpZgotIH0KLSAKLSBpbmxpbmUgdWludDY0X3QgZ2V0VFNDRnJlcXVlbmN5KCkg WFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKLSAgIHN0YXRpYyBzdGQ6Om11dGV4IE07Ci0gICBzdGQ6 OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7Ci0rI2lmZGVmIF9fR0xJQkNfXwotICAg cmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7Ci0rI2Vsc2UKLSsgIC8qIEZJWE1FOiBh IGxlc3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCi0rICBzdGF0aWMgdWludDY0X3QgYmFzZTsK LSsgIGlmICghYmFzZSkgewotKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAi cmIiKTsKLSsgICAgaWYgKGYpIHsKLSsgICAgICBzc2l6ZV90IG5yOwotKyAgICAgIC8qIHZpcnR1 YWxseSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCi0rICAgICAgY2hhciBi dWZbNTEyXTsKLSsgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpIHsKLSsg ICAgICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOwotKyAgICAgICAgaWYg KCFyZXQpIHsKLSsgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICByZXQg Kz0gc2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKLSsgICAgICAgIHJldCA9IHN0cmNocihyZXQsICc6 Jyk7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIsIDEwKTsKLSsgICAg ICAgIGJyZWFrOwotKyAgICAgIH0KLSsgICAgICBmY2xvc2UoZik7Ci0rICAgIH0KLSsgIH0KLSsg IHJldHVybiBiYXNlOwotKyNlbmRpZgotIH0KLSAKLSBpbmxpbmUgYm9vbCBwcm9iZVJlcXVpcmVk Q1BVRmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGliY3h4LW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiZDMx ZmZjMmNiMS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4 LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0tLS0gYS9saWJjeHgv aW5jbHVkZS9sb2NhbGUKLSsrKyBiL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQotQEAgLTc0Miw3ICs3 NDIsMTEgQEAgX19udW1fZ2V0X3NpZ25lZF9pbnRlZ3JhbChjb25zdCBjaGFyKiBfX2EsIGNvbnN0 IGNoYXIqIF9fYV9lbmQsCi0gICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0 eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0gZXJybm87Ci0gICAgICAgICBlcnJubyA9 IDA7Ci0gICAgICAgICBjaGFyICpfX3AyOwotKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgIWRl ZmluZWQoX19HTElCQ19fKQotKyAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsKF9fYSwg Jl9fcDIsIF9fYmFzZSk7Ci0rI2Vsc2UKLSAgICAgICAgIGxvbmcgbG9uZyBfX2xsID0gc3RydG9s bF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNlbmRpZgot ICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBl IF9fY3VycmVudF9lcnJubyA9IGVycm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9 PSAwKQotICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwotQEAgLTc4Miw3ICs3ODYs MTEgQEAgX19udW1fZ2V0X3Vuc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3Qg Y2hhciogX19hX2VuZCwKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5 cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGVycm5vID0g MDsKLSAgICAgICAgIGNoYXIgKl9fcDI7Ci0rI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVm aW5lZChfX0dMSUJDX18pCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRv dWxsKF9fYSwgJl9fcDIsIF9fYmFzZSk7Ci0rI2Vsc2UKLSAgICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZyBfX2xsID0gc3RydG91bGxfbChfX2EsICZfX3AyLCBfX2Jhc2UsIF9MSUJDUFBfR0VUX0Nf TE9DQUxFKTsKLSsjZW5kaWYKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVj bHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGlm IChfX2N1cnJlbnRfZXJybm8gPT0gMCkKLSAgICAgICAgICAgICBlcnJubyA9IF9fc2F2ZV9lcnJu bzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggN2E5MmY4MDA0ZTFjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9s bHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAs MCBAQAotVGhpcyBlbnN1cmVzIGBpc19pZWM1NTlgIGlzIGRlZmluZWQgY29ycmVjdGx5IHVuZGVy IGFsbCBsb25nIGRvdWJsZSBBQklzLAotaW5jbHVkaW5nIG11c2wgYW5kIGl0cyA2NC1iaXQgbG9u ZyBkb3VibGUuIEFsc28sIGBfX3BwY19fYCBvciBgX19wcGM2NF9fYAotaXMgbm90IGRlZmluZWQg b24gZ2NjLgotCi0tLS0gYS9saWJjeHgvaW5jbHVkZS9saW1pdHMKLSsrKyBiL2xpYmN4eC9pbmNs dWRlL2xpbWl0cwotQEAgLTQyNiw4ICs0MjYsMTQgQEAgcHJvdGVjdGVkOgotICAgICBfTElCQ1BQ X0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiB0eXBlIHNpZ25hbGlu Z19OYU4oKSBfTk9FWENFUFQge3JldHVybiBfX2J1aWx0aW5fbmFuc2woIiIpO30KLSAgICAgX0xJ QkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBkZW5v cm1fbWluKCkgX05PRVhDRVBUIHtyZXR1cm4gX19MREJMX0RFTk9STV9NSU5fXzt9Ci0gCi0tI2lm IChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSkKLSsjaWYgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpZiAoX19MREJMX01BWF9F WFBfXyA+IF9fREJMX01BWF9FWFBfXykgfHwgKF9fTERCTF9NQU5UX0RJR19fID09IF9fREJMX01B TlRfRElHX18pCi0rICAgIC8qIElFRUUgNzU0IHF1YWRydXBsZSBvciBkb3VibGUgcHJlY2lzaW9u ICovCi0rICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9 IHRydWU7Ci0rI2Vsc2UKLSsgICAgLyogMTI4LWJpdCBJQk0gZG91YmxlLWRvdWJsZSAqLwotICAg ICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSBmYWxzZTsK LSsjZW5kaWYKLSAjZWxzZQotICAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9v bCBpc19pZWM1NTkgPSB0cnVlOwotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDcwMjkyYmViMmZjZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCww IEBACi0tLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eC9DTWFrZUxpc3Rz LnR4dAotQEAgLTc2OSw2ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFy aWVzIHRhcmdldCkKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRF IGF0b21pYykKLSAgIGVuZGlmKCkKLSAKLSsjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0 YXJnZXR9IFBSSVZBVEUgc3NwX25vbnNoYXJlZCkKLSsKLSAgIGlmIChNSU5HVykKLSAgICAgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30i KQotICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhh YmktZGwucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ExNWY5ZGI4Yzk4Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNSArMCwwIEBACi1BbHNvIGxpbmsgdG8gLWxkbCB0byBwcmV2ZW50IHVuZGVm aW5lZCByZWZlcmVuY2VzLgotCi0tLS0gYS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci0r KysgYi9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci1AQCAtNzMsNiArNzMsNyBAQAotICAg ZW5kaWYoKQotIAotICAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJQiBj KQotKyAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJQiBkbCkKLSBlbmRp ZigpCi0gCi0gaWYgKExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUikKLS0tLSBhL2xpYmN4eC9D TWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzQ1LDYgKzc0 NSwxMCBAQAotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgbSkK LSAgIGVuZGlmKCkKLSAKLSsgIGlmIChMSUJDWFhfSEFTX0NfTElCKQotKyAgICB0YXJnZXRfbGlu a19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgZGwpCi0rICBlbmRpZigpCi0rCi0gICBpZiAo TElCQ1hYX0hBU19SVF9MSUIpCi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0g UFJJVkFURSBydCkKLSAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndp bmQtcHBjMzIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0YWE3NTc2ZWNm OS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBw YzMyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotVGhpcyBmaXhlcyBidWls ZCBhdCBsZWFzdCB3aXRoIGdjYzkgd2hpY2ggZG9lcyBub3QgZGVmaW5lIGBfX3BwY19fYC4KLQot LS0tIGEvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKLSsrKyBiL2xpYnVu d2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oCi1AQCAtNDksNyArNDksNyBAQAotICMg IGRlZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxNjcKLSAjICBkZWZpbmUgX0xJQlVOV0lO RF9DVVJTT1JfU0laRSAxNzkKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9ISUdIRVNUX0RXQVJGX1JF R0lTVEVSIF9MSUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUl9QUEM2NAotLSMgZWxpZiBk ZWZpbmVkKF9fcHBjX18pCi0rIyBlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gIyAgZGVmaW5l IF9MSUJVTldJTkRfVEFSR0VUX1BQQyAxCi0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09OVEVYVF9T SVpFIDExNwotICMgIGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDEyNAotLS0tIGEvbGli dW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKLSsrKyBiL2xpYnVud2luZC9zcmMv VW53aW5kUmVnaXN0ZXJzUmVzdG9yZS5TCi1AQCAtMzkyLDcgKzM5Miw3IEBAIExub3ZlYzoKLSAg IFBQQzY0X0xSKDMpCi0gICBiY3RyCi0gCi0tI2VsaWYgZGVmaW5lZChfX3BwY19fKQotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjX18pCi0gCi0gREVGSU5FX0xJQlVOV0lORF9GVU5DVElPTihfWk45 bGlidW53aW5kMTNSZWdpc3RlcnNfcHBjNmp1bXB0b0V2KQotIC8vCi0tLS0gYS9saWJ1bndpbmQv c3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwotKysrIGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdp c3RlcnNTYXZlLlMKLUBAIC01NTQsNyArNTU0LDcgQEAgREVGSU5FX0xJQlVOV0lORF9GVU5DVElP TihfX3Vud19nZXRjb250ZXh0KQotICAgYmxyCi0gCi0gCi0tI2VsaWYgZGVmaW5lZChfX3BwY19f KQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gCi0gLy8KLSAvLyBleHRlcm4gaW50IHVu d19nZXRjb250ZXh0KHVud19jb250ZXh0X3QqIHRocmVhZF9zdGF0ZSkKLS0tLSBhL2xpYnVud2lu ZC9zcmMvY29uZmlnLmgKLSsrKyBiL2xpYnVud2luZC9zcmMvY29uZmlnLmgKLUBAIC05NSwxMiAr OTUsMTIgQEAKLSAjZGVmaW5lIF9MSUJVTldJTkRfQlVJTERfU0pMSl9BUElTCi0gI2VuZGlmCi0g Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAjZGVmaW5lIF9MSUJV TldJTkRfU1VQUE9SVF9GUkFNRV9BUElTCi0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLS0gICAgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSB8fCAgICAgICAgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICghZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmluZWQoX19hcm1fXykpIHx8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgKGRlZmluZWQoX19hcm02NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg ICBkZWZpbmVkKF9fbWlwc19fKQotLS0tIGEvbGlidW53aW5kL3NyYy9saWJ1bndpbmQuY3BwCi0r KysgYi9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKLUBAIC00Miw3ICs0Miw3IEBAIF9MSUJV TldJTkRfSElEREVOIGludCBfX3Vud19pbml0X2xvY2FsKHVud19jdXJzb3JfdCAqY3Vyc29yLAot ICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3g4Nl82NAotICNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19wcGM2NAot LSNlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQotICMg ZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYwotICNlbGlmIGRlZmluZWQoX19hYXJj aDY0X18pCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfYXJtNjQKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDYwMWMwZDEzODUyMy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv bGxkYi1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLS0tIGEvbGxk Yi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5oCi0rKysgYi9sbGRiL3NvdXJj ZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgKLUBAIC0xMCwyMSArMTAsMTIgQEAKLSAv LyBzeXMvcHJvY2ZzLmggb24gQW5kcm9pZC9MaW51eCBmb3IgYWxsIHN1cHBvcnRlZCBhcmNoaXRl Y3R1cmVzLgotIAotICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KLSAKLS0jaWZkZWYgX19BTkRST0lEX18KLS0jaWYgZGVmaW5lZChfX2FybTY0X18pIHx8 IGRlZmluZWQoX19hYXJjaDY0X18pCi0tdHlwZWRlZiB1bnNpZ25lZCBsb25nIGVsZl9ncmVnX3Q7 Ci0tdHlwZWRlZiBlbGZfZ3JlZ190Ci0tICAgIGVsZl9ncmVnc2V0X3RbKHNpemVvZihzdHJ1Y3Qg dXNlcl9wdF9yZWdzKSAvIHNpemVvZihlbGZfZ3JlZ190KSldOwotLXR5cGVkZWYgc3RydWN0IHVz ZXJfZnBzaW1kX3N0YXRlIGVsZl9mcHJlZ3NldF90OwotLSNpZm5kZWYgTlRfRlBSRUdTRVQKLS0j ZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBSRUcKLS0jZW5kaWYgLy8gTlRfRlBSRUdTRVQKLS0j ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotLSNpZm5kZWYgTlRfRlBSRUdTRVQKLS0jZGVmaW5lIE5U X0ZQUkVHU0VUIE5UX1BSRlBSRUcKLS0jZW5kaWYgLy8gTlRfRlBSRUdTRVQKLS0jZW5kaWYKLS0j ZWxzZSAvLyBfX0FORFJPSURfXwotKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQo X19wb3dlcnBjX18pCi0rI2RlZmluZSBwdF9yZWdzIG11c2xfcHRfcmVncwotKyNpbmNsdWRlIDxz eXMvcHJvY2ZzLmg+Ci0rI3VuZGVmIHB0X3JlZ3MKLSsjZWxzZQotICNpbmNsdWRlIDxzeXMvcHJv Y2ZzLmg+Ci0tI2VuZGlmIC8vIF9fQU5EUk9JRF9fCi0rI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoIGIvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOGUwYTlhNzc5ZDFiLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxICsw LDAgQEAKLWNvbW1pdCBiYTRlZGU1OTVmZjk1OTkyMzJmNWRkMmI0Mzg0YzI0MzEzN2I1M2ZjCi1B dXRob3I6IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogICBUdWUg SnVuIDIyIDIzOjQwOjU0IDIwMjEgKzAyMDAKLQotICAgIGVuYWJsZSBjb21waWxlci1ydCBzdXBw b3J0IGZvciBwcGMzMgotCi1kaWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25m aWctaXguY21ha2UgYi9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQotaW5k ZXggMWVkYWI0My4uNWMwYzhhMiAxMDA2NDQKLS0tLSBhL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2Ut Y29uZmlnLWl4LmNtYWtlCi0rKysgYi9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5j bWFrZQotQEAgLTE4Miw5ICsxODIsNyBAQCBtYWNybyh0ZXN0X3RhcmdldHMpCi0gICAgIGVsc2Vp ZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93ZXJwYzY0 bGUiKQotICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYzY0bGUgIiIgIi1tNjQiKQotICAg ICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInBv d2VycGMiKQotLSAgICAgIGlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkFJWCIpCi0tICAg ICAgICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGMgIiIgIi1tMzIiKQotLSAgICAgIGVuZGlmKCkK LSsgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGMgIiIgIi1tMzIiKQotICAgICAgIHRlc3Rf dGFyZ2V0X2FyY2gocG93ZXJwYzY0ICIiICItbTY0IikKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVS X1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJzMzkweCIpCi0gICAgICAgdGVzdF90 YXJnZXRfYXJjaChzMzkweCAiIiAiIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3RlbXBs YXRlIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKaW5kZXggN2NlMTgwMjhlNGEzLi43YjM2MWJi YmY1YmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv bGx2bTEyL3RlbXBsYXRlCkBAIC0xLDI1ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICds bHZtMTInCiBwa2duYW1lPWxsdm0xMgogdmVyc2lvbj0xMi4wLjEKLXJldmlzaW9uPTIKK3Jldmlz aW9uPTMKIHdya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgogYnVpbGRfd3Jrc3Jj PWxsdm0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iCiAgLURDTUFLRV9CVUlM RF9UWVBFPVJlbGVhc2UgLVduby1kZXYKICAtREVOQUJMRV9MSU5LRVJfQlVJTERfSUQ9WUVTCi0g LURMTERCX1VTRV9TWVNURU1fU0lYPVlFUwotIC1ETElCQ1hYX0NYWF9BQkk9bGliY3h4YWJpCi0g LURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKLSAtRExJQkNYWEFCSV9VU0Vf TExWTV9VTldJTkRFUj1ZRVMKLSAtRExJQkNYWEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlF UwotIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCi0gLURMSUJPTVBfSU5TVEFMTF9BTElBU0VT PU5PCiAgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKICAtRExMVk1fQlVJTERfRE9DUz1ZRVMKICAt RExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKICAtRFNQSElOWF9XQVJOSU5HU19BU19FUlJPUlM9Tk8K LSAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKICAtRExMVk1fQlVJTERfTExWTV9EWUxJQj1ZRVMK ICAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUwogIC1ETExWTV9FTkFCTEVfUlRUST1ZRVMKQEAg LTUxLDg3ICs0MywxMCBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAlwcGMqKSBj b25maWd1cmVfYXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OwogZXNhYwogCi1f ZW5hYmxlZF9wcm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7Y29tcGlsZXItcnQ7bGli Y3h4O2xpYmN4eGFiaTtsaWJ1bndpbmQ7bGxkIgotCi1fbGxkYl9lbmFibGU9eWVzCi1fbGlib21w X2VuYWJsZT1ubwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlwcGM2NGxlKikg OzsKLQlwcGMqfGk2ODYqKSBfbGxkYl9lbmFibGU9bm8gOzsKLWVzYWMKLQotY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCi0JeDg2XzY0KnxhYXJjaDY0KnxwcGM2NCopIF9saWJvbXBfZW5h YmxlPXllczs7Ci1lc2FjCi0KLXN1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSIKLQotIyBt dXN0IGdvIGJlZm9yZSBjbGFuZwotaWYgWyAiJF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRo ZW4KLQlfZW5hYmxlZF9wcm9qZWN0cys9IjtvcGVubXAiCi0Jc3VicGFja2FnZXMrPSIgbGlib21w IGxpYm9tcC1kZXZlbCIKLQkjIGJlY2F1c2Ugb2YgY21ha2Ugbm9uc2Vuc2UgcmVmZXJlbmNpbmcg bGlib21wdGFyZ2V0LnNvLioKLQlkZXBlbmRzKz0iIGxpYm9tcD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKLWZpCi0KLXN1YnBhY2thZ2VzKz0iIGNsYW5nIGNsYW5nLWFuYWx5emVyIGxpYmNsYW5n IGxpYmNsYW5nLWNwcAotIGxsdm0tbGlidW53aW5kIGxsdm0tbGlidW53aW5kLWRldmVsIGxpYmN4 eCBsaWJjeHgtZGV2ZWwKLSBsaWJjeHhhYmkgbGliY3h4YWJpLWRldmVsIGxpYmxsdm0xMiIKLQot aWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JIyBYWFggZmFpbHMgdG8gY3Jv c3MgY29tcGlsZSBkdWUgdG8gcHl0aG9uCi0JX2VuYWJsZWRfcHJvamVjdHMrPSI7bGxkYiIKLQlz dWJwYWNrYWdlcys9IiBsbGRiIGxsZGItZGV2ZWwiCi1maQotCi1zdWJwYWNrYWdlcys9IiBsbGQg bGxkLWRldmVsIgotCi1jb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7 X2VuYWJsZWRfcHJvamVjdHN9IgotCiBwb3N0X3BhdGNoKCkgewotCWlmIFsgIiRfbGxkYl9lbmFi bGUiID0gInllcyIgXTsgdGhlbgotCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgotCQkJdnNlZCAtaSAnc3xfX3B0cmFjZV9yZXF1ZXN0fGludHxnJyBcCi0JCQkJJHt3 cmtzcmN9L2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9OYXRpdmVQcm9jZXNzTGlu dXguY3BwCi0JCWZpCi0JCSMgZGlzYWJsZSBkb2NzIGZvciBsbGRiIGFzIHRoZXkgZmFpbCB0byBn ZW5lcmF0ZQotCQl2c2VkIC1pICcvYWRkX3N1YmRpcmVjdG9yeShkb2NzKS9kJyBcCi0JCQkke3dy a3NyY30vbGxkYi9DTWFrZUxpc3RzLnR4dAotCWZpCi0KIAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3Mg Zm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KIAljcCAkWEJQU19DT01NT05ESVIvZW52aXJv bm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCiAJCSR7d3Jrc3JjfS9sbHZt L2NtYWtlCi0KLQkjIGZpeCBsaW5rZXIgZmFpbHVyZXMgb24gc29tZSBhcmNocwotCXZzZWQgLWkg J3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjX3MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX1Nf TElCIE9OKSwnIFwKLQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UK LQl2c2VkIC1pICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjYyAuKixzZXQoTElCQ1hYQUJJX0hB U19HQ0NfTElCIE9OKSwnIFwKLQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXgu Y21ha2UKLQotCSMgbmVlZCBsaWJzc3Bfbm9uc2hhcmVkIG9uIHNvbWUgbXVzbCBwbGF0Zm9ybXMg KGJlY2F1c2Ugb2Ygbm9kZWZhdWx0bGlicykKLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQkJcHBjNjQqKSA7OwotCQlwcGMqLW11c2x8aTY4Ni1tdXNsfG1pcHMqLW11c2wpCi0JCQl2 c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJl ZCksJyBcCi0JCQkJJHt3cmtzcmN9L2xpYnVud2luZC9zcmMvQ01ha2VMaXN0cy50eHQKLQkJCXZz ZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVk KSwnIFwKLQkJCQkke3dya3NyY30vbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAotCQkJdnNl ZCAtaSAncywjc3NwLCwnICR7d3Jrc3JjfS9saWJjeHgvQ01ha2VMaXN0cy50eHQKLQkJCTs7Ci0J ZXNhYwotCi0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXg4Nl82NC1tdXNsKSAj IHNvbWUgc2FuaXRpemVyIGN1cnJlbnRseSBvbmx5IG9uIHg4Nl82NCBzdHVmZiBuZWVkcyBiYWNr dHJhY2UKLQkJCXZzZWQgLWkgJ3MsIyBTZXQgY29tbW9uIGxpbmsgZmxhZ3MuLGxpc3QoQVBQRU5E IFNBTklUSVpFUl9DT01NT05fTElOS19MSUJTIGV4ZWNpbmZvKSwnIFwKLQkJCQkke3dya3NyY30v Y29tcGlsZXItcnQvQ01ha2VMaXN0cy50eHQKLQkJCTs7Ci0JCWFybSotbXVzbHxpNjg2LW11c2wp ICMgc2FuaXRpemVyIGNvZGUgaXMgYnJva2VuIHNpbmNlIGl0IGR1cGxpY2F0ZXMgc29tZSBsaWJj IGJpdHMKLQkJCXZzZWQgLWkgJ3Mvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9O IFRSVUUpL3NldChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBGQUxTRSkvJyBcCi0J CQkJJHt3cmtzcmN9L2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCQkJOzsKLQll c2FjCiB9CiAKIHByZV9jb25maWd1cmUoKSB7CkBAIC0xNTgsMTAgKzczLDggQEAgcHJlX2NvbmZp Z3VyZSgpIHsKIAkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIFwKIAkJ CS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KIAkJbWFrZSAke21h a2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgotCQltYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2Ns YW5nL3V0aWxzL1RhYmxlR2VuCiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBtYWtl ICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KIAkJY29uZmlndXJlX2Fy Z3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsdm0t dGJsZ2VuIgotCQljb25maWd1cmVfYXJncys9IiAtRENMQU5HX1RBQkxFR0VOPSR7d3Jrc3JjfS9s bHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIKIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAi eWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dya3NyY30vbGx2 bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKIAkJY2QgLi4vLi4KIAlmaQpAQCAtMjAyLDIx OCArMTE1LDYgQEAgZG9faW5zdGFsbCgpIHsKIAlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K IAkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhvc3QKIAlmaQotCi0JIyBJ bnN0YWxsIGxpYmN4eGFiaSBoZWFkZXJzCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9p bmNsdWRlL19fY3h4YWJpX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jr c3JjfS9saWJjeHhhYmkvaW5jbHVkZS9jeHhhYmkuaCA2NDQgdXNyL2luY2x1ZGUKLQotCSMgSW5z dGFsbCBsaWJ1bndpbmQgaGVhZGVycwotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5j bHVkZS9fX2xpYnVud2luZF9jb25maWcuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dy a3NyY30vbGlidW53aW5kL2luY2x1ZGUvbGlidW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmlu c3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL3Vud2luZC5oIDY0NCB1c3IvaW5jbHVk ZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9tYWNoLW8vY29tcGFjdF91 bndpbmRfZW5jb2RpbmcuaCBcCi0JCTY0NCB1c3IvaW5jbHVkZS9tYWNoLW8KLX0KLQotY2xhbmct YW5hbHl6ZXJfcGFja2FnZSgpIHsKLQlweWNvbXBpbGVfZGlycz0idXNyL3NoYXJlL3NjYW4tdmll dyIKLQlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMgcGVybCIK LQlzaG9ydF9kZXNjKz0iIC0gQSBzb3VyY2UgY29kZSBhbmFseXNpcyBmcmFtZXdvcmsiCi0JaG9t ZXBhZ2U9Imh0dHBzOi8vY2xhbmctYW5hbHl6ZXIubGx2bS5vcmcvIgotCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvc2Nhbi1idWlsZC4xCi0JCXZtb3ZlICIvdXNy L2Jpbi9zY2FuLSoiCi0JCXZtb3ZlICIvdXNyL3NoYXJlL3NjYW4tKiIKLQkJdm1vdmUgIi91c3Iv bGliZXhlYy8qYW5hbHl6ZXIiCi0JfQotfQotCi1jbGFuZy10b29scy1leHRyYV9wYWNrYWdlKCkg ewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSBweXRob24zIgotCXNob3J0X2Rlc2MrPSIgLSBFeHRyYSBDbGFuZyB0b29scyIKLQlob21l cGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9leHRyYS8iCi0JcGtnX2luc3RhbGwoKSB7Ci0J CXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLXRpZHkKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1hcHBs eS1yZXBsYWNlbWVudHMKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1xdWVyeQotCQl2bW92ZSB1c3Iv YmluL2NsYW5nLXJlbmFtZQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXRpZHkKLQkJdm1vdmUgdXNy L2Jpbi9kaWFndG9vbAotCQl2bW92ZSB1c3IvYmluL2ZpbmQtYWxsLXN5bWJvbHMKLQkJdm1vdmUg dXNyL2Jpbi9obWFwdG9vbAotCQl2bW92ZSB1c3IvYmluL21vZHVsYXJpemUKLQkJdm1vdmUgdXNy L2Jpbi9wcC10cmFjZQotCQl2bW92ZSB1c3IvYmluL3NhbmNvdgotCQl2bW92ZSAidXNyL2xpYi9s aWJjbGFuZ0FwcGx5UmVwbGFjZW1lbnRzKiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdRdWVy eSoiCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nVGlkeSoiCi0JCXZtb3ZlICJ1c3Ivc2hhcmUv Y2xhbmcvKnRpZHkqIgotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nLXRvb2xzCi0JCXZtb3Zl IHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQotCQl2bW92ZSB1c3Ivc2hhcmUv bWFuL21hbjEvZGlhZ3Rvb2wuMQotCX0KLX0KLQotY2xhbmdfcGFja2FnZSgpIHsKLQlsaWIzMmRp c2FibGVkPXllcwotCWRlcGVuZHM9ImxpYnN0ZGMrKy1kZXZlbCBsaWJnY2MtZGV2ZWwgIGJpbnV0 aWxzICR7WEJQU19UQVJHRVRfTElCQ30tZGV2ZWwKLQkgbGliY2xhbmctJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKLQlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCi0J aG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSB1c3IvaW5jbHVkZS9jbGFuZwotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCi0JCXZt b3ZlICJ1c3IvYmluLypjbGFuZyoiCi0JCXZtb3ZlIHVzci9iaW4vYy1pbmRleC10ZXN0Ci0JCXZt b3ZlIHVzci9saWIvY2xhbmcKLQkJdm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZwotCQl2bW92ZSAi dXNyL2xpYi9saWJjbGFuZyouYSIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgotCQl2 bW92ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFuZwotCQl2bW92 ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQotCX0KLX0KLQotbGliY2xhbmdfcGFja2FnZSgp IHsKLQlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBydW50aW1lIGxpYnJhcnkiCi0JcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLnNvLioiCi0JfQotfQotCi1saWJj bGFuZy1jcHBfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBydW50aW1l IGxpYnJhcnkgKEMrKyBpbnRlcmZhY2UpIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNy L2xpYi9saWJjbGFuZy1jcHAuc28uKiIKLQl9Ci19Ci0KLWxsZF9wYWNrYWdlKCkgewotCWxpYjMy ZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKLQlob21lcGFnZT0iaHR0cHM6 Ly9sbGQubGx2bS5vcmciCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vbGxkKgot CQl2bW92ZSB1c3IvYmluL3dhc20tbGQKLQkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCi0JCXZtb3Zl IHVzci9iaW4vbGQ2NC5sbGQqCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGxkCi0JfQotfQotCi1s bGQtZGV2ZWxfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCXNob3J0X2Rlc2MrPSIg LSBsaW5rZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2 bS5vcmciCi0JZGVwZW5kcz0ibGxkPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0 YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGQKLQkJdm1vdmUgdXNyL2xpYi9jbWFrZS9s bGQKLQkJdm1vdmUgInVzci9saWIvbGlibGxkKmEiCi0JfQotfQotCi1sbGRiX3BhY2thZ2UoKSB7 Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzKz0iIHB5dGhvbjMtc2l4IgotCXNob3J0X2Rl c2MrPSIgLSBMTERCIGRlYnVnZ2VyIgotCWhvbWVwYWdlPSJodHRwczovL2xsZGIubGx2bS5vcmcv IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvYmluLypsbGRiKgotCQl2bW92ZSB1c3Iv bGliL2xpYmxsZGIqc28uKgotCQl2bW92ZSAvdXNyL2xpYi9weXRob24qCi0JfQotfQotCi1sbGRi LWRldmVsX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJsbGRiPj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2VyIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRl L2xsZGIKLQkJdm1vdmUgInVzci9saWIvbGlibGxkYiouc28iCi0JfQotfQotCi1sbHZtLWxpYnVu d2luZF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQiCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYnVud2luZC5zby4qIgotCX0KLX0KLQotbGx2bS1s aWJ1bndpbmQtZGV2ZWxfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gbGlidW53aW5kIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0ibGx2bS1saWJ1bndpbmQ+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCi0JY29uZmxpY3RzPSJsaWJ1bndpbmQtZGV2ZWw+PTAiCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLnNvCi0JCXZtb3ZlIHVzci9saWIvbGli dW53aW5kLmEKLQkJdm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgotCQl2bW92ZSB1c3IvaW5j bHVkZS9tYWNoLW8KLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKLQl9Ci19Ci0KLWxp YmN4eGFiaV9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBm b3IgbGliYysrIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKythYmku c28uKiIKLQl9Ci19Ci0KLWxpYmN4eGFiaS1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2Mr PSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J ZGVwZW5kcz0ibGliY3h4YWJpPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMr K2FiaS5hCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS8qY3h4YWJpKiIKLQl9Ci19Ci0KLWxpYmN4eF9w YWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliYysrLnNvLioiCi0JfQotfQotCi1saWJj eHgtZGV2ZWxfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gQysrIHN0YW5kYXJkIGxpYnJh cnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJjeHg+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrLnNvCi0J CXZtb3ZlIHVzci9saWIvbGliYysrLmEKLQkJdm1vdmUgdXNyL2xpYi9saWJjKytleHBlcmltZW50 YWwuYQotCQl2bW92ZSB1c3IvaW5jbHVkZS9jKysKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJj eHgKLQl9Ci19Ci0KLWxpYm9tcF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBP cGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGli L2xpYm9tcC5zbwotCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCi0JCXZt b3ZlIHVzci9saWIvbGliYXJjaGVyLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28uKiIK LQl9Ci19Ci0KLWxpYm9tcC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDbGFu ZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0i bGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92 ZSAidXNyL2xpYi9saWJvbXAqLnNvIgotCQl2bW92ZSAidXNyL2xpYi9saWJhcmNoZXIqIgotCQl2 bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgotCQl2bW92ZSAidXNyL2xpYi9jbGFuZy8ke3ZlcnNp b259L2luY2x1ZGUvb21wKi5oIgotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvbGx2bW9wZW5t cC4xCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCi0JfQogfQogCiBsaWJsbHZtMTJfcGFj a2FnZSgpIHsKCkZyb20gNjU1OThmNTJlOTAwOTk2N2ZiYTExNzE4ODdjOTU1N2Q1YTc3ZjVhNSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1B OT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0 LCAxIEphbiAyMDIyIDE1OjU3OjI1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yMV0gZ25vbWUt YnVpbGRlcjogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci90 ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCAyNmNmNzY4YzM5MWEuLjE3Yjc5ZDBjY2Fh MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIKIHZlcnNpb249My40 MC4yCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVs cGVyPXFlbXUKIGNvbmZpZ3VyZV9hcmdzPSItRGhlbHA9dHJ1ZSAtRG5ldHdvcmtfdGVzdHM9ZmFs c2UiCgpGcm9tIGZmNzNhOTg0NDA4NTYzMTE0ODgwZDkyMWMwZGFjNWVlMjBjNzk0MjEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBC ZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBK YW4gMjAyMiAxNTo1Nzo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjFdIHJ0YWdzOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcnRhZ3MvdGVtcGxhdGUgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IGI0OTZh MWIwZTcyMS4uOWIxNjFlNjkwZDc2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdydGFncycKIHBrZ25hbWU9cnRhZ3MKIHZlcnNpb249Mi4zOAotcmV2aXNpb249 NQorcmV2aXNpb249NgogYnVpbGRfc3R5bGU9Y21ha2UKICMgRG9uJ3QgcnVuIHRlc3RzIGluIGRv X2luc3RhbGwsIHBsZWFzZS4KIGNvbmZpZ3VyZV9hcmdzPSItRFNLSVBfQ1RFU1Q9VFJVRSIKCkZy b20gZTM3NTM1YTZiODk4MDkxNDljYmE2MTYwZDJhMjIyMTQ4MWRmMWQ0OCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/ PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIy IDE1OjU4OjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yMV0gcXQ1OiByZWJ1aWxkIGZvciBs bHZtMTMKCi0tLQogc3JjcGtncy9xdDUvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0NS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCmluZGV4IGMxZDgyMmVmMDIxZC4uOGJhZTll OTQyODdhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0NS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0 NS90ZW1wbGF0ZQpAQCAtMyw3ICszLDcgQEAgcGtnbmFtZT1xdDUKIHZlcnNpb249NS4xNS4zKzIw MjExMDAxCiAjIGNvbW1pdCBmY2NhODJjYTQwYTVkOGEwMmE0ZGRkOTA4NDZkMDcwZjJjNThjZmFk CiAjIGJhc2UgcmVwbzogaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9xdC9xdDUKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1ldGEKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2Ug Y2xhbmcgZmxleCBwZXJsIGdsaWItZGV2ZWwgcGtnLWNvbmZpZwogIHB5dGhvbiByZTJjIHJ1Ynkg d2hpY2giCgpGcm9tIDdhMzgzZGZjOTU2OWRiYWQ1N2Q1NDk2YWI1N2U4ZGI2MDk2MTAzOWMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9 MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwg MSBKYW4gMjAyMiAxNTo1ODoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIGJwZnRyYWNl OiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2JwZnRyYWNlL3RlbXBs YXRlCmluZGV4IDI4YWIzYzYyNjM5OS4uZWIyNDgwZDIyMzBlIDEwMDY0NAotLS0gYS9zcmNwa2dz L2JwZnRyYWNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9YnBmdHJh Y2UKIHZlcnNpb249MC4xNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0ieDg2XzY0 KiBhYXJjaDY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1E QlVJTERfVEVTVElORz1PRkYiICAjIG5lZWRzIHJvb3QgdG8gcnVuCgpGcm9tIDg3YzE0NTg0Yjc5 YjQ4M2I5MTkzNDQwZmIxMjQ5ZTlhODA0NDNhZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxl c3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1ODozOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDgvMjFdIGNsYXp5OiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQog c3JjcGtncy9jbGF6eS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUg Yi9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCmluZGV4IDYwNjM4NDQ3MGU5OC4uODU5OTIzZTM5NWVi IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2xhenkv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjbGF6eScKIHBr Z25hbWU9Y2xhenkKIHZlcnNpb249MS4xMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1xZW11CiBob3N0bWFrZWRlcGVuZHM9Imxsdm0iCgpG cm9tIDk4MTZhMzM4Mzc5NWU4NTEwNDU2MDcyZmQxOTZkYjBhM2Q1M2E4ODAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25p Pz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAy MiAxNTo1ODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjFdIGNjbHM6IHJlYnVpbGQgZm9y IGxsdm0xMwoKLS0tCiBzcmNwa2dzL2NjbHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nj bHMvdGVtcGxhdGUgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKaW5kZXggZmJiN2M2ODQ3YmMxLi40 MGFiYTNiNTViZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2NjbHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj Y2xzJwogcGtnbmFtZT1jY2xzCiB2ZXJzaW9uPTAuMjAyMTAzMzAKLXJldmlzaW9uPTIKK3Jldmlz aW9uPTMKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nLXRvb2xzLWV4 dHJhIgogbWFrZWRlcGVuZHM9Imxsdm0gbmN1cnNlcy1kZXZlbCByYXBpZGpzb24gemxpYi1kZXZl bCBjbGFuZy10b29scy1leHRyYSIKCkZyb20gMTg0OGI5NDdlNWU0MDQ3YTE1ZTBiNzZiYTFkNWY1 MjQ4OWYzM2IyYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlz PTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9y Zz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU5OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAx MC8yMV0gaW5jbHVkZS13aGF0LXlvdS11c2U6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNw a2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv aW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3Ut dXNlL3RlbXBsYXRlCmluZGV4IGIxM2JiN2VlNTZhZi4uYjRiMTY3NDAxZWJlIDEwMDY0NAotLS0g YS9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5j bHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdpbmNsdWRlLXdoYXQteW91LXVzZScKIHBrZ25hbWU9aW5jbHVkZS13aGF0LXlvdS11 c2UKLXZlcnNpb249MC4xNgordmVyc2lvbj0wLjE3CiByZXZpc2lvbj0xCiB3cmtzcmM9IiR7cGtn bmFtZX0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJM ZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+IgogbGljZW5zZT0iTkNTQSIKIGhvbWVwYWdl PSJodHRwczovL2luY2x1ZGUtd2hhdC15b3UtdXNlLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8v aW5jbHVkZS13aGF0LXlvdS11c2Uub3JnL2Rvd25sb2Fkcy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u c3JjLnRhci5neiIKLWNoZWNrc3VtPThkNmZjOWIyNTUzNDNiYzFlNWVjNDU5ZTM5NTEyZGYxZDUx YzYwZTAzNTYyOTg1ZTAwNzYwMzYxMTlmZjVhMWMKK2NoZWNrc3VtPWVjYTdjMDRmOGI0MTZiNjM4 NWVkMDBlMzM2NjlhN2ZhNDY5M2NkMjZjYjcyYjUyMmNkZTU1ODgyOGViMGM2NjUKIHB5dGhvbl92 ZXJzaW9uPTMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSBiNzVkMzA0ZTFmODA4ZDkyZjcyYWE3 N2VhMTIyNTdjZTUxYzUzNjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRl c3RyZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTY6MDE6MjEgKzAyMDAKU3ViamVjdDog W1BBVENIIDExLzIxXSBjb2RlbGl0ZTogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3Mv Y29kZWxpdGUvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIGIv c3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQppbmRleCAzYTk5M2EyYzBjZmIuLjI0ZTJjODc5ZGQ0 NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nv ZGVsaXRlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY29k ZWxpdGUnCiBwa2duYW1lPWNvZGVsaXRlCiB2ZXJzaW9uPTE1LjAuNgotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1jbWFrZS13eFdpZGdldHMt Z3RrMwogY29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9QQ0g9MCAtRFdJVEhfV1hfQ09ORklHPXd4LWNv bmZpZy1ndGszCgpGcm9tIDg4MzBmNDkxMjNjYjQ2NzAxOTY3MGJjNGEyNGI5ZDY3NGMyMzk1YWUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9 QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNh dCwgMSBKYW4gMjAyMiAxNjoyMjo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjFdIGtkZXZl bG9wOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUgYi9zcmNwa2dzL2tkZXZlbG9wL3Rl bXBsYXRlCmluZGV4IDNhZGM4NDI3MzYwNy4uMTY2MGIzY2U3MmNhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2tkZXZlbG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdrZGV2ZWxvcCcKIHBrZ25hbWU9a2Rl dmVsb3AKIHZlcnNpb249NS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxl PWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVw ZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMgcXQ1LXRv b2xzCgpGcm9tIGRhMDY3YjU2NDQ2M2U3YzVmYzc3MjFlNTJhNmFmYWI5MWJjNGMzY2UgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBC ZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBK YW4gMjAyMiAxNjoyMzowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjFdIGp1Q2krKzogcmVi dWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9qdUNpKysvdGVtcGxhdGUgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQppbmRleCAx YTc2MDRiNDRhMDAuLjUxMDMzMjRkZWMyMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9qdUNpKysvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9qdUNpKysvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdqdUNpKysnCiBwa2duYW1lPWp1Q2krKwogdmVyc2lvbj0xLjYuMgot cmV2aXNpb249MgorcmV2aXNpb249MwogX2xpYmNsYW5nbW1fY29tbWl0PSJiMzQyZjRkZDZkZTRm ZTUwOWE2OTJhNGI0ZmNmYzdlMjRhYWU5NTkwIgogX3RpbnlfY29tbWl0PSJjOWM4YmY4MTBkZGFk OGNkMTc4ODJiOWE5ZWU2MjhhNjkwZTc3OWY1Igogd3Jrc3JjPSJqdWNpcHAtdiR7dmVyc2lvbn0i CgpGcm9tIDgxZTYzMDgzZDkyYTI3YjBlZDhjMTk3YjRkMTAyMWZhM2Q1YWI3OTEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0 b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4g MjAyMiAxODozMDowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjFdIGxsdm0xMzogZml4IGxp Ym9tcCogcGFja2FnZXMKCi0tLQogc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQppbmRl eCAwOGQ4NDc0NzI1MjUuLmJmYzkxMDU2ZDI3NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdsbHZtMTMnCiBwa2duYW1lPWxsdm0xMwogdmVyc2lvbj0xMy4w LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIHdya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lv bn0uc3JjIgogYnVpbGRfd3Jrc3JjPWxsdm0KIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0zOTcsNiAr Mzk3LDcgQEAgbGlib21wX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5N UCBzdXBwb3J0IGxpYnJhcnkiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9saWIvbGli b21wLnNvCisJCXZtb3ZlIHVzci9saWIvbGlib21wdGFyZ2V0LnNvCiAJCXZtb3ZlICJ1c3IvbGli L2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKIAkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28KIAl9 CkBAIC00MDYsNyArNDA3LDYgQEAgbGlib21wLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIK IAlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJcGtnX2luc3RhbGwo KSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28iCiAJCXZtb3ZlICJ1c3IvbGliL2xpYmFy Y2hlcioiCiAJCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCiAJCXZtb3ZlICJ1c3IvbGliL2Ns YW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCgpGcm9tIGFjMGY2ZjFiNjY2NjA0ZTI1OGJi ZmI0ZTUxMTI1OWZhZmE1OWFjOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3Bl ZGVzdHJlcy5vcmc+CkRhdGU6IFN1biwgMTYgSmFuIDIwMjIgMTQ6MzM6NTYgKzAyMDAKU3ViamVj dDogW1BBVENIIDE1LzIxXSBjaHJvbWl1bTogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3Br Z3MvY2hyb21pdW0vdGVtcGxhdGUgfCA4ICstLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggNTc2OTQ3YmE0NGZkLi5l YmQyMDkzMzUwYTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAtMjAsNyArMjAsNyBAQCBkZXNjX29wdGlvbl9k ZWJ1Zz0iQnVpbGQgd2l0aCBkZWJ1ZyBzeW1ib2xzIgogZGVzY19vcHRpb25fanNfb3B0aW1pemU9 Ik9wdGltaXplIHRoZSBKUyB1c2VkIGZvciBDaHJvbWl1bSdzIFVJIgogZGVzY19vcHRpb25fcGlw ZXdpcmU9IkVuYWJsZSBzdXBwb3J0IGZvciBzY3JlZW4gc2hhcmluZyBmb3IgV2ViUlRDIHZpYSBQ aXBlV2lyZSIKIAotaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBs bHZtMTIiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9k ZWpzIGh3aWRzCitob3N0bWFrZWRlcGVuZHM9IiQodm9wdF9pZiBjbGFuZyAiY2xhbmcgbGxkIGxs dm0xMyIpIHB5dGhvbiBweXRob24zIHBrZ2NvbmYgcGVybCBncGVyZiBiaXNvbiBuaW5qYSBub2Rl anMgaHdpZHMKICBsaWJhdG9taWMtZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZlbCAk KHZvcHRfaWYganNfb3B0aW1pemUgb3Blbmpkaykgd2F5bGFuZC1kZXZlbCBsaWJlcG94eS1kZXZl bCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3Mt ZGV2ZWwgcGNpdXRpbHMtZGV2ZWwKICBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25v bWUta2V5cmluZy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxzLWRldmVsCkBAIC0yNjcsMTIgKzI2 Nyw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJJ2Rpc2FibGVfZmllbGR0cmlhbF90ZXN0aW5nX2Nv bmZpZz10cnVlJwogCiAJCSdpc19vZmZpY2lhbF9idWlsZD10cnVlJwotCi0JCSMgc2VnZmF1bHRz IHdpdGggbGx2bS0xMi4wLjEKLQkJJ2lzX2NmaT1mYWxzZScKLQkJJ3VzZV90aGluX2x0bz1mYWxz ZScKLQkJJ3VzZV9jZmlfaWNhbGw9ZmFsc2UnCi0JCSdjaHJvbWVfcGdvX3BoYXNlPTAnCiAJKQog CiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIGNhYWUyOWU4MTEyMmU5NGFiOWVm ZDY2OTBiNWU1MDMxM2EwNGMwZmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3Bl ZGVzdHJlcy5vcmc+CkRhdGU6IFN1biwgMTYgSmFuIDIwMjIgMTQ6Mzk6MDQgKzAyMDAKU3ViamVj dDogW1BBVENIIDE2LzIxXSBsbHZtMTI6IHJlbW92ZQoKLS0tCiBzcmNwa2dzL2xsdm0xMi9JTlNU QUxMLm1zZyAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2xsdm0xMi9maWxlcy9sbHZt LUNvbmZpZy1sbHZtLWNvbmZpZy5oICAgIHwgICA5IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAgNTcgLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoICAgfCAgMzAgLS0tLS0KIC4uLi9wYXRjaGVzL2xs dm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAxMSAtLQogLi4uL3BhdGNoZXMvbGx2 bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoICAgICAgIHwgIDE4IC0tLQogLi4uL2xsdm0xMi9wYXRj aGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggIHwgIDM2IC0tLS0tLQogLi4uL3BhdGNoZXMv bGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoICAgIHwgIDI1IC0tLS0KIHNyY3BrZ3MvbGx2 bTEyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDEyMCArLS0tLS0tLS0tLS0tLS0t LS0KIHNyY3BrZ3MvbGx2bTEyL3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyAt CiAxMCBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMwNSBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9JTlNUQUxMLm1zZwogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAyLW11 c2wtcHBjNjQtZWxmdjIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDYt YWFyY2g2NC1tZl9leGVjLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIv dXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cgYi9zcmNwa2dz L2xsdm0xMi9JTlNUQUxMLm1zZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjAwNGFjZjdiNTMwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL0lOU1RB TEwubXNnCkBAIC0wLDAgKzEgQEAKK2xsdm0xMiBpcyBubyBsb25nZXIgcHJvdmlkZWQgYnkgVm9p ZCBMaW51eApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvZmlsZXMvbGx2bS1Db25maWctbGx2 bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTEyL2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmln LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmYTA4YzliZTY5Ni4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgK KysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+ Ci0KLSNpZiBfX1dPUkRTSVpFID09IDMyCi0jaW5jbHVkZSAibGx2bS1jb25maWctMzIuaCIKLSNl bGlmIF9fV09SRFNJWkUgPT0gNjQKLSNpbmNsdWRlICJsbHZtLWNvbmZpZy02NC5oIgotI2Vsc2UK LSNlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDEtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJh M2Y4ZDYyODEzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZt LTAwMS1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSBmYWNh M2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEzOGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgotRGF0ZTog VHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNs Ci0KLS0tLQotIGluY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSAr KysrKysrKysKLSBsaWIvU3VwcG9ydC9EeW5hbWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIg Ky0KLSBsaWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0t Ci0gdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKLSA1IGZp bGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCi1pbmRleCAzNGE4YTFlMy4uMTIxNGVj ZTUgMTAwNjQ0Ci0tLS0gYS9sbHZtL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCi0rKysgYi9sbHZtL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5m by5oCi1AQCAtMTgsNiArMTgsMTUgQEAKLSAjaW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5o IgotICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIKLSAKLSsjdW5kZWYgZm9wZW42NAotKyN1bmRlZiBm c2Vla282NAotKyN1bmRlZiBmc3RhdDY0Ci0rI3VuZGVmIGZzdGF0dmZzNjQKLSsjdW5kZWYgZnRl bGxvNjQKLSsjdW5kZWYgbHN0YXQ2NAotKyN1bmRlZiBzdGF0NjQKLSsjdW5kZWYgdG1wZmlsZTY0 Ci0rCi0gbmFtZXNwYWNlIGxsdm0gewotIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJh eVJlZjsKLSBjbGFzcyBUcmlwbGU7Ci1kaWZmIC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5h bWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYwotaW5k ZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0NAotLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4 L0R5bmFtaWNMaWJyYXJ5LmluYwotKysrIGIvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNM aWJyYXJ5LmluYwotQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29u c3QgY2hhciogU3ltYm9sTmFtZSkgewotIAotIC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRk cmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxpY2l0IHN5bWJvbAotICNkZWZpbmUgRVhQTElDSVRf U1lNQk9MKFNZTSkgXAotLSAgIGlmICghc3RyY21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4g JlNZTQotKyAgIGlmICghc3RyY21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikm U1lNCi0gCi0gLy8gVW5kZXIgZ2xpYmMgd2UgaGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0 ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90aAotIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlh YmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyByZXF1aXJlbWVudHMuIFNvLCB3ZQotZGlmZiAtLWdp dCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKLWluZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2 NDQKLS0tLSBhL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKLSsr KyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKLUBAIC0xMjgs NiArMTI4LDcgQEAKLSAKLSAjaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXwotICMgaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQKLSsjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8v IE5PTElOVAotICMgaW5jbHVkZSA8bmV0ZGIuaD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8c3lz L3NvY2tldC5oPiAgLy8gTk9MSU5UCi0gIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElO VApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0 LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0 LWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDcxZDk2NGJkMzcu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAyLW11c2wt cHBjNjQtZWxmdjIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UaGlzIHBh dGNoZXMgTExWTSB0byB1c2UgRUxGdjIgb24gcHBjNjQgdW5jb25kaXRpb25hbGx5IHVubGVzcyBv dmVycmlkZGVuLiBXZQotbmVlZCB0aGlzIGJlY2F1c2UgdW5saWtlIG1vc3QgZGlzdHJvcyB3ZSB1 c2UgRUxGdjIgZm9yIGJvdGggZ2xpYmMgYW5kIG11c2wKLW9uIGJpZyBlbmRpYW4gcHBjNjQuCi0K LWRpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAgYi9s aWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKLWluZGV4IDA2MzQ4MzNlLi5i N2NiYzJlNyAxMDA2NDQKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1h Y2hpbmUuY3BwCi0rKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5l LmNwcAotQEAgLTIyMiw5ICsyMjIsOCBAQCBzdGF0aWMgUFBDVGFyZ2V0TWFjaGluZTo6UFBDQUJJ IGNvbXB1dGVUYXJnZXRBQkkoY29uc3QgVHJpcGxlICZUVCwKLSAKLSAgIHN3aXRjaCAoVFQuZ2V0 QXJjaCgpKSB7Ci0gICBjYXNlIFRyaXBsZTo6cHBjNjRsZToKLS0gICAgcmV0dXJuIFBQQ1Rhcmdl dE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Ci0gICBjYXNlIFRyaXBsZTo6cHBjNjQ6Ci0tICAgIHJl dHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYxOwotKyAgICByZXR1cm4gUFBDVGFy Z2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKLSAgIGRlZmF1bHQ6Ci0gICAgIHJldHVybiBQUENU YXJnZXRNYWNoaW5lOjpQUENfQUJJX1VOS05PV047Ci0gICB9Ci1kaWZmIC0tZ2l0IGEvdGVzdC9D b2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbCBiL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3Bw YzY0LWVsZi1hYmkubGwKLWluZGV4IDhiMWNmNmI1Li4yOTZhMmFmYSAxMDA2NDQKLS0tLSBhL2xs dm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAotKysrIGIvbGx2bS90ZXN0 L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCi1AQCAtMSw0ICsxLDUgQEAKLS07IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCi0r OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2 MgotKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11 bmtub3duLWxpbnV4LW11c2wgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNL LUVMRnYyCi0gOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJw YzY0LXVua25vd24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYxIDwgJXMgfCBGaWxlQ2hlY2sg JXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQotIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5l aW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBl bGZ2MiA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKLSA7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjRsZS11bmtub3du LWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBs dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjVkMTU5NzQzNzVkLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2Vy UEMvUFBDU3VidGFyZ2V0LmNwcAotQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFBQQ1N1YnRhcmdl dDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1JlZiBDUFUsIFN0cmluZ1JlZiBGUykgewot IAotICAgaWYgKChUYXJnZXRUcmlwbGUuaXNPU0ZyZWVCU0QoKSAmJiBUYXJnZXRUcmlwbGUuZ2V0 T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKLSAgICAgICBUYXJnZXRUcmlwbGUuaXNPU05ldEJT RCgpIHx8IFRhcmdldFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8Ci0tICAgICAgVGFyZ2V0VHJpcGxl LmlzTXVzbCgpKQotKyAgICAgIGlzVGFyZ2V0TGludXgoKSkKLSAgICAgU2VjdXJlUGx0ID0gdHJ1 ZTsKLSAKLSAgIGlmIChIYXNTUEUgJiYgSXNQUEM2NCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDUxZDBlNGIzMWIzMi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTggKzAsMCBAQAotVGhpcyBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUgdGhlIG9wdGltaXphdGlvbiBs ZXZlbCBhcyBub3QgYWxsIHBsYXRmb3JtcyBjYW4KLWRlYWwgd2l0aCAtTzMuCi0KLS0tLSBhL2xs dm0vQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xsdm0vQ01ha2VMaXN0cy50eHQKLUBAIC05MTgsNiAr OTE4LDEyIEBAIGlmKCBNSU5HVyBBTkQgTk9UICIke0NNQUtFX0NYWF9DT01QSUxFUl9JRH0iIE1B VENIRVMgIkNsYW5nIiApCi0gICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NY WF9GTEFHU19SRUxFQVNFICItTzMiICItTzIiKQotIGVuZGlmKCkKLSAKLStzZXQoVk9JRF9DWFhf T1BUX0ZMQUdTICIiIENBQ0hFIFNUUklORyAiT3B0aW1pemF0aW9uIGxldmVsIHRvIHVzZSIpCi0r Ci0raWYgKE5PVCBWT0lEX0NYWF9PUFRfRkxBR1MgU1RSRVFVQUwgIiIpCi0rICAgIGxsdm1fcmVw bGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgIi1PMyIgIiR7Vk9J RF9DWFhfT1BUX0ZMQUdTfSIpCi0rZW5kaWYoKQotKwotICMgUHV0IHRoaXMgYmVmb3JlIHRibGdl bi4gRWxzZSB3ZSBoYXZlIGEgY2lyY3VsYXIgZGVwZW5kZW5jZS4KLSBhZGRfc3ViZGlyZWN0b3J5 KGxpYi9EZW1hbmdsZSkKLSBhZGRfc3ViZGlyZWN0b3J5KGxpYi9TdXBwb3J0KQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBkMzMyNjg3YjlkOTIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwzNiArMCwwIEBACi1Gcm9tIGYzZGJkZDQ5YzA2YmZhZmMxZDYxMzgwOTRjZjQyODg5 YzE0ZDM4YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW11ZWwgSG9sbGFuZCA8 c2FtdWVsQHNob2xsYW5kLm9yZz4KLURhdGU6IFN1biwgMyBOb3YgMjAxOSAxMDo1NzoyNyAtMDYw MAotU3ViamVjdDogW1BBVENIXSBbTExWTV1bUG93ZXJQQ10gQXNzdW1lIEJpZ1BJQyBpZiBubyBQ SUMgbGV2ZWwgaXMgc3BlY2lmaWVkCi0KLS0tLQotIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQ Q0FzbVByaW50ZXIuY3BwICB8IDIgKy0KLSBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0lu c3RMb3dlci5jcHAgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJp bnRlci5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKLWluZGV4IGNj ZTIxZjMyLi44N2NhNWY5YiAxMDA2NDQKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQ Q0FzbVByaW50ZXIuY3BwCi0rKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21Qcmlu dGVyLmNwcAotQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFBQQ0FzbVByaW50ZXI6OkVtaXRUbHND YWxsKGNvbnN0IE1hY2hpbmVJbnN0ciAqTUksCi0gCi0gICAvLyBBZGQgMzI3Njggb2Zmc2V0IHRv IHRoZSBzeW1ib2wgc28gd2UgZm9sbG93IHVwIHRoZSBsYXRlc3QgR09UL1BMVCBBQkkuCi0gICBp ZiAoS2luZCA9PSBNQ1N5bWJvbFJlZkV4cHI6OlZLX1BMVCAmJiBTdWJ0YXJnZXQtPmlzU2VjdXJl UGx0KCkgJiYKLS0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMpCi0r ICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMpCi0gICAgIFRsc1Jl ZiA9IE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKAotICAgICAgICAgVGxzUmVmLCBNQ0NvbnN0YW50 RXhwcjo6Y3JlYXRlKDMyNzY4LCBPdXRDb250ZXh0KSwgT3V0Q29udGV4dCk7Ci0gICBjb25zdCBN YWNoaW5lT3BlcmFuZCAmTU8gPSBNSS0+Z2V0T3BlcmFuZCgyKTsKLWRpZmYgLS1naXQgYS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQ Q01DSW5zdExvd2VyLmNwcAotaW5kZXggNWNjMTgwZDcuLmE1YjAyNTY1IDEwMDY0NAotLS0tIGEv bGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCi0rKysgYi9sbHZtL2xp Yi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKLUBAIC0xMTcsNyArMTE3LDcgQEAg c3RhdGljIE1DT3BlcmFuZCBHZXRTeW1ib2xSZWYoY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PLCBj b25zdCBNQ1N5bWJvbCAqU3ltYm9sLAotICAgY29uc3QgTUNFeHByICpFeHByID0gTUNTeW1ib2xS ZWZFeHByOjpjcmVhdGUoU3ltYm9sLCBSZWZLaW5kLCBDdHgpOwotICAgLy8gSWYgLW1zZWN1cmUt cGx0IC1mUElDLCBhZGQgMzI3NjggdG8gc3ltYm9sLgotICAgaWYgKFN1YnRhcmdldC0+aXNTZWN1 cmVQbHQoKSAmJiBUTS5pc1Bvc2l0aW9uSW5kZXBlbmRlbnQoKSAmJgotLSAgICAgIE0tPmdldFBJ Q0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJQyAmJgotKyAgICAgIE0tPmdldFBJQ0xldmVsKCkg IT0gUElDTGV2ZWw6OlNtYWxsUElDICYmCi0gICAgICAgTU8uZ2V0VGFyZ2V0RmxhZ3MoKSA9PSBQ UENJSTo6TU9fUExUKQotICAgICBFeHByID0KLSAgICAgICAgIE1DQmluYXJ5RXhwcjo6Y3JlYXRl QWRkKEV4cHIsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIEN0eCksIEN0eCk7CmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDBhYmQyMTY2NjUuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhl Yy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZpeCBmYWlsdXJlcyBpbiBB bGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC4qIG9uIGFhcmNoNjQ6Ci0KLSAgICBGYWls aW5nIFRlc3RzICg4KToKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVz dHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuQWxsb2NBbmRSZWxlYXNlLzMKLSAg ICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3Rz L01hcHBlZE1lbW9yeVRlc3QuRHVwbGljYXRlTmVhci8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBT dXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkVu YWJsZWRXcml0ZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3Rz L0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Lk11bHRpcGxlQWxsb2NBbmRSZWxlYXNl LzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlv blRlc3RzL01hcHBlZE1lbW9yeVRlc3QuU3VjY2Vzc2l2ZU5lYXIvMwotICAgICAgICBMTFZNLVVu aXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5 VGVzdC5VbmFsaWduZWROZWFyLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBw b3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb05lYXIvMwotICAg ICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMv TWFwcGVkTWVtb3J5VGVzdC5aZXJvU2l6ZU5lYXIvMwotCi1VcHN0cmVhbS1Jc3N1ZTogaHR0cHM6 Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OCNjMTAKLQotLS0tIGEvbGx2bS9s aWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKLSsrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9N ZW1vcnkuaW5jCi1AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgaW50IGdldFBvc2l4UHJvdGVjdGlv bkZsYWdzKHVuc2lnbmVkIEZsYWdzKSB7Ci0gICAgIHJldHVybiBQUk9UX1JFQUQgfCBQUk9UX1dS SVRFIHwgUFJPVF9FWEVDOwotICAgY2FzZSBsbHZtOjpzeXM6Ok1lbW9yeTo6TUZfRVhFQzoKLSAj aWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19QT1dFUlBDX18pIHx8IGRlZmlu ZWQgKF9fcHBjX18pIHx8IFwKLS0gICAgIGRlZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNI X1BQQykpCi0rICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChfQVJDSF9QUEMpIHx8IChk ZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykpKQotICAgICAvLyBPbiBQ b3dlclBDLCBoYXZpbmcgYW4gZXhlY3V0YWJsZSBwYWdlIHRoYXQgaGFzIG5vIHJlYWQgcGVybWlz c2lvbgotICAgICAvLyBjYW4gaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcy4gIFRoZSBmdW5j dGlvbiBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb24tCi0gICAgIC8vIENhY2hlIHVzZXMgaW5zdHJ1Y3Rp b25zIGRjYmYgYW5kIGljYmksIGJvdGggb2Ygd2hpY2ggYXJlIHRyZWF0ZWQgYnkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKaW5k ZXggN2IzNjFiYmJmNWJjLi5lN2U0MGNhZTQxM2UgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bTEy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCkBAIC0xLDEyNSArMSwxMyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEyJwogcGtnbmFtZT1sbHZtMTIKIHZlcnNpb249 MTIuMC4xCi1yZXZpc2lvbj0zCi13cmtzcmM9Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIK LWJ1aWxkX3dya3NyYz1sbHZtCi1idWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Igot IC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2Ci0gLURFTkFCTEVfTElOS0VSX0JV SUxEX0lEPVlFUwotIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCi0gLURMTFZNX0JVSUxEX0RPQ1M9 WUVTCi0gLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCi0gLURTUEhJTlhfV0FSTklOR1NfQVNfRVJS T1JTPU5PCi0gLURMTFZNX0JVSUxEX0xMVk1fRFlMSUI9WUVTCi0gLURMTFZNX0xJTktfTExWTV9E WUxJQj1ZRVMKLSAtRExMVk1fRU5BQkxFX1JUVEk9WUVTCi0gLURMTFZNX0VOQUJMRV9GRkk9WUVT Ci0gLURMTFZNX0JJTlVUSUxTX0lOQ0RJUj0vdXNyL2luY2x1ZGUiCi1ob3N0bWFrZWRlcGVuZHM9 InBlcmwgcHl0aG9uMyB6bGliLWRldmVsIGxpYmZmaS1kZXZlbCBzd2lnIHB5dGhvbjMtU3BoaW54 Ci0gcHl0aG9uMy1yZWNvbW1vbm1hcmsgcHl0aG9uMy1zcGhpbngtYXV0b21vZGFwaSIKLW1ha2Vk ZXBlbmRzPSJweXRob24zLWRldmVsIHpsaWItZGV2ZWwgZWxmdXRpbHMtZGV2ZWwgbGliZmZpLWRl dmVsIGxpYmVkaXQtZGV2ZWwKLSBsaWJ4bWwyLWRldmVsIGJpbnV0aWxzLWRldmVsIGxpYmF0b21p Yy1kZXZlbCIKLWRlcGVuZHM9ImxpYmxsdm0xMj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLXNo b3J0X2Rlc2M9IkxvdyBMZXZlbCBWaXJ0dWFsIE1hY2hpbmUiCityZXZpc2lvbj00CitidWlsZF9z dHlsZT1tZXRhCitzaG9ydF9kZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5lIChyZW1vdmVk IHBhY2thZ2UpIgogbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCi1saWNl bnNlPSJBcGFjaGUtMi4wIgorbGljZW5zZT0ibWV0YXBhY2thZ2UiCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cubGx2bS5vcmciCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0t cHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0 LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNoZWNrc3VtPTEyOWNiMjVjZDEzNjc3YWFkOTUxY2U1 YzJkZWIwZmU0YWZjMWU5ZDk4OTUwZjUzYjUxYmRjZmI1YTczYWZhMGUKLWxpYjMyZGlzYWJsZWQ9 eWVzCi1weXRob25fdmVyc2lvbj0zCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNs IiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFTX01VU0xfTElCQz1ZRVMi Ci0JbWFrZWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCi0JZGVwZW5kcys9IiBsaWJleGVj aW5mby1kZXZlbCIKLWZpCi0KLSMgIm9wZXJhbmQgb3V0IG9mIHJhbmdlIiBhc3NlbWJsZXIgZmFp bHVyZXMKLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0KikgOzsKLQlwcGMq KSBjb25maWd1cmVfYXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OwotZXNhYwot Ci1wb3N0X3BhdGNoKCkgewotCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRm b3JtIGRldGVjdGlvbgotCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUv YXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKLQkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLX0KLQotcHJl X2NvbmZpZ3VyZSgpIHsKLQlsb2NhbCB0cmlwbGV0Ci0KLQkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBv ZiBkZWJ1Z2dpbmcgc3ltYm9sczoKLQlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9Ci0JQ1hYRkxB R1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KLQotCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2Vz IHRvIGJsb3cgdXAgZm9yIHBwYzMyIGFwcGFyZW50bHkgYmVjYXVzZQotCSMgb2YgY2xhbmcgYmVp bmcgdG9vIGxhcmdlIGZvciBhIDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCi0J IyBvcHRpbWl6ZSBmb3Igc2l6ZSBpbnN0ZWFkCi0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCi0JCXBwYzY0KikgOzsKLQkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAt RFZPSURfQ1hYX09QVF9GTEFHUz0tT3MiIDs7Ci0JZXNhYwotCi0JaWYgWyAiJENST1NTX0JVSUxE IiBdOyB0aGVuCi0JCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCi0JCW1rZGly IC1wIGJ1aWxkL0hPU1QKLQkJY2QgYnVpbGQvSE9TVAotCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRC VUlMRF9DWFgiIENGTEFHUz0iJEJVSUxEX0NGTEFHUyIgXAotCQkJQ1hYRkxBR1M9IiRCVUlMRF9D WFhGTEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxBR1MiIFwKLQkJCWNtYWtlIC4uLy4uIC1EQ01B S0VfQlVJTERfVFlQRT1SZWxlYXNlIFwKLQkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5h YmxlZF9wcm9qZWN0c30KLQkJbWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgotCQlb ICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9s bGRiL3V0aWxzL1RhYmxlR2VuCi0JCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0k e3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKLQkJWyAiJF9sbGRiX2Vu YWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKLQkJY2QgLi4vLi4KLQlmaQot Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCWk2ODYqKSBfYXJjaD0iWDg2Ijs7 Ci0JCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKLQkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7Owot CQlhcm12NiopIF9hcmNoPSJBcm12NiI7OwotCQlhcm12NyopIF9hcmNoPSJBcm12NyI7OwotCQlh YXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKLQkJbWlwcyopIF9hcmNoPSJNaXBzIjs7Ci0JCXBw YyopIF9hcmNoPSJQb3dlclBDIjs7Ci0JCXJpc2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OwotCWVz YWMKLQotCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9Ci0KLQlj b25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJjaH0iCi0JY29uZmlndXJl X2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCi0JY29uZmlndXJlX2FyZ3Mr PSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9IgotfQotCi1kb19pbnN0 YWxsKCkgewotCWNkIGJ1aWxkCi0JY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RE SVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCi0KLQkjIFJlcXVpcmVkIGZvciBtdWx0aWxp Yi4KLQlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0IiBdOyB0aGVuCi0JCWZv ciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbwotCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVk ZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKLQkJCXZpbnN0YWxsICR7RklMRVNESVJ9 L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAotCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29u ZmlnICR7X2hlYWRlcn0uaAotCQlkb25lCi0JZmkKLQotCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhv c3QgaW4gY3Jvc3MgYnVpbGRzLgotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQlybSAt ZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAotCWZpCi19CiAKIGxpYmxsdm0x Ml9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCi0JcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYkxMVk0tKi5zbyoiCi0JfQogfQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTIvdXBkYXRlIGIvc3JjcGtncy9sbHZtMTIvdXBkYXRlCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTVjZjI2YjM1ODYuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXNp dGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcyIKLXBhdHRl cm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCi1pZ25vcmU9IiotcmMqIgoKRnJv bSBmYzQ4ZjQ4MzI3MzA4ZjEzZTA0MDAyOGQzNWEwN2EwNGNjOTIwOTVmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2Vy cXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo0Mjo1NSArMDAw MApTdWJqZWN0OiBbUEFUQ0ggMTcvMjFdIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBz cmNwa2dzL21lc2EvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9z cmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXggODJhYzQ1M2ZhYmZmLi42YmE4MTVhY2VhZTIgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1t ZXNhCi12ZXJzaW9uPTIxLjMuMwordmVyc2lvbj0yMS4zLjUKIHJldmlzaW9uPTIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURnbHZuZD10cnVlIC1Ec2hhcmVkLWdsYXBpPWVu YWJsZWQgLURnYm09ZW5hYmxlZCAtRGVnbD1lbmFibGVkCgpGcm9tIGI2NWVmNzhkZmI3ZDY3MzJh YjlmNjI1N2IwY2QzMDk0MjdmMDVhYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29t PgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDIxOjQzOjU2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAx OC8yMV0gcXRjcmVhdG9yOiB1cGRhdGUgdG8gNi4wLjIuCgotLS0KIC4uLi9xdGNyZWF0b3IvcGF0 Y2hlcy82LjAuMi0tYmFja3RyYWNlLnBhdGNoICB8IDQ0ICsrKysrKysrKysrKysrKysrKysKIC4u Li9xdGNyZWF0b3IvcGF0Y2hlcy9RVENSRUFUT1JCVUctMjY5MTAuZGlmZiB8IDM5ICsrKysrKysr KysrKysrKysKIHNyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8 ICA4ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Y3JlYXRvci9wYXRjaGVzLzYuMC4yLS1i YWNrdHJhY2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Y3JlYXRvci9wYXRj aGVzL1FUQ1JFQVRPUkJVRy0yNjkxMC5kaWZmCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdGNyZWF0 b3IvcGF0Y2hlcy82LjAuMi0tYmFja3RyYWNlLnBhdGNoIGIvc3JjcGtncy9xdGNyZWF0b3IvcGF0 Y2hlcy82LjAuMi0tYmFja3RyYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYzU3ZTFlY2M1OGIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdGNy ZWF0b3IvcGF0Y2hlcy82LjAuMi0tYmFja3RyYWNlLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zy b20gNzIyZDg0ZmVlNTMyMWVlNjkwOWYxMmMxZDEwYjA5N2MyNGJhMWFkYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9QaW90cj0yMFc9QzM9QjNqY2lrPz0gPGNob2Np bWllckB0bGVuLnBsPgorRGF0ZTogU2F0LCAyMiBKYW4gMjAyMiAxNzoyOTo1OSArMDEwMAorU3Vi amVjdDogW1BBVENIXSBiYWNrdHJhY2UKKworCitkaWZmIC0tZ2l0IGEvc3JjL2xpYnMvdXRpbHMv cXRjYXNzZXJ0LmNwcCBiL3NyYy9saWJzL3V0aWxzL3F0Y2Fzc2VydC5jcHAKK2luZGV4IDU2MGRm NDNhLi44N2NhNmZkNSAxMDA2NDQKKy0tLSBhL3NyYy9saWJzL3V0aWxzL3F0Y2Fzc2VydC5jcHAK KysrKyBiL3NyYy9saWJzL3V0aWxzL3F0Y2Fzc2VydC5jcHAKK0BAIC00MCw3ICs0MCw3IEBAIHZv aWQgZHVtcEJhY2t0cmFjZShpbnQgbWF4ZGVwdGgpCisgeworICAgICBpZiAobWF4ZGVwdGggPT0g LTEpCisgICAgICAgICBtYXhkZXB0aCA9IDEwMDA7CistI2lmIGRlZmluZWQoUV9PU19VTklYKQor KyNpZiBkZWZpbmVkKFFfT1NfVU5JWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIHZvaWQg KmJ0WzEwMDBdID0ge251bGxwdHJ9OworICAgICBpbnQgc2l6ZSA9IGJhY2t0cmFjZShidCwgc2l6 ZW9mKGJ0KSAvIHNpemVvZihidFswXSkpOworICAgICBjaGFyICoqbGluZXMgPSBiYWNrdHJhY2Vf c3ltYm9scyhidCwgc2l6ZSk7CitkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvcW1sZGVzaWduZXIv ZGVzaWduZXJjb3JlL2V4Y2VwdGlvbnMvZXhjZXB0aW9uLmNwcCBiL3NyYy9wbHVnaW5zL3FtbGRl c2lnbmVyL2Rlc2lnbmVyY29yZS9leGNlcHRpb25zL2V4Y2VwdGlvbi5jcHAKK2luZGV4IGEzYTk4 MDZmLi5iYjZjYzMwZCAxMDA2NDQKKy0tLSBhL3NyYy9wbHVnaW5zL3FtbGRlc2lnbmVyL2Rlc2ln bmVyY29yZS9leGNlcHRpb25zL2V4Y2VwdGlvbi5jcHAKKysrKyBiL3NyYy9wbHVnaW5zL3FtbGRl c2lnbmVyL2Rlc2lnbmVyY29yZS9leGNlcHRpb25zL2V4Y2VwdGlvbi5jcHAKK0BAIC05OSw3ICs5 OSw3IEBAIGJvb2wgRXhjZXB0aW9uOjp3YXJuQWJvdXRFeGNlcHRpb24oKQorICNlbmRpZgorIH0K KyAKKy0jaWZkZWYgUV9PU19MSU5VWAorKyNpZiBkZWZpbmVkKFFfT1NfVU5JWCkgJiYgZGVmaW5l ZChfX0dMSUJDX18pCisgc3RhdGljIFFTdHJpbmcgZ2V0QmFja1RyYWNlKCkKKyB7CisgICAgIFFT dHJpbmcgYmFja1RyYWNlOworQEAgLTEzNyw3ICsxMzcsNyBAQCBFeGNlcHRpb246OkV4Y2VwdGlv bihpbnQgbGluZSwgY29uc3QgUUJ5dGVBcnJheSAmZnVuY3Rpb24sCisgICAsIG1fZnVuY3Rpb24o UVN0cmluZzo6ZnJvbVV0ZjgoZnVuY3Rpb24pKQorICAgLCBtX2ZpbGUoUVN0cmluZzo6ZnJvbVV0 ZjgoZmlsZSkpCisgICAsIG1fZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pCistICAjaWZkZWYgUV9P U19MSU5VWAorKyAgI2lmIGRlZmluZWQoUV9PU19VTklYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykK KyAgICwgbV9iYWNrVHJhY2UoZ2V0QmFja1RyYWNlKCkpCisgICAjZW5kaWYKKyB7CistLSAKKzIu MzQuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Y3JlYXRvci9wYXRjaGVzL1FUQ1JFQVRPUkJV Ry0yNjkxMC5kaWZmIGIvc3JjcGtncy9xdGNyZWF0b3IvcGF0Y2hlcy9RVENSRUFUT1JCVUctMjY5 MTAuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjMDdjNzJj Y2YxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXRjcmVhdG9yL3BhdGNoZXMvUVRDUkVB VE9SQlVHLTI2OTEwLmRpZmYKQEAgLTAsMCArMSwzOSBAQAorRnJvbSBiM2U5ZjI0ZWQxYzBkM2Mw ZWU0OTE3ZDRiNDQ5ZGE5MGUwMGU4ODhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog TWFyY28gQnVia2UgPG1hcmNvLmJ1YmtlQHF0LmlvPgorRGF0ZTogTW9uLCAyNCBKYW4gMjAyMiAx NDozODoyOSArMDEwMAorU3ViamVjdDogW1BBVENIXSBRbWxEZXNpZ25lcjogRml4IDMyIGJpdAor CitCZWNhdXNlIHN0ZDo6cHRyZGlmZl90IGFuZCBpbnQgYXJlIHRoZSBzYW1lIHVuZGVyIDMyIGJp dCB0aGUgY29uc3RydWN0b3IKK2lzIGNoYW5nZWQgdG8gYSB0ZW1wbGF0ZS4gVGhlIGNsYXNzIGlz IHByaXZhdGUgc28gaXQgaXMgdmVyeSB1bmxpa2VseQordGhhdCBpdCBsZWFkcyB0byBlcnJvcnMu CisKK1Rhc2stbnVtYmVyOiBRVENSRUFUT1JCVUctMjY5MTAKK0NoYW5nZS1JZDogSTk0Yzk4N2I5 YjZkMmYwNDg3Njc0MGZmMjgzYTMzOWMwZGIwNTZjZmQKK1Jldmlld2VkLWJ5OiA8Z2l0aHViLWFj dGlvbnMtcXQtY3JlYXRvckBjcmlzdGlhbmFkYW0uZXU+CitSZXZpZXdlZC1ieTogQ2hyaXN0b3Bo ZSBHaWJvdWRlYXV4IDxjaHJpc3RvcGhlQGtyb3AuZnI+CitSZXZpZXdlZC1ieTogRWlrZSBaaWxs ZXIgPGVpa2UuemlsbGVyQHF0LmlvPgorUmV2aWV3ZWQtYnk6IFF0IENJIEJvdCA8cXRfY2lfYm90 QHF0LXByb2plY3Qub3JnPgorLS0tCisKK2RpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9xbWxkZXNp Z25lci9kZXNpZ25lcmNvcmUvcHJvamVjdHN0b3JhZ2Uvc3RvcmFnZWNhY2hlLmggYi9zcmMvcGx1 Z2lucy9xbWxkZXNpZ25lci9kZXNpZ25lcmNvcmUvcHJvamVjdHN0b3JhZ2Uvc3RvcmFnZWNhY2hl LmgKK2luZGV4IDc0N2MzZDkuLjI3ZDI5MDUgMTAwNjQ0CistLS0gYS9zcmMvcGx1Z2lucy9xbWxk ZXNpZ25lci9kZXNpZ25lcmNvcmUvcHJvamVjdHN0b3JhZ2Uvc3RvcmFnZWNhY2hlLmgKKysrKyBi L3NyYy9wbHVnaW5zL3FtbGRlc2lnbmVyL2Rlc2lnbmVyY29yZS9wcm9qZWN0c3RvcmFnZS9zdG9y YWdlY2FjaGUuaAorQEAgLTY3LDE1ICs2Nyw4IEBACisgCisgICAgICAgICBTdG9yYWdlQ2FjaGVJ bmRleChjb25zdCBjaGFyICopID0gZGVsZXRlOworIAorLSAgICAgICAgY29uc3RleHByIGV4cGxp Y2l0IFN0b3JhZ2VDYWNoZUluZGV4KGludCBpZCkgbm9leGNlcHQKKy0gICAgICAgICAgICA6IGlk e2lkfQorLSAgICAgICAge30KKy0KKy0gICAgICAgIGNvbnN0ZXhwciBleHBsaWNpdCBTdG9yYWdl Q2FjaGVJbmRleChzdGQ6OnNpemVfdCBpZCkgbm9leGNlcHQKKy0gICAgICAgICAgICA6IGlke3N0 YXRpY19jYXN0PGludD4oaWQpfQorLSAgICAgICAge30KKy0KKy0gICAgICAgIGNvbnN0ZXhwciBl eHBsaWNpdCBTdG9yYWdlQ2FjaGVJbmRleChzdGQ6OnB0cmRpZmZfdCBpZCkgbm9leGNlcHQKKysg ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEludGVnZXJUeXBlPgorKyAgICAgICAgY29uc3RleHBy IGV4cGxpY2l0IFN0b3JhZ2VDYWNoZUluZGV4KEludGVnZXJUeXBlIGlkKSBub2V4Y2VwdAorICAg ICAgICAgICAgIDogaWR7c3RhdGljX2Nhc3Q8aW50PihpZCl9CisgICAgICAgICB7fQorIApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Y3JlYXRvci90 ZW1wbGF0ZQppbmRleCAyOGU4NzFiNDA2ZTUuLmFjMTE1MmJjY2EwYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9xdGNyZWF0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUK QEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Y3JlYXRvcicKIHBrZ25h bWU9cXRjcmVhdG9yCi12ZXJzaW9uPTUuMC4zCit2ZXJzaW9uPTYuMC4yCiByZXZpc2lvbj0xCiB3 cmtzcmM9InF0LWNyZWF0b3Itb3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxl PXFtYWtlCiBtYWtlX2luc3RhbGxfYXJncz0iSU5TVEFMTF9ST09UPVwke0RFU1RESVJ9L3VzciIK LWhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgbGx2bSBwZXJsIHBrZy1jb25maWcgcHl0aG9uMyB3aGlj aCBxdDUtcW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0ibGx2bTEzIHBlcmwgcGtnLWNvbmZpZyBweXRo b24zIHdoaWNoIHF0NS1xbWFrZQogIHF0NS1ob3N0LXRvb2xzIgotbWFrZWRlcGVuZHM9InF0NS1k ZWNsYXJhdGl2ZS1kZXZlbCBxdDUtc2NyaXB0LWRldmVsIHF0NS10b29scy1kZXZlbAorbWFrZWRl cGVuZHM9InF0NS1kZWNsYXJhdGl2ZS1kZXZlbCBxdDUtc2NyaXB0LWRldmVsIHF0NS10b29scy1k ZXZlbCBxdDUtc3ZnLWRldmVsCiAgcXQ1LXF1aWNrY29udHJvbHMgY2xhbmcgbGx2bSIKIGRlcGVu ZHM9InF0NS1kZWNsYXJhdGl2ZS1kZXZlbCBxdDUtcXVpY2tjb250cm9scyBxdDUtcGx1Z2luLXNx bGl0ZSIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIElERSBmb3IgUXQgZGV2ZWxvcGVycyIK QEAgLTE2LDcgKzE2LDcgQEAgbGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIGN1c3RvbTpRdENv bXBhbnktR1BMLUV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLnF0LmlvL0Nh dGVnb3J5OlRvb2xzOjpRdENyZWF0b3IiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vY29kZS5xdC5pby9j Z2l0L3F0LWNyZWF0b3IvcXQtY3JlYXRvci5naXQvcGxhaW4vZGlzdC9jaGFuZ2VzLSR7dmVyc2lv bn0ubWQiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFz ZXMvcXRjcmVhdG9yLyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS8ke3dya3NyY30udGFyLnh6Igot Y2hlY2tzdW09N2ZkM2IxNDMxMGJjZWNlZTZiMTM0ZjhjYjdmNGMwZWQyMzg1ZDdmNGNlY2Q0OGQ3 NTZjNWMxZmQ2NTBjZTJlYgorY2hlY2tzdW09M2QxNzNjMWEwMmNlNTUxMzdhMjNmMjk0ZTFhODQw ZDc2NDg2NTZlOTc4MjYwNjdlYjI5ZDlkZjY1MzM1MWJmYQogcmVwbGFjZXM9InF0Y3JlYXRvci1k YXRhPj0wIgogcHl0aG9uX3ZlcnNpb249MwogCgpGcm9tIDIyMGNhYjdhNjZiYzJiYWFhODcyNzNk NDM2ZmE5YTRmYmViMWU1MjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRl OiBNb24sIDI4IEZlYiAyMDIyIDIxOjQ2OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOS8yMV0g aXNwYzogdXBkYXRlIHRvIDEuMTcuMC4KCi0tLQogLi4uL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWls ZC10eXBlLW5vbmUucGF0Y2ggIHwgICAxOCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDAxLnBhdGNoICAgICAgICAgfCAgIDU3IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDIucGF0Y2ggICAgICAgICB8ICA5MjMgLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDMucGF0Y2ggICAgICAgICB8IDE1MDQgLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoICAgICAgICAgfCAgIDM0IC0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggICAgICAgICB8ICAzNzIgLS0tCiBzcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoICAgICAgICAgfCAgMTI2IC0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggICAgICAgICB8ICAxNjAgLS0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDgucGF0Y2ggICAgICAgICB8ICAxNDkgLS0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDkucGF0Y2ggICAgICAgICB8IDIxMDkgLS0tLS0tLS0tLS0tLS0tLS0K IHNyY3BrZ3MvaXNwYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0K IDExIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNTQ1NSBkZWxldGlvbnMoLSkKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5v bmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDAxLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA3LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFr ZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWls ZC10eXBlLW5vbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMWUzNTNj NzMxNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxk LXR5cGUtbm9uZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLUluZGV4OiBp c3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGlzcGMtMS4xNS4wLm9y aWcvQ01ha2VMaXN0cy50eHQKLSsrKyBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotQEAgLTE1 NywxMyArMTU3LDYgQEAgc2V0KE9VVFBVVF9SRUxFQVNFIFJlbGVhc2UvYmluKQotIHNldChDTUFL RV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2Jp biApCi0gCi0gaWYoQ01BS0VfQlVJTERfVFlQRSkKLS0gICAgIyBWYWxpZGF0ZSBidWlsZCB0eXBl Ci0tICAgIHNldChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNlO1JlbFdpdGhEZWJJ bmZvIikKLS0KLS0gICAgc3RyaW5nKEZJTkQgIiR7Q09ORklHVVJBVElPTl9UWVBFU30iICIke0NN QUtFX0JVSUxEX1RZUEV9IiBNQVRDSEVEX0NPTkZJRykKLS0gICAgaWYgKCR7TUFUQ0hFRF9DT05G SUd9IEVRVUFMIC0xKQotLSAgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNQUtFX0JVSUxE X1RZUEUgKCR7Q01BS0VfQlVJTERfVFlQRX0pIGFsbG93cyBvbmx5IHRoZSBmb2xsb3dpbmcgdmFs dWVzOiAke0NPTkZJR1VSQVRJT05fVFlQRVN9IikKLS0gICAgZW5kaWYoKQotIGVsc2UoTk9UIENN QUtFX0JVSUxEX1RZUEUpCi0gICAgIHNldChDTUFLRV9CVUlMRF9UWVBFICJSZWxlYXNlIikKLSAg ICAgbWVzc2FnZShTVEFUVVMgIkJ1aWxkIHR5cGUgbm90IHNwZWNpZmllZDogVXNlIFJlbGVhc2Ug YnkgZGVmYXVsdC4iKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw MS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmMmQzZjVhNDA5ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1 NyArMCwwIEBACi1Gcm9tIDFjMGY4OWRjY2I3NzRmMjE2YzdmNmU3NmE5OWVlOTA3YTFlNjQxY2Ig TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEbWl0cnkgQmFib2tpbiA8ZG1pdHJ5Lnku YmFib2tpbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIyIERlYyAyMDIwIDE3OjAzOjU5IC0wODAw Ci1TdWJqZWN0OiBbUEFUQ0hdIEZpeCB0byB3b3JrIHdpdGggTExWTSB0cnVuayBhZnRlciBsbHZt L2xsdm0tcHJvamVjdEA0MWMzYjI3MTMKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAxOCArKysrKysr KysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDZm YmI4YjljZi4uOTc3ZTlkMjIyIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9j dHguY3BwCi1AQCAtMTQ3MywxMSArMTQ3MywxNSBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6 OkFkZERlYnVnUG9zKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgU291cmNlUG9zICpwb3MsCi0g ICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1 Y3Rpb24+KHZhbHVlKTsKLSAgICAgaWYgKGluc3QgIT0gTlVMTCAmJiBtLT5kaUJ1aWxkZXIpIHsK LSAgICAgICAgIFNvdXJjZVBvcyBwID0gcG9zID8gKnBvcyA6IGN1cnJlbnRQb3M7Ci0tICAgICAg ICBpZiAocC5maXJzdF9saW5lICE9IDApCi0rICAgICAgICBpZiAocC5maXJzdF9saW5lICE9IDAp IHsKLSAgICAgICAgICAgICAvLyBJZiBmaXJzdF9saW5lID09IDAsIHRoZW4gd2UncmUgaW4gdGhl IG1pZGRsZSBvZiBzZXR0aW5nIHVwCi0gICAgICAgICAgICAgLy8gdGhlIHN0YW5kYXJkIGxpYnJh cnkgb3IgdGhlIGxpa2U7IGRvbid0IGFkZCBkZWJ1ZyBwb3NpdGlvbnMKLSAgICAgICAgICAgICAv LyBmb3IgdGhvc2UgZnVuY3Rpb25zCi0tICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2MobGx2 bTo6RGVidWdMb2M6OmdldChwLmZpcnN0X2xpbmUsIHAuZmlyc3RfY29sdW1uLCBzY29wZSA/IHNj b3BlIDogR2V0RElTY29wZSgpKSk7Ci0rICAgICAgICAgICAgc2NvcGUgPSBzY29wZSA/IHNjb3Bl IDogR2V0RElTY29wZSgpOwotKyAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsg ICAgICAgICAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0KCks IHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0r ICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2MoZGlMb2MpOwotKyAgICAgICAgfQotICAgICB9 Ci0gfQotIAotQEAgLTE1MTgsOSArMTUyMiwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6 OkVtaXRWYXJpYWJsZURlYnVnSW5mbyhTeW1ib2wgKnN5bSkgewotICAgICBsbHZtOjpESUxvY2Fs VmFyaWFibGUgKnZhciA9IG0tPmRpQnVpbGRlci0+Y3JlYXRlQXV0b1ZhcmlhYmxlKAotICAgICAg ICAgc2NvcGUsIHN5bS0+bmFtZSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0 X2xpbmUsIGRpVHlwZSwgdHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8pOwotIAotKyAg ICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQo c2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3Rf Y29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq ZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+ c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHN5bS0+ cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUpLCBiYmxvY2spOwot KyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFy LCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwgZGlMb2MsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5wb3MsIHNjb3BlKTsKLSB9Ci0gCi1AQCAt MTUzNSw5ICsxNTQwLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdEZ1bmN0aW9u UGFyYW1ldGVyRGVidWdJbmZvKFN5bWJvbCAqc3ltLCBpbnQgYXJnTnVtCi0gICAgICAgICBtLT5k aUJ1aWxkZXItPmNyZWF0ZVBhcmFtZXRlclZhcmlhYmxlKHNjb3BlLCBzeW0tPm5hbWUsIGFyZ051 bSArIDEsIHN5bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaVR5cGUsIHRydWUgLyog cHJlc2VydmUgdGhyb3VnaCBvcHRzICovLCBmbGFncyk7Ci0gCi0rICAgIGxsdm06OkRlYnVnTG9j IGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29udGV4 dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlLCBu dWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNsYXJlSW5zdCA9Ci0t ICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIs IG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3MuZmlyc3RfbGluZSwg c3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAgICAgICBtLT5kaUJ1 aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+ Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoZGVj bGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTAzZjMwZGExMGQu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsOTIzICswLDAgQEAKLUZyb20gMDU5N2E3OWQwODRjMDE0Nzgw MTM2ZGE5MDZhZmUyMWQxNWU5ODJjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERl ZXBha1JhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1E YXRlOiBUdWUsIDUgSmFuIDIwMjEgMTM6NTM6MzAgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVt b3ZlIExMVk0gOC4wIGFuZCBMTFZNIDkuMC4gKCMxOTY2KQotCi0tLS0KLSAuYXBwdmV5b3IueW1s ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyAtLQotIC50cmF2aXMueW1sICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA3IC0tLQotIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAg ICAgICB8IDEyICsrLS0tLQotIHNyYy9hc3QuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA0IC0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzAgLS0tLS0t LS0tLS0tLQotIHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgICAgICB8ICA0IC0tCi0g c3JjL2lzcGMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgLS0tLS0tLS0tCi0gc3Jj L2lzcGMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KLSBzcmMvaXNwY192ZXJz aW9uLmggICAgICAgICAgICAgICAgICAgfCAgNCArLQotIHNyYy9tYWluLmNwcCAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEzIC0tLS0tLQotIHNyYy9tb2R1bGUuY3BwICAgICAgICAgICAgICAg ICAgICAgICB8IDI3IC0tLS0tLS0tLS0tLQotIHNyYy9tb2R1bGUuaCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyIC0KLSBzcmMvb3B0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2 NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL3R5cGUuY3BwICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTAgKystLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjICAgICAg ICAgICAgfCAgMSAtCi0gdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYyAgICAgICAgICAgIHwgIDMg LS0KLSB0ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjICAgICAgICAgICAgfCAgMiAtCi0gdGVzdHMv bGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgICAgICAgIHwgIDIgKwotIHRlc3RzL2xpdC10ZXN0cy9j cHVzX3g4Nl9sbHZtMTAuaXNwYyB8IDExIC0tLS0tCi0gdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcg ICAgICAgICAgICAgIHwgIDUgLS0tCi0gMjAgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygr KSwgMjEzIGRlbGV0aW9ucygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXQtdGVzdHMv Y3B1c194ODZfbGx2bTEwLmlzcGMKLQotZGlmZiAtLWdpdCBhLy5hcHB2ZXlvci55bWwgYi8uYXBw dmV5b3IueW1sCi1pbmRleCA0NTFhN2IzZTAuLjc5NDVjY2EyYSAxMDA2NDQKLS0tLSBhLy5hcHB2 ZXlvci55bWwKLSsrKyBiLy5hcHB2ZXlvci55bWwKLUBAIC00MSw4ICs0MSw2IEBAIGVudmlyb25t ZW50OgotICAgICAgIExMVk1fVkVSU0lPTjogbGF0ZXN0Ci0gICAgIC0gQVBQVkVZT1JfQlVJTERf V09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLSAgICAgICBMTFZNX1ZFUlNJT046IDEw LjAKLS0gICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAx OQotLSAgICAgIExMVk1fVkVSU0lPTjogOS4wCi0gCi0gZm9yOgotIC0KLUBAIC02Miw3ICs2MCw2 IEBAIGZvcjoKLSAgICAgICAgIGlmICIlQVBQVkVZT1JfQlVJTERfV09SS0VSX0lNQUdFJSI9PSJW aXN1YWwgU3R1ZGlvIDIwMTkiICggKHNldCBnZW5lcmF0b3I9IlZpc3VhbCBTdHVkaW8gMTYiKSAm IChzZXQgdnN2ZXJzaW9uPTIwMTkpKQotICAgICAgICAgc2V0IExMVk1fVEFSPWxsdm0tMTEuMC4w LXdpbi52czIwMTktUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS43egotICAgICAgICAgaWYg IiVMTFZNX1ZFUlNJT04lIj09IjEwLjAiIChzZXQgTExWTV9UQVI9bGx2bS0xMC4wLjEtd2luLnZz MjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnppcCkKLS0gICAgICAgIGlmICIlTExW TV9WRVJTSU9OJSI9PSI5LjAiIChzZXQgTExWTV9UQVI9bGx2bS05LjAuMS13aW4udnMyMDE3LVJl bGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotICAgaW5zdGFsbDoKLSAgICAgLSBwczog Y2hvY28gaW5zdGFsbCAtLW5vLXByb2dyZXNzIHdpbmZsZXhiaXNvbjMgd2dldCA3emlwCi0gICAg IC0gY21kOiB8LQotZGlmZiAtLWdpdCBhLy50cmF2aXMueW1sIGIvLnRyYXZpcy55bWwKLWluZGV4 IDJlOTYwMTdhNi4uM2E2Yjg1MjY0IDEwMDY0NAotLS0tIGEvLnRyYXZpcy55bWwKLSsrKyBiLy50 cmF2aXMueW1sCi1AQCAtMTA4LDEzICsxMDgsNiBAQCBqb2JzOgotICAgICAgICAgLSBMTFZNX1RB Uj1sbHZtLTEwLjAuMS11YnVudHUxNi4wNC1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnRh ci54egotICAgICAgICAgLSBMTFZNX1JFUE89aHR0cHM6Ly9naXRodWIuY29tL2RiYWJva2luL2xs dm0tcHJvamVjdAotICAgICAgICAgLSBJU1BDX0hPTUU9JFRSQVZJU19CVUlMRF9ESVIKLS0gICAg IyBMTFZNIDkuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1 aWxkICsgcnVuKSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0tICAgIC0gPDw6ICpt eV90YWcKLS0gICAgICBlbnY6Ci0tICAgICAgICAtIExMVk1fVkVSU0lPTj05LjAgT1M9VWJ1bnR1 MTYuMDQKLS0gICAgICAgIC0gTExWTV9UQVI9bGx2bS05LjAuMS11YnVudHUxNi4wNC1SZWxlYXNl K0Fzc2VydHMteDg2LmFybS53YXNtLnRhci54egotLSAgICAgICAgLSBMTFZNX1JFUE89aHR0cHM6 Ly9naXRodWIuY29tL2RiYWJva2luL2xsdm0tcHJvamVjdAotLSAgICAgICAgLSBJU1BDX0hPTUU9 JFRSQVZJU19CVUlMRF9ESVIKLSAgICAgIyBXQVNNIGVuYWJsZWQgYnVpbGQKLSAgICAgIyBMTFZN IDExLjAgKyBVYnVudHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1wbGVzIChidWlsZCks IGJlbmNobWFya3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotICAgICAtIDw8OiAqbXlfdGFnCi1kaWZm IC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAotaW5kZXggNWZhODYzZmNm Li5hNmIzZWQyNTEgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0 cy50eHQKLUBAIC0yNDEsMTAgKzI0MSw4IEBAIGlmIChYODZfRU5BQkxFRCkKLSAgICAgICAgIGF2 eDItaTh4MzIgYXZ4Mi1pMTZ4MTYKLSAgICAgICAgIGF2eDItaTMyeDQgYXZ4Mi1pMzJ4OCBhdngy LWkzMngxNiBhdngyLWk2NHg0Ci0gICAgICAgICBhdng1MTJrbmwtaTMyeDE2Ci0tICAgICAgICBh dng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OCkKLS0gICAgaWYgKCR7TExWTV9WRVJTSU9O X05VTUJFUn0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICAgICAgbGlzdChB UFBFTkQgSVNQQ19UQVJHRVRTIGF2eDUxMnNreC1pOHg2NCBhdng1MTJza3gtaTE2eDMyKQotLSAg ICBlbmRpZigpCi0rICAgICAgICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OAotKyAg ICAgICAgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0gZW5kaWYoKQotIGlmIChB Uk1fRU5BQkxFRCkKLSAgICAgbGlzdChBUFBFTkQgSVNQQ19UQVJHRVRTIG5lb24taTh4MTYgbmVv bi1pMTZ4OCBuZW9uLWkzMng0IG5lb24taTMyeDgpCi1AQCAtMjU5LDExICsyNTcsNyBAQCBpZiAo V0FTTV9FTkFCTEVEKQotIGVuZGlmKCkKLSAKLSBzZXQoQ0xBTkdfTElCUkFSWV9MSVNUIGNsYW5n RnJvbnRlbmQgY2xhbmdEcml2ZXIgY2xhbmdTZXJpYWxpemF0aW9uIGNsYW5nUGFyc2UgY2xhbmdT ZW1hIGNsYW5nQW5hbHlzaXMgY2xhbmdBU1QgY2xhbmdCYXNpYyBjbGFuZ0VkaXQgY2xhbmdMZXgp Ci0tc2V0KExMVk1fQ09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5z dHJ1bWVudGF0aW9uIGxpbmtlciBvcHRpb24pCi0tCi0taWYgKCR7TExWTV9WRVJTSU9OX05VTUJF Un0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICBsaXN0KEFQUEVORCBMTFZN X0NPTVBPTkVOVFMgZnJvbnRlbmRvcGVubXApCi0tZW5kaWYoKQotK3NldChMTFZNX0NPTVBPTkVO VFMgZW5naW5lIGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlvbiBsaW5rZXIg b3B0aW9uIGZyb250ZW5kb3Blbm1wKQotIAotIGlmIChYODZfRU5BQkxFRCkKLSAgICAgbGlzdChB UFBFTkQgTExWTV9DT01QT05FTlRTIHg4NikKLWRpZmYgLS1naXQgYS9zcmMvYXN0LmNwcCBiL3Ny Yy9hc3QuY3BwCi1pbmRleCAyMGY3NWEyOWMuLjVhNDNjNDg1NCAxMDA2NDQKLS0tLSBhL3NyYy9h c3QuY3BwCi0rKysgYi9zcmMvYXN0LmNwcAotQEAgLTQ0LDkgKzQ0LDcgQEAKLSAjaW5jbHVkZSAi c3ltLmgiCi0gI2luY2x1ZGUgInV0aWwuaCIKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgot LSNlbmRpZgotIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotIC8vIEFTVE5vZGUKLSAKLUBAIC02Miw5ICs2 MCw3IEBAIHZvaWQgQVNUOjpBZGRGdW5jdGlvbihTeW1ib2wgKnN5bSwgU3RtdCAqY29kZSkgewot IH0KLSAKLSB2b2lkIEFTVDo6R2VuZXJhdGVJUigpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJH ZW5lcmF0ZUlSIik7Ci0tI2VuZGlmCi0gICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg ZnVuY3Rpb25zLnNpemUoKTsgKytpKQotICAgICAgICAgZnVuY3Rpb25zW2ldLT5HZW5lcmF0ZUlS KCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDk3 N2U5ZDIyMi4uNDJjNGVhMDlkIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9j dHguY3BwCi1AQCAtMzA5LDIxICszMDksMTMgQEAgRnVuY3Rpb25FbWl0Q29udGV4dDo6RnVuY3Rp b25FbWl0Q29udGV4dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0sIGxsdm06OkYKLSAg ICAgICAgICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6 ZW9mKGJ1ZiksICJfX29mZl9hbGxfb25fbWFza18lcyIsIGctPnRhcmdldC0+R2V0SVNBU3RyaW5n KCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOF8wCi0tICAgICAg ICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVu Y3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLS0jZWxzZSAvLyBMTFZNIDkuMCsKLSAg ICAgICAgICAgICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBvZmZGdW5jQ2FsbGVlID0gbS0+bW9kdWxl LT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5cGVzOjpWb2lkVHlwZSk7Ci0gICAgICAg ICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0YW50 PihvZmZGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihvZmZGdW5jKSk7Ci0g ICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqb2ZmQkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpD cmVhdGUoKmctPmN0eCwgImVudHJ5IiwgKGxsdm06OkZ1bmN0aW9uICopb2ZmRnVuYywgMCk7Ci0g ICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChM TFZNTWFza0FsbE9mZiwgZ2xvYmFsQWxsT25NYXNrUHRyLCBvZmZCQik7Ci0gICAgICAgICAgICAg aWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g PD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4w KwotICAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihn LT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotLSNl bmRpZgotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBsbHZtOjpSZXR1cm5JbnN0OjpDcmVh dGUoKmctPmN0eCwgb2ZmQkIpOwotICAgICAgICAgfQotQEAgLTIyODgsMTEgKzIyODAsNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotICNlbmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNl QWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0 RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlf MAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y QWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIGluc3QtPnNldEFs aWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25t ZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgQWRkRGVidWdQ b3MoaW5zdCk7Ci1AQCAtMjQzMSwxMSArMjQxOSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywK LSAgICAgICAgICAgICAgICAgLy8gdnMgdGhlIHByb3BlciBhbGlnbm1lbnQgaW4gcHJhY3RpY2Uu KQotICAgICAgICAgICAgICAgICBpbnQgYWxpZ24gPSAxOwotIAotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVu dChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgICAgICAgICBpbnN0LT5z ZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpKTsKLS0jZW5k aWYKLSAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci1A QCAtMjY0OSwxMSArMjYzMyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpB bGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICBh bGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gCi0gICAgIGlm IChhbGlnbiAhPSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAK LS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4w KwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZh bHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAgICAgLy8gRG9uJ3QgYWRkIGRlYnVnZ2lu ZyBpbmZvIHRvIGFsbG9jYSBpbnN0cnVjdGlvbnMKLSAgICAgcmV0dXJuIGluc3Q7Ci1AQCAtMjky NiwxMSArMjkwNiw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U3RvcmVJbnN0KGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QKLSAgICAgbGx2bTo6U3RvcmVJ bnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWx1ZSwgcHRyLCBiYmxvY2spOwotIAot ICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRh cmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsK LSAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAg IH0KLSAKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLUBAIC0zMDI1LDE2ICszMDAxLDEwIEBA IHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWVtY3B5SW5zdChsbHZtOjpWYWx1ZSAqZGVzdCwg bGx2bTo6VmFsdWUgKnNyYywgbGx2bTo6Ci0gICAgIH0KLSAgICAgaWYgKGFsaWduID09IE5VTEwp Ci0gICAgICAgICBhbGlnbiA9IExMVk1JbnQzMigxKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g PD0gSVNQQ19MTFZNXzhfMAotLSAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0KLS0gICAgICAg IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6Vm9pZFBvaW50 ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlwZSk7Ci0tI2Vs c2UgLy8gTExWTSA5LjArCi0gICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG1jRnVuY0NhbGxlZSA9 Ci0gICAgICAgICBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oImxsdm0ubWVtY3B5LnAw aTgucDBpOC5pNjQiLCBMTFZNVHlwZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVy VHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNVHlwZXM6 OlZvaWRQb2ludGVyVHlwZSwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1UeXBlczo6Qm9vbFR5 cGUpOwotICAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0gbGx2bTo6Y2FzdDxsbHZtOjpDb25z dGFudD4obWNGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG1jRnVuYyAhPSBOVUxMKTsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IGxsdm06OmlzYTxsbHZtOjpGdW5jdGlvbj4obWNGdW5jKSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3Jj L2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlv bi5jcHAKLWluZGV4IDE5M2E2NjI4OS4uYTE3NmU5NDYyIDEwMDY0NAotLS0tIGEvc3JjL2dlbi9H bG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotQEAgLTQ3MCwxMSArNDcwLDcgQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpMb2Nh bGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0aW9u ICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlwZSAq RWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFsbG9j YUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUoKSAr ICIubG9jYWwiLCAmRmlyc3RJKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQoR1YtPmdldEFsaWdubWVudCgpKTsK LS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChsbHZt OjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkpOwotLSNlbmRpZgotICAgICAgICAgaWYg KCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQotICAgICAgICAgICAgIG5l dyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwgJkZpcnN0SSk7Ci0gCi1k aWZmIC0tZ2l0IGEvc3JjL2lzcGMuY3BwIGIvc3JjL2lzcGMuY3BwCi1pbmRleCBlMmQwZjIwNmUu LmZhYzUyMzNmNyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmNwcAotKysrIGIvc3JjL2lzcGMuY3Bw Ci1AQCAtMjcyLDkgKzI3Miw3IEBAIHR5cGVkZWYgZW51bSB7Ci0gICAgIENQVV9TaWx2ZXJtb250 LAotIAotICAgICBDUFVfSUNYLAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICBDUFVfVEdMLAotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTJfMAotICAgICBDUFVfQURMLAotICAgICBDUFVfU1BSLAotQEAgLTM2NSwxMCAr MzYzLDggQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gCi0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5wdXNo X2JhY2soImljZWxha2Utc2VydmVyIik7Ci0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5wdXNoX2Jh Y2soImljeCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICAgICAgbmFtZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0aWdlcmxha2UiKTsKLSAgICAgICAgIG5h bWVzW0NQVV9UR0xdLnB1c2hfYmFjaygidGdsIik7Ci0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2Jh Y2soImFsZGVybGFrZSIpOwotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJhZGwi KTsKLUBAIC00MTEsMTEgKzQwNyw5IEBAIGNsYXNzIEFsbENQVXMgewotICAgICAgICAgY29tcGF0 W0NQVV9BRExdID0gU2V0KENQVV9BREwsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVu cnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlCcmlkZ2UsIENQVV9I YXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfTm9uZSk7Ci0gI2VuZGlmCi0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBjb21wYXRbQ1BVX1RHTF0gPQot ICAgICAgICAgICAgIFNldChDUFVfVEdMLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BVX1Bl bnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsIENQVV9TYW5keUJy aWRnZSwKLSAgICAgICAgICAgICAgICAgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dlbGwsIENQVV9C cm9hZHdlbGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9JQ1gsIENQVV9Ob25lKTsKLS0jZW5kaWYK LSAgICAgICAgIGNvbXBhdFtDUFVfSUNYXSA9IFNldChDUFVfSUNYLCBDUFVfeDg2XzY0LCBDUFVf Qm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1v bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVX1NhbmR5QnJpZGdlLCBDUFVf SXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwg Q1BVX05vbmUpOwotIAotQEAgLTU1Niw5ICs1NTAsNyBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFy Y2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJv bwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgY2Fz ZSBDUFVfU1BSOgotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICAgICAgY2FzZSBDUFVfVEdMOgotLSNlbmRpZgotICAgICAgICAgY2FzZSBDUFVf SUNYOgotICAgICAgICAgY2FzZSBDUFVfSUNMOgotICAgICAgICAgY2FzZSBDUFVfU0tYOgotQEAg LTkxNiw3ICs5MDgsNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNw dSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgfQotICAg ICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2k4eDY0OgotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBMTFZNIDEwLjArCi0gICAg ICAgICAvLyBUaGlzIHRhcmdldCBpcyBlbmFibGVkIG9ubHkgZm9yIExMVk0gMTAuMCBhbmQgbGF0 ZXIKLSAgICAgICAgIC8vIGJlY2F1c2UgTExWTSByZXF1aXJlcyBhIG51bWJlciBvZiBmaXhlcywg d2hpY2ggYXJlCi0gICAgICAgICAvLyBjb21taXR0ZWQgdG8gTExWTSAxMS4wIGFuZCBjYW4gYmUg YXBwbGllZCB0byAxMC4wLCBidXQgbm90Ci1AQCAtOTM3LDEyICs5MjgsNyBAQCBUYXJnZXQ6OlRh cmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwg Ym9vbCBwaWMsIGJvbwotICAgICAgICAgdGhpcy0+bV9oYXNWZWNQcmVmZXRjaCA9IGZhbHNlOwot ICAgICAgICAgQ1BVZnJvbUlTQSA9IENQVV9TS1g7Ci0gICAgICAgICBicmVhazsKLS0jZWxzZQot LSAgICAgICAgdW5zdXBwb3J0ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAgICAgIGJyZWFrOwotLSNl bmRpZgotICAgICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pMTZ4MzI6Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIC8v IFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRlcgotICAg ICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3aGljaCBh cmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBhcHBsaWVk IHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05NjMsMTAgKzk0OSw2IEBAIFRhcmdldDo6VGFyZ2V0KEFy Y2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBp YywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0gICAgICAg ICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0tICAgICAg ICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2VuZGlmCi0g I2lmZGVmIElTUENfQVJNX0VOQUJMRUQKLSAgICAgY2FzZSBJU1BDVGFyZ2V0OjpuZW9uX2k4eDE2 OgotICAgICAgICAgdGhpcy0+bV9pc2EgPSBUYXJnZXQ6Ok5FT047Ci1AQCAtMTY2MiwxMSArMTY0 NCw5IEBAIEdsb2JhbHM6Okdsb2JhbHMoKSB7Ci0gICAgIGlzTXVsdGlUYXJnZXRDb21waWxhdGlv biA9IGZhbHNlOwotICAgICBlcnJvckxpbWl0ID0gLTE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGVuYWJsZVRpbWVUcmFjZSA9IGZhbHNlOwotICAg ICAvLyBzZXQgZGVmYXVsdCBncmFudWxhcml0eSB0byA1MDAuCi0gICAgIHRpbWVUcmFjZUdyYW51 bGFyaXR5ID0gNTAwOwotLSNlbmRpZgotICAgICB0YXJnZXQgPSBOVUxMOwotICAgICBjdHggPSBu ZXcgbGx2bTo6TExWTUNvbnRleHQ7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lzcGMuaCBiL3NyYy9p c3BjLmgKLWluZGV4IGUyNWQ4ODMwZS4uZGUzNTdhMjFjIDEwMDY0NAotLS0tIGEvc3JjL2lzcGMu aAotKysrIGIvc3JjL2lzcGMuaAotQEAgLTY5NSwxMyArNjk1LDEyIEBAIHN0cnVjdCBHbG9iYWxz IHsKLSAKLSAgICAgLyogTnVtYmVyIG9mIGVycm9ycyB0byBzaG93IGluIElTUEMuICovCi0gICAg IGludCBlcnJvckxpbWl0OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotKwotICAgICAvKiBXaGVuIHRydWUsIGVuYWJsZSBjb21waWxlIHRpbWUgdHJhY2luZy4gKi8K LSAgICAgYm9vbCBlbmFibGVUaW1lVHJhY2U7Ci0gCi0gICAgIC8qIFdoZW4gY29tcGlsZSB0aW1l IHRyYWNpbmcgaXMgZW5hYmxlZCwgc2V0IHRpbWUgZ3JhbnVsYXJpdHkuICovCi0gICAgIGludCB0 aW1lVHJhY2VHcmFudWxhcml0eTsKLS0jZW5kaWYKLSB9OwotIAotIGVudW0gewotZGlmZiAtLWdp dCBhL3NyYy9pc3BjX3ZlcnNpb24uaCBiL3NyYy9pc3BjX3ZlcnNpb24uaAotaW5kZXggZDc4MTM0 N2ZkLi40MzRiMmQ2NzggMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwY192ZXJzaW9uLmgKLSsrKyBiL3Ny Yy9pc3BjX3ZlcnNpb24uaAotQEAgLTQ0LDEzICs0NCwxMSBAQAotIAotICNkZWZpbmUgSVNQQ19M TFZNX1ZFUlNJT04gKExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwMDAwICsgTExWTV9WRVJTSU9OX01J Tk9SICogMTAwKQotIAotLSNkZWZpbmUgSVNQQ19MTFZNXzhfMCA4MDAwMAotLSNkZWZpbmUgSVNQ Q19MTFZNXzlfMCA5MDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEwXzAgMTAwMDAwCi0gI2RlZmlu ZSBJU1BDX0xMVk1fMTFfMCAxMTAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8xMl8wIDEyMDAwMAot IAotLSNkZWZpbmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV84XzAKLSsjZGVmaW5l IE9MREVTVF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fMTBfMAotICNkZWZpbmUgTEFURVNUX1NV UFBPUlRFRF9MTFZNIElTUENfTExWTV8xMl8wCi0gCi0gI2lmZGVmIF9faXNwY19feHN0cgotZGlm ZiAtLWdpdCBhL3NyYy9tYWluLmNwcCBiL3NyYy9tYWluLmNwcAotaW5kZXggOGY2NDMzMGNjLi41 YzkyMGVhYmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFpbi5jcHAKLSsrKyBiL3NyYy9tYWluLmNwcAot QEAgLTU1LDkgKzU1LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1NpZ25hbHMuaD4KLSAj aW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RhcmdldFJlZ2lzdHJ5Lmg+Ci0gI2luY2x1ZGUgPGxsdm0v U3VwcG9ydC9UYXJnZXRTZWxlY3QuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1Rvb2xPdXRwdXRGaWxlLmg+Ci0tI2Vu ZGlmCi0gCi0gI2lmZGVmIElTUENfSE9TVF9JU19XSU5ET1dTCi0gI2RlZmluZSBzdHJjYXNlY21w IHN0cmljbXAKLUBAIC0xODEsMTEgKzE3OSw5IEBAIHN0YXRpYyB2b2lkIGxQcmludFZlcnNpb24o KSB7Ci0gICAgIHNucHJpbnRmKHRhcmdldEhlbHAsIHNpemVvZih0YXJnZXRIZWxwKSwgIlstLXRh cmdldC1vcz08b3M+XVx0XHRcdFNlbGVjdCB0YXJnZXQgT1MuICA8b3M+PXslc30iLAotICAgICAg ICAgICAgICBnLT50YXJnZXRfcmVnaXN0cnktPmdldFN1cHBvcnRlZE9TZXMoKS5jX3N0cigpKTsK LSAgICAgUHJpbnRXaXRoV29yZEJyZWFrcyh0YXJnZXRIZWxwLCAyNCwgVGVybWluYWxXaWR0aCgp LCBzdGRvdXQpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBwcmludGYoIiAgICBbLS10aW1lLXRyYWNlXVx0XHRcdFR1cm4gb24gdGltZSBwcm9maWxlci4g R2VuZXJhdGVzIEpTT04gZmlsZSBiYXNlZCBvbiBvdXRwdXQgZmlsZW5hbWUuXG4iKTsKLSAgICAg cHJpbnRmKCIgICAgWy0tdGltZS10cmFjZS1ncmFudWxhcml0eT08dmFsdWU+XHRNaW5pbXVtIHRp bWUgZ3JhbnVsYXJpdHkgKGluIG1pY3Jvc2Vjb25kcykgdHJhY2VkIGJ5IHRpbWUgIgotICAgICAg ICAgICAgInByb2ZpbGVyLlxuIik7Ci0tI2VuZGlmCi0gICAgIHByaW50ZigiICAgIFstLXZlcnNp b25dXHRcdFx0XHRQcmludCBpc3BjIHZlcnNpb25cbiIpOwotICNpZmRlZiBJU1BDX0dFTlhfRU5B QkxFRAotICAgICBwcmludGYoIiAgICBbLS12Yy1vcHRpb25zPTxcIi1vcHRpb24xIC1vcHRpb24y Li4uXCI+XVx0XHRcdFx0UGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gVmVjdG9yIENvbXBpbGVy IGJhY2tlbmRcbiIpOwotQEAgLTQ2Miw3ICs0NTgsNiBAQCBzdGF0aWMgdm9pZCBzZXRDYWxsaW5n Q29udihWZWN0b3JDYWxsU3RhdHVzIHZlY3RvckNhbGwsIEFyY2ggYXJjaCkgewotICAgICB9Ci0g fQotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotIHN0YXRpYyB2 b2lkIHdyaXRlQ29tcGlsZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAg IGxsdm06OlNtYWxsU3RyaW5nPDEyOD4ganNvbkZpbGVOYW1lKG91dEZpbGVOYW1lKTsKLSAgICAg anNvbkZpbGVOYW1lLmFwcGVuZCgiLmpzb24iKTsKLUBAIC00NzksNyArNDc0LDYgQEAgc3RhdGlj IHZvaWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAg ICAgb2YtPmtlZXAoKTsKLSAgICAgcmV0dXJuOwotIH0KLS0jZW5kaWYKLSAKLSBzdGF0aWMgc3Rk OjpzZXQ8aW50PiBQYXJzaW5nUGhhc2VzKGNoYXIgKnN0YWdlcywgQXJnRXJyb3JzICZlcnJvckhh bmRsZXIpIHsKLSAgICAgY29uc3RleHByIGludCBwYXJzaW5nX2xpbWl0ID0gMTAwOwotQEAgLTc5 MSwxMiArNzg1LDEwIEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLWZvcmNl LWFsaWdubWVudD0iLCAxOCkpIHsKLSAgICAgICAgICAgICBnLT5mb3JjZUFsaWdubWVudCA9IGF0 b2koYXJndltpXSArIDE4KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlIikp IHsKLSAgICAgICAgICAgICBnLT5lbmFibGVUaW1lVHJhY2UgPSB0cnVlOwotICAgICAgICAgfSBl bHNlIGlmICghc3RybmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PSIsIDI1 KSkgewotICAgICAgICAgICAgIGctPnRpbWVUcmFjZUdyYW51bGFyaXR5ID0gYXRvaShhcmd2W2ld ICsgMjUpOwotLSNlbmRpZgotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICIt LXdvZmYiKSB8fCAhc3RyY21wKGFyZ3ZbaV0sICItd29mZiIpKSB7Ci0gICAgICAgICAgICAgZy0+ ZGlzYWJsZVdhcm5pbmdzID0gdHJ1ZTsKLSAgICAgICAgICAgICBnLT5lbWl0UGVyZldhcm5pbmdz ID0gZmFsc2U7Ci1AQCAtMTA1OSw3ICsxMDUxLDYgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIg KkFyZ3ZbXSkgewotIAotICAgICAvLyBUaGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB0aGUgVGFy Z2V0T1MgaXMgZGVjaWRlZC4KLSAgICAgc2V0Q2FsbGluZ0NvbnYodmVjdG9yQ2FsbCwgYXJjaCk7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGlmIChnLT5l bmFibGVUaW1lVHJhY2UpIHsKLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVySW5pdGlh bGl6ZShnLT50aW1lVHJhY2VHcmFudWxhcml0eSwgImlzcGMiKTsKLSAgICAgfQotQEAgLTEwNzcs OSArMTA2OCw1IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAgICAgICAg IH0KLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVyQ2xlYW51cCgpOwotICAgICB9Ci0t I2Vsc2UKLS0gICAgaW50IHJldCA9IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChmaWxlLCBhcmNo LCBjcHUsIHRhcmdldHMsIGZsYWdzLCBvdCwgb3V0RmlsZU5hbWUsIGhlYWRlckZpbGVOYW1lLCBk ZXBzRmlsZU5hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVw c1RhcmdldE5hbWUsIGhvc3RTdHViRmlsZU5hbWUsIGRldlN0dWJGaWxlTmFtZSk7Ci0tI2VuZGlm Ci0gICAgIHJldHVybiByZXQ7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuY3BwIGIvc3Jj L21vZHVsZS5jcHAKLWluZGV4IGZlNzQ1MmRmMS4uYTg1ZmVjNzdhIDEwMDY0NAotLS0tIGEvc3Jj L21vZHVsZS5jcHAKLSsrKyBiL3NyYy9tb2R1bGUuY3BwCi1AQCAtMTcwLDkgKzE3MCw3IEBAIE1v ZHVsZTo6TW9kdWxlKGNvbnN0IGNoYXIgKmZuKSB7Ci0gICAgIG1vZHVsZS0+c2V0RGF0YUxheW91 dChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0U3RyaW5nUmVwcmVzZW50YXRpb24oKSk7 Ci0gCi0gICAgIGlmIChnLT5nZW5lcmF0ZURlYnVnZ2luZ1N5bWJvbHMpIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIFRpbWVTY29wZSgiQ3JlYXRlIERlYnVnIERhdGEiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8v IFRvIGVuYWJsZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBXaW5kb3dzLCB3ZSBoYXZlIHRvIGxldCBs bHZtIGtub3csIHRoYXQKLSAgICAgICAgIC8vIGRlYnVnIGluZm9ybWF0aW9uIHNob3VsZCBiZSBl bWl0dGVkIGluIENvZGVWaWV3IGZvcm1hdC4KLSAgICAgICAgIGlmIChnLT50YXJnZXRfb3MgPT0g VGFyZ2V0T1M6OndpbmRvd3MpIHsKLUBAIC0yMjYsMTAgKzIyNCw4IEBAIGV4dGVybiBZWV9CVUZG RVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlcihGSUxFICosIGludCk7Ci0gZXh0ZXJuIHZvaWQgeXlf ZGVsZXRlX2J1ZmZlcihZWV9CVUZGRVJfU1RBVEUpOwotIAotIGludCBNb2R1bGU6OkNvbXBpbGVG aWxlKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBs bHZtOjpUaW1lVHJhY2VTY29wZSBDb21waWxlRmlsZVRpbWVTY29wZSgKLSAgICAgICAgICJDb21w aWxlRmlsZSIsIGxsdm06OlN0cmluZ1JlZihmaWxlbmFtZSArICgiXyIgKyBzdGQ6OnN0cmluZyhn LT50YXJnZXQtPkdldElTQVN0cmluZygpKSkpKTsKLS0jZW5kaWYKLSAgICAgZXh0ZXJuIHZvaWQg UGFyc2VySW5pdCgpOwotICAgICBQYXJzZXJJbml0KCk7Ci0gCi1AQCAtMjM4LDE4ICsyMzQsMTQg QEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAgIC8vIHZhcmlhYmxlICdtJyB0byBi ZSBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlICh3aGljaCBpdCBpc24ndCB1bnRpbAotICAgICAv LyB0aGUgTW9kdWxlIGNvbnN0cnVjdG9yIHJldHVybnMuLi4pCi0gICAgIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIFRpbWVTY29wZSgiRGVmaW5lU3RkbGliIik7Ci0tI2VuZGlmCi0gICAgICAgICBEZWZpbmVT dGRsaWIoc3ltYm9sVGFibGUsIGctPmN0eCwgbW9kdWxlLCBnLT5pbmNsdWRlU3RkbGliKTsKLSAg ICAgfQotIAotICAgICBib29sIHJ1blByZXByb2Nlc3NvciA9IGctPnJ1bkNQUDsKLSAKLSAgICAg aWYgKHJ1blByZXByb2Nlc3NvcikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9udGVu ZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghSXNTdGRpbihmaWxlbmFtZSkpIHsK LSAgICAgICAgICAgICAvLyBUcnkgdG8gb3BlbiB0aGUgZmlsZSBmaXJzdCwgc2luY2Ugb3RoZXJ3 aXNlIHdlIGNyYXNoIGluIHRoZQotICAgICAgICAgICAgIC8vIHByZXByb2Nlc3NvciBpZiB0aGUg ZmlsZSBkb2Vzbid0IGV4aXN0LgotQEAgLTI2OCw5ICsyNjAsNyBAQCBpbnQgTW9kdWxlOjpDb21w aWxlRmlsZSgpIHsKLSAgICAgICAgIHl5cGFyc2UoKTsKLSAgICAgICAgIHl5X2RlbGV0ZV9idWZm ZXIoc3RyYnVmKTsKLSAgICAgfSBlbHNlIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiRnJv bnRlbmQgcGFyc2VyIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBObyBwcmVwcm9jZXNzb3IsIGp1 c3Qgb3BlbiB1cCB0aGUgZmlsZSBpZiBpdCdzIG5vdCBzdGRpbi4uCi0gICAgICAgICBGSUxFICpm ID0gTlVMTDsKLSAgICAgICAgIGlmIChJc1N0ZGluKGZpbGVuYW1lKSkgewotQEAgLTI5Nyw5ICsy ODcsNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAKLSAgICAgaWYgKGRpQnVpbGRl cikKLSAgICAgICAgIGRpQnVpbGRlci0+ZmluYWxpemUoKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3Bl KCJPcHRpbWl6ZSIpOwotLSNlbmRpZgotICAgICBpZiAoZXJyb3JDb3VudCA9PSAwKQotICAgICAg ICAgT3B0aW1pemUobW9kdWxlLCBnLT5vcHQubGV2ZWwpOwotIAotQEAgLTEyNDMsMTUgKzEyMzEs OCBAQCBib29sIE1vZHVsZTo6d3JpdGVPYmplY3RGaWxlT3JBc3NlbWJseShsbHZtOjpUYXJnZXRN YWNoaW5lICp0YXJnZXRNYWNoaW5lLCBsbHZtOgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIC8vIEZpZ3VyZSBv dXQgaWYgd2UncmUgZ2VuZXJhdGluZyBvYmplY3QgZmlsZSBvciBhc3NlbWJseSBvdXRwdXQsIGFu ZAotICAgICAvLyBzZXQgYmluYXJ5IG91dHB1dCBmb3Igb2JqZWN0IGZpbGVzCi0tI2lmIElTUENf TExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgQXNzZXJ0KCFnLT50YXJnZXQtPmlz R2VuWFRhcmdldCgpKTsKLS0gICAgbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q29kZUdlbkZpbGVUeXBl IGZpbGVUeXBlID0KLS0gICAgICAgIChvdXRwdXRUeXBlID09IE9iamVjdCkgPyBsbHZtOjpUYXJn ZXRNYWNoaW5lOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDR0ZUX0Fz c2VtYmx5RmlsZTsKLS0gICAgYm9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6VGFyZ2V0 TWFjaGluZTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgIGxs dm06OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9IChvdXRwdXRUeXBlID09IE9iamVjdCkgPyBs bHZtOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpDR0ZUX0Fzc2VtYmx5RmlsZTsKLSAgICAgYm9v bCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZW5kaWYK LSAKLSAgICAgbGx2bTo6c3lzOjpmczo6T3BlbkZsYWdzIGZsYWdzID0gYmluYXJ5ID8gbGx2bTo6 c3lzOjpmczo6Rl9Ob25lIDogbGx2bTo6c3lzOjpmczo6Rl9UZXh0OwotIAotQEAgLTIyMTksMTEg KzIyMDAsNyBAQCB2b2lkIE1vZHVsZTo6ZXhlY1ByZXByb2Nlc3Nvcihjb25zdCBjaGFyICppbmZp bGVuYW1lLCBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gKgotICAgICBpbnN0LnNldFRhcmdldCh0 YXJnZXQpOwotICAgICBpbnN0LmNyZWF0ZVNvdXJjZU1hbmFnZXIoaW5zdC5nZXRGaWxlTWFuYWdl cigpKTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBj bGFuZzo6RnJvbnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1 dEtpbmQ6OlVua25vd24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgY2xhbmc6OkZyb250 ZW5kSW5wdXRGaWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kKCkpOwot LSNlbmRpZgotIAotICAgICBpbnN0LkluaXRpYWxpemVTb3VyY2VNYW5hZ2VyKGlucHV0RmlsZSk7 Ci0gCi1AQCAtMjcyMiw5ICsyNjk5LDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChj b25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAg ICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAgICAgaWYgKG0tPkNvbXBpbGVG aWxlKCkgPT0gMCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIpOwot LSNlbmRpZgotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICAgICAgICAgICAgIGlmIChvdXRw dXRUeXBlID09IEFzbSB8fCBvdXRwdXRUeXBlID09IE9iamVjdCkgewotICAgICAgICAgICAgICAg ICBpZiAoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSkgewotQEAgLTI4NTUsOSArMjgzMCw3IEBA IGludCBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3JjRmlsZSwgQXJjaCBh cmNoLCBjb25zdCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICAgICAgbSA9IG5ldyBNb2R1bGUo c3JjRmlsZSk7Ci0gICAgICAgICAgICAgaW50IGNvbXBpbGVGaWxlRXJyb3IgPSBtLT5Db21waWxl RmlsZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAg ICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIpOwotLSNlbmRp ZgotICAgICAgICAgICAgIGlmIChjb21waWxlRmlsZUVycm9yID09IDApIHsKLSAgICAgICAgICAg ICAgICAgLy8gQ3JlYXRlIHRoZSBkaXNwYXRjaCBtb2R1bGUsIHVubGVzcyBhbHJlYWR5IGNyZWF0 ZWQ7Ci0gICAgICAgICAgICAgICAgIC8vIGluIHRoZSBsYXR0ZXIgY2FzZSwganVzdCBkbyB0aGUg Y2hlY2tpbmcKLWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmggYi9zcmMvbW9kdWxlLmgKLWluZGV4 IDYxZDNjZmVhMC4uNjAzMTI0ZDUwIDEwMDY0NAotLS0tIGEvc3JjL21vZHVsZS5oCi0rKysgYi9z cmMvbW9kdWxlLmgKLUBAIC00Myw5ICs0Myw3IEBACi0gCi0gI2luY2x1ZGUgPGxsdm0vSVIvRGVi dWdJbmZvLmg+Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g I2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAKLSAjaWZk ZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAjaW5jbHVkZSAib2NsX2lnY19pbnRlcmZhY2UvaWdjX29j bF9kZXZpY2VfY3R4LmgiCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAot aW5kZXggYTY1NWE4MzQ0Li41YjFhYzdiNjMgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysr IGIvc3JjL29wdC5jcHAKLUBAIC02Niw2ICs2Niw3IEBACi0gI2luY2x1ZGUgPGxsdm0vSVIvSW5z dHJ1Y3Rpb25zLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljSW5zdC5oPgotICNpbmNs dWRlIDxsbHZtL0lSL0ludHJpbnNpY3MuaD4KLSsjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNz WDg2Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvTGVnYWN5UGFzc01hbmFnZXIuaD4KLSAjaW5jbHVk ZSA8bGx2bS9JUi9Nb2R1bGUuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9QYXR0ZXJuTWF0Y2guaD4K LUBAIC04NSw5ICs4Niw2IEBACi0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9TY2FsYXIvSW5z dFNpbXBsaWZ5UGFzcy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaD4KLSAj aW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1V0aWxzL0Jhc2ljQmxvY2tVdGlscy5oPgotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotLSNpbmNsdWRlIDxsbHZtL0lSL0lu dHJpbnNpY3NYODYuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX0xJTlVYCi0g I2luY2x1ZGUgPGFsbG9jYS5oPgotQEAgLTEwMDMsMTAgKzEwMDEsNyBAQCBib29sIEludHJpbnNp Y3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAg ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRD YWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotICAgICAgICAgICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfbG9h ZCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAg ICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0tICAgICAgICAgICAgICAgICAg ICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLCBhbGlnbiwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VsaWYgSVNQQ19MTFZN X1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0 ID0gbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGls ZSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rp b24gKilOVUxMKTsKLSAjZWxzZQotQEAgLTEwNDMsMTMgKzEwMzgsOCBAQCBib29sIEludHJpbnNp Y3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAg ICAgICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgp OwotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNh bGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZFN0b3JlMzIgPyA0IDogODsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAg ICBsbHZtOjpTdG9yZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVl LCBjYXN0UHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0gICAgICAgICAgICAgICAg c3RvcmVJbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlCi0gICAgICAgICAgICAgICAg IGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUs IGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXli ZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgICAgICBs Q29weU1ldGFkYXRhKHN0b3JlSW5zdCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsbHZt OjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBzdG9yZUluc3QpOwotIAotQEAgLTEwNjYs OSArMTA1Niw3IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJh c2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkZ1bmN0aW9uKGxs dm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW50cmluc2ljc09w dDo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2Rp ZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0xMjM5LDkg KzEyMjcsNyBAQCBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5PbkJhc2ljQmxvY2so bGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNz OjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNT Y29wZSgiSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUo KSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChs bHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9u QmFzaWNCbG9jayhCQik7Ci1AQCAtMjk3NCwxNiArMjk2MCwxMCBAQCBzdGF0aWMgYm9vbCBsSW1w cm92ZU1hc2tlZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotIAotICAgICAgICAg ICAgIGx2YWx1ZSA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsdmFsdWUsIHB0clR5cGUsICJsdmFs dWVfdG9fcHRyX3R5cGUiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0YShs dmFsdWUsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlf MAotLSAgICAgICAgICAgIHN0b3JlID0KLS0gICAgICAgICAgICAgICAgbmV3IGxsdm06OlN0b3Jl SW5zdChydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBn LT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pOwotLSNl bHNlCi0gICAgICAgICAgICAgc3RvcmUgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KAotICAgICAgICAg ICAgICAgICBydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAg ICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBn LT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi0gICAg ICAgICAgICAgICAgICAgICAudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgIH0KLSAg ICAgICAgIGlmIChzdG9yZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0YShz dG9yZSwgY2FsbEluc3QpOwotQEAgLTMwNTksMTEgKzMwMzksNyBAQCBzdGF0aWMgYm9vbCBsSW1w cm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Jsb2Nr OjppdGVyYQotICAgICAgICAgewotICAgICAgICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSBs bHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJbnN0LT5nZXRUeXBlKCksIDApOwotICAgICAgICAg ICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIHB0clR5cGUsICJwdHJfY2FzdF9m b3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBjYWxsSW5z dC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7 Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsb2FkID0gbmV3IGxs dm06OkxvYWRJbnN0KAotICAgICAgICAgICAgICAgICBwdHIsIGNhbGxJbnN0LT5nZXROYW1lKCks IGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVB bGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0 b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotQEAgLTMxMjksOSArMzEwNSw3IEBAIGJvb2wg SW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZi YikgewotIAotIGJvb2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6 RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbXByb3ZlTWVtb3J5T3Bz UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikg ewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0zNDI0 LDkgKzMzOTgsNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQ dHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06OgotICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxsdm06OlZhbHVlICpwdHIgPSBsR0VQ SW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5ld19iYXNlIiwgaW5zZXJ0QmVmb3Jl KTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5 cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJ bnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBhbGlnbiwg aW5zZXJ0QmVmb3JlKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBf MAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICByZXR1cm4g bmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAv LyBMTFZNIDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nh c3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRU eXBlKCksIHB0ciwKLUBAIC00MTM1LDkgKzQxMDcsNyBAQCBib29sIEdhdGhlckNvYWxlc2NlUGFz czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBHYXRo ZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBG LmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAg ICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55 IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNDQ2Nyw5ICs0NDM3LDcgQEAgYm9vbCBSZXBs YWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VQ c2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRp ZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNC bG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2so QkIpOwotQEAgLTQ1NzMsOSArNDU0MSw3IEBAIGJvb2wgSXNDb21waWxlVGltZUNvbnN0YW50UGFz czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJc0Nv bXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7 Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06 OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSXNDb21waWxlVGltZUNvbnN0YW50UGFzczo6cnVu T25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFu eSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAg ICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01MjAxLDkgKzUxNjcs NyBAQCBib29sIFBlZXBob2xlUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gCi0gYm9vbCBQZWVwaG9sZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rp b24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAg ICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQZWVwaG9sZVBhc3M6OnJ1bk9uRnVu Y3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBm YWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1v ZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTI5OSw5ICs1MjYzLDcgQEAg Ym9vbCBSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rp b24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNl U3RkbGliU2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgot ICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9j ayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIp OwotQEAgLTUzOTksOSArNTM2MSw3IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhCb29sZWFuU2Vs ZWN0UGFzczo6Zml4U2VsZWN0KGxsdm06OlNlbGVjdEluc3QgKnNlbCwgbGx2bTo6Ci0gfQotIAot IGJvb2wgRml4Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2 bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25G dW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9 IGZhbHNlOwotIAotICAgICByZXR1cm4gbW9kaWZpZWRBbnk7Ci1AQCAtNTk2NCw5ICs1OTI0LDcg QEAgYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJHZW5YR2F0 aGVyQ29hbGVzY2luZzo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAg ICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sg JkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsK LUBAIC02MTEzLDkgKzYwNzEsNyBAQCBib29sIFByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpy dW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFByb21vdGVU b1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0g Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9u RnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkg PSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAg IG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjE4MSw5ICs2MTM3LDcg QEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNp Y0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1bmN0 aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFj ZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgot ICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9j ayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIp OwotQEAgLTYyNzgsOSArNjIzMiw3IEBAIGJvb2wgUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVVu c3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlv biIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNl OwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZp ZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MzY5LDkgKzYzMjEsNyBAQCBib29s IENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gfQotIAotIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9u KGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiQ2hlY2tVbnN1cHBv cnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBi b29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIg OiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAg LTY0NDAsOSArNjM5MCw3IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIE1hbmdsZU9wZW5DTEJ1 aWx0aW5zOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1 bmNTY29wZSgiTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUo KSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChs bHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9u QmFzaWNCbG9jayhCQik7Ci1AQCAtNjgyOCw5ICs2Nzc2LDcgQEAgYm9vbCBGaXhBZGRyZXNzU3Bh Y2U6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAgICAgLy8gVHJhbnNmb3Jt YXRpb25zIGFyZSBjb3JyZWN0IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbnRlcm5hbC4KLSAg ICAgLy8gVGhpcyBpcyBkdWUgdG8gYWRkcmVzcyBzcGFjZSBjYWxjdWxhdGlvbiBhbGdvcml0aG0u Ci0gICAgIC8vIFRPRE86IHByb2JsZW1zIGNhbiBiZSBtZXQgaW4gY2FzZSBvZiBTdGFjayBDYWxs cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpU aW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEFkZHJlc3NTcGFjZTo6cnVuT25GdW5jdGlvbiIs IEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuZ2V0TGlua2FnZSgpID09IGxsdm06 Okdsb2JhbFZhbHVlOjpMaW5rYWdlVHlwZXM6OkludGVybmFsTGlua2FnZSkKLSAgICAgICAgIHJl dHVybiBmYWxzZTsKLSAKLUBAIC02ODU0LDkgKzY4MDAsNyBAQCBjbGFzcyBEZW1vdGVQSElzIDog cHVibGljIGxsdm06OkZ1bmN0aW9uUGFzcyB7Ci0gY2hhciBEZW1vdGVQSElzOjpJRCA9IDA7Ci0g Ci0gYm9vbCBEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVU cmFjZVNjb3BlIEZ1bmNTY29wZSgiRGVtb3RlUEhJczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFt ZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuaXNEZWNsYXJhdGlvbigpIHx8IHNraXBGdW5jdGlv bihGKSkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6SW5z dHJ1Y3Rpb24gKj4gV29ya0xpc3Q7Ci1kaWZmIC0tZ2l0IGEvc3JjL3R5cGUuY3BwIGIvc3JjL3R5 cGUuY3BwCi1pbmRleCA2ODhhNGU4NzQuLmZhMGNiMDRkYiAxMDA2NDQKLS0tLSBhL3NyYy90eXBl LmNwcAotKysrIGIvc3JjL3R5cGUuY3BwCi1AQCAtMTgyMiwxNCArMTgyMiwxMCBAQCBsbHZtOjpE SVR5cGUgKlN0cnVjdFR5cGU6OkdldERJVHlwZShsbHZtOjpESVNjb3BlICpzY29wZSkgY29uc3Qg ewotICAgICBsbHZtOjpESUZpbGUgKmRpRmlsZSA9IHBvcy5HZXRESUZpbGUoKTsKLSAgICAgbGx2 bTo6RElOYW1lc3BhY2UgKmRpU3BhY2UgPSBwb3MuR2V0RElOYW1lc3BhY2UoKTsKLSAgICAgcmV0 dXJuIG0tPmRpQnVpbGRlci0+Y3JlYXRlU3RydWN0VHlwZShkaVNwYWNlLCBHZXRTdHJpbmcoKSwg ZGlGaWxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5m aXJzdF9saW5lLCAgICAgICAgICAvLyBMaW5lIG51bWJlcgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAvLyBTaXplIGlu IGJpdHMKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCkg KiA4LCAvLyBBbGlnbm1lbnQgaW4gYml0cwotLSNlbHNlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMTFZNIDEwLjArCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZpcnN0X2xpbmUs ICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBudW1iZXIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMoKSwgICAgICAgICAg ICAvLyBTaXplIGluIGJpdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsYXlvdXQtPmdldEFsaWdubWVudCgpLnZhbHVlKCkgKiA4LCAvLyBBbGlnbm1lbnQgaW4g Yml0cwotLSNlbmRpZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OkRJTm9kZTo6RmxhZ1plcm8sIC8vIEZsYWdzCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywgICAgICAgICAgICAg Ly8gRmxhZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LCBlbGVtZW50cyk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlz cGMgYi90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi1pbmRleCA5ODA2NGQ4NGQuLjRmZWI3M2Rk NyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLSsrKyBiL3Rlc3RzL2xp dC10ZXN0cy8xNzcxLmlzcGMKLUBAIC01LDcgKzUsNiBAQAotIC8vIFJVTjogJXtpc3BjfSAlcyAt LXRhcmdldD1zc2U0LWkxNng4IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2st cHJlZml4PUNIRUNLU1NFNF9JMTZYOAotIC8vIFJVTjogJXtpc3BjfSAlcyAtLXRhcmdldD1zc2U0 LWk4eDE2IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNL U1NFNF9JOFgxNgotIAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0gLy8gUkVRVUlSRVM6IFg4 Nl9FTkFCTEVECi0gCi0gLy8gQ0hFQ0tBVlgyX0kzMlg4OiB7e1thLXpdKnhvclthLXpdKn19ICAl eG1tMCwgJXhtbTAsICV4bW0wCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNw YyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLWluZGV4IDc5M2E4ODY2Yy4uMTg5ZWRmNGMz IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotKysrIGIvdGVzdHMvbGl0 LXRlc3RzLzE4NDQuaXNwYwotQEAgLTYsOSArNiw2IEBACi0gCi0gLy8gUkVRVUlSRVM6IFg4Nl9F TkFCTEVECi0gCi0tLy8gSXQgZG9lc24ndCB3b3JrIGZvciBhbnl0aGluZyBlYXJsaWVyIHRoYW4g MTAuMCwgYnV0IGl0IHdpbGwgbm90IGJlIGZpeGVkLCBzbyBkb24ndCBydW4uCi0tLy8gUkVRVUlS RVM6IExMVk1fMTBfMCsKLS0KLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQ2NCB2YXJfNjsK LSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQxNiB2YXJfMTE7Ci0gZXh0ZXJuIHVuaWZvcm0g Ym9vbCBhcnJfMjAxIFsxXSBbMTVdIFsyMF07Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3Rz LzE5MjYuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLWluZGV4IDcwZjdjYzNjMi4u NzkyMWM5MWE2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotKysrIGIv dGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotQEAgLTIsOCArMiw2IEBACi0gLy8gUlVOOiBjYXQg JVQvMTkyNi5vLmpzb24gXAotIC8vIFJVTjogICB8IEZpbGVDaGVjayAlcwotIAotLS8vIFJFUVVJ UkVTOiBMTFZNXzEwXzArCi0tCi0gLy8gQ0hFQ0s6ICJ0cmFjZUV2ZW50cyIKLSAvLyBDSEVDSzog ImRldGFpbCIKLSBleHBvcnQgdW5pZm9ybSBpbnQgZm9vKHVuaWZvcm0gaW50IGFbXSwgdW5pZm9y bSBpbnQgY291bnQpIHsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNw YyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1pbmRleCA1MTZlZmRkNGMuLjRkNjAx ODZmNiAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi0rKysgYi90 ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwotQEAgLTI0LDYgKzI0LDggQEAKLSAvLzsgUlVO OiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1 PWljbAotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNz ZTItaTMyeDQgLS1jcHU9aWNlbGFrZS1zZXJ2ZXIKLSAvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0 Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljeAotKy8vOyBSVU46ICV7 aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGln ZXJsYWtlCi0rLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9 c3NlMi1pMzJ4NCAtLWNwdT10Z2wKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLSAKLWRp ZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMgYi90ZXN0cy9s aXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggZWYwMDAwMGU1Li4wMDAwMDAwMDAKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4 Nl9sbHZtMTAuaXNwYwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTEgKzAsMCBAQAotLS8vIFRoZSB0 ZXN0IGNoZWNrcyB0aGF0IGNwdSBkZWZpbml0aW9ucyAoaW5jbHVkaW5nIGFsbCBzeW5vbnltcykg YXJlIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBieSBjb21waWxlci4KLS0KLS0vLzsgUlVOOiAle2lz cGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRpZ2Vy bGFrZQotLS8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNz ZTItaTMyeDQgLS1jcHU9dGdsCi0tCi0tLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0tLy8gUkVR VUlSRVM6IExMVk1fMTBfMCsKLS0KLS11bmlmb3JtIGludCBpOwotLQotLXZvaWQgZm9vKCkge30K LWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyBiL3Rlc3RzL2xpdC10ZXN0cy9s aXQuY2ZnCi1pbmRleCAxNzAxNjU3OWQuLjA0NWU2OTQzNyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xp dC10ZXN0cy9saXQuY2ZnCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotQEAgLTMwLDEx ICszMCw2IEBAIHByaW50KCJDb25maWc6IikKLSAKLSAjIExMVk0gdmVyc2lvbgotIGxsdm1fdmVy c2lvbiA9IExvb3NlVmVyc2lvbihpc3BjX2xsdm1fdmVyc2lvbl9udW1iZXIpCi0taWYgbGx2bV92 ZXJzaW9uID49IExvb3NlVmVyc2lvbigiMTAuMC4wIik6Ci0tICAgIHByaW50KCJMTFZNXzEwXzAr OiBZRVMiKQotLSAgICBjb25maWcuYXZhaWxhYmxlX2ZlYXR1cmVzLmFkZCgiTExWTV8xMF8wKyIp Ci0tZWxzZToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IE5PIikKLSAKLSBpZiBsbHZtX3ZlcnNp b24gPj0gTG9vc2VWZXJzaW9uKCIxMi4wLjAiKToKLSAgICAgcHJpbnQoIkxMVk1fMTJfMCs6IFlF UyIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoIGIv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDQyM2FmYzllM2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MDQgKzAsMCBA QAotRnJvbSAxODUxZDE4YjIxM2RiYWQxNjk5MzcwNzYxNzZiMmQ1NTA5NzMzYzc2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJh amVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDEyIEphbiAyMDIxIDIyOjE1OjEy IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeGVzICMxODIxIC0gUmVtb3ZpbmcgTExWTUdldE5h bWUoKSBhbmQgc3dpdGNoaW5nIHRvCi0gTExWTTo6VHdpbmUuCi0KLS0tLQotIHNyYy9jdHguY3Bw ICAgICAgfCAzMDQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBzcmMvY3R4LmggICAgICAgIHwgIDcyICsrKysrLS0tLS0tCi0gc3JjL2V4cHIuY3BwICAg ICB8ICAzNiArKystLS0KLSBzcmMvbGx2bXV0aWwuY3BwIHwgIDE3IC0tLQotIHNyYy9sbHZtdXRp bC5oICAgfCAgIDUgLQotIHNyYy9vcHQuY3BwICAgICAgfCAxMDMgKysrKysrKysrLS0tLS0tLQot IDYgZmlsZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDQyYzRlYTA5ZC4u ZGVkNTI0YjcxIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1A QCAtMTAyMCw4ICsxMDIwLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxh YmVsKGludCB2YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6 QmFzaWNCbG9jayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJl TWFzaygpKSB7Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2Fz ZSBpbXBsZW1lbnRhdGlvbgotLSAgICAgICAgc3RkOjpzdHJpbmcgYmJOYW1lID0gYmJDYXNlLT5n ZXROYW1lKCkuc3RyKCkgKyAiX2ltcGwiOwotLSAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJh c2ljQmxvY2soYmJOYW1lLmNfc3RyKCksIGJiQ2FzZSk7Ci0rICAgICAgICBsbHZtOjpUd2luZSBi Yk5hbWUgPSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiOwotKyAgICAg ICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNhc2UpOwotICAgICB9 Ci0gI2VuZGlmCi0gCi1AQCAtMTE4NSw3ICsxMTg1LDcgQEAgYm9vbCBGdW5jdGlvbkVtaXRDb250 ZXh0Ojppbml0TGFiZWxCQmxvY2tzKEFTVE5vZGUgKm5vZGUsIHZvaWQgKmRhdGEpIHsKLSAgICAg aWYgKGN0eC0+bGFiZWxNYXAuZmluZChscy0+bmFtZSkgIT0gY3R4LT5sYWJlbE1hcC5lbmQoKSkK LSAgICAgICAgIEVycm9yKGxzLT5wb3MsICJNdWx0aXBsZSBsYWJlbHMgbmFtZWQgXCIlc1wiIGlu IGZ1bmN0aW9uLiIsIGxzLT5uYW1lLmNfc3RyKCkpOwotICAgICBlbHNlIHsKLS0gICAgICAgIGxs dm06OkJhc2ljQmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1lLmNfc3Ry KCkpOwotKyAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxv Y2sobHMtPm5hbWUpOwotICAgICAgICAgY3R4LT5sYWJlbE1hcFtscy0+bmFtZV0gPSBiYjsKLSAg ICAgfQotICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0xMjk5LDcgKzEyOTksNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QW55KGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8v IFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMg ZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbnkiKSk7Ci0rICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX2FueSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMxNSw3ICsxMzE1LDcgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAqbWFzaykgewotICAgICAv LyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFz IGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAg IGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxs SW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfYWxsIikpOwotKyAgICBy ZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1l KCkpICsgIl9hbGwiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 Ok5vbmUobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzMxLDcgKzEzMzEsNyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewotICAg ICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJz IGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0g ICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBD YWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfbm9uZSIpKTsKLSsg ICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0 TmFtZSgpKSArICJfbm9uZSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUgKnYpIHsKLUBAIC0xMzQ5LDcgKzEzNDksNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUgKnYp IHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBh cmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5l ZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICBy ZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBMTFZNR2V0TmFtZSh2LCAiX21vdm1zayIpKTsK LSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgdiwgbGx2bTo6VHdpbmUodi0+Z2V0TmFt ZSgpKSArICJfbW92bXNrIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpNYXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKSB7Ci1A QCAtMTM2NCwxMSArMTM2NCwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TWFza3NBbGxFcXVhbChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MgotICNlbHNlCi0g ICAgIGlmIChnLT50YXJnZXQtPmdldEFyY2goKSA9PSBBcmNoOjp3YXNtMzIpIHsKLSAgICAgICAg IGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtLT5tb2R1bGUtPmdldEZ1bmN0aW9uKCJfX3dhc21fY21w X21za19lcSIpOwotLSAgICAgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0s IExMVk1HZXROYW1lKCJ3YXNtX2NtcF9tc2tfZXEiLCB2MSwgdjIpKTsKLSsgICAgICAgIHJldHVy biBDYWxsSW5zdChmbW0sIE5VTEwsIHt2MSwgdjJ9LCAoKGxsdm06OlR3aW5lKCJ3YXNtX2NtcF9t c2tfZXFfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+Z2V0TmFtZSgpKTsKLSAgICAg fQotICAgICBsbHZtOjpWYWx1ZSAqbW0xID0gTGFuZU1hc2sodjEpOwotICAgICBsbHZtOjpWYWx1 ZSAqbW0yID0gTGFuZU1hc2sodjIpOwotLSAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0cnVj dGlvbjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsIExMVk1HZXROYW1l KCJlcXVhbCIsIHYxLCB2MikpOwotKyAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlv bjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsCi0rICAgICAgICAgICAg ICAgICAgICgobGx2bTo6VHdpbmUoImVxdWFsXyIpICsgdjEtPmdldE5hbWUoKSkgKyAiXyIpICsg djItPmdldE5hbWUoKSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTEzOTIsNyArMTM5Myw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpz dHJpbmcgJnN0cikgewotICAgICByZXR1cm4gbmV3IGxsdm06OkJpdENhc3RJbnN0KGxzdHJQdHIs IExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCAic3RyX3ZvaWRfcHRyIiwgYmJsb2NrKTsKLSB9 Ci0gCi0tbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNC bG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlcikgewot K2xsdm06OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxvY2so Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7 Ci0gICAgIGxsdm06OkJhc2ljQmxvY2sgKm5ld0JCID0gbGx2bTo6QmFzaWNCbG9jazo6Q3JlYXRl KCpnLT5jdHgsIG5hbWUsIGxsdm1GdW5jdGlvbik7Ci0gICAgIGlmIChpbnNlcnRBZnRlcikKLSAg ICAgICAgIG5ld0JCLT5tb3ZlQWZ0ZXIoaW5zZXJ0QWZ0ZXIpOwotQEAgLTE0MTYsMTQgKzE0MTcs MTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkkxVmVjVG9Cb29sVmVjKGxs dm06OlZhbHVlICpiKSB7Ci0gCi0gICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8 IGF0LT5nZXROdW1FbGVtZW50cygpOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq ZWx0ID0gRXh0cmFjdEluc3QoYiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNleHQg PSBTd2l0Y2hCb29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0b3JhZ2VUeXBlLCBM TFZNR2V0TmFtZShlbHQsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqc2V4dCA9Ci0rICAgICAgICAgICAgICAgIFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVz OjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIGxsdm06OlR3aW5lKGVsdC0+Z2V0TmFtZSgpKSArICJf dG9fYm9vbHZlYyIpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBzZXh0LCBp KTsKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgICAvLyBGb3Igbm9uLWFycmF5IHR5cGVzLCBjb252ZXJ0IHRvICdMTFZNVHlwZXM6OkJvb2xW ZWN0b3JUeXBlJyBpZgotICAgICAgICAgLy8gbmVjZXNzYXJ5LgotLSAgICAgICAgcmV0dXJuIFN3 aXRjaEJvb2xTaXplKGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIExMVk1HZXROYW1lKGIs ICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6ZShiLCBMTFZN VHlwZXM6OkJvb2xWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShiLT5nZXROYW1lKCkpICsgIl90b19i b29sdmVjIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY1LDcgQEAgc3RhdGljIGlu dCBsQXJyYXlWZWN0b3JXaWR0aChsbHZtOjpUeXBlICp0KSB7Ci0gfQotIAotIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6 QmluYXJ5T3BzIGluc3QsIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MCA9PSBOVUxMIHx8IHYxID09 IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4g MCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNTczLDcgKzE1NzUsNyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rp b246OkJpbmFyeU9wcyBpbgotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdjAtPmdldFR5cGUoKTsK LSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAo YXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSA/IG5hbWUgOiAiIiwg YmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFk ZERlYnVnUG9zKGJvcCk7Ci0gICAgICAgICByZXR1cm4gYm9wOwotICAgICB9IGVsc2UgewotQEAg LTE1OTEsNyArMTU5Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5h cnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0gICAgIH0KLSB9Ci0g Ci0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZh bHVlICp2LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTYwMywx NCArMTYwNSwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0 b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIGxsdm06OlR5cGUgKnR5 cGUgPSB2LT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0b3JXaWR0 aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqYmluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUg PyBuYW1lIDogIm5vdCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYmlu c3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gIm5vdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoYmlu c3QpOwotICAgICAgICAgcmV0dXJuIGJpbnN0OwotICAgICB9IGVsc2UgewotICAgICAgICAgbGx2 bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh0eXBlKTsKLSAgICAgICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpv cCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZSA/IG5hbWUgOiAibm90 IiwgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlTm90KGEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gIm5vdCIgOiBu YW1lLCBiYmxvY2spOwotICAgICAgICAgICAgIEFkZERlYnVnUG9zKG9wKTsKLSAgICAgICAgICAg ICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotQEAgLTE2MzgsNyAr MTY0MCw3IEBAIHN0YXRpYyBsbHZtOjpUeXBlICpsR2V0TWF0Y2hpbmdCb29sVmVjdG9yVHlwZShs bHZtOjpUeXBlICp0eXBlKSB7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJ bnN0OjpQcmVkaWNhdGUgcHJlZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwgY29uc3QgY2hhciAqbmFt ZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZh bHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAt MTY0OCw3ICsxNjUwLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNtcElu c3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAgICAgbGx2bTo6VHlw ZSAqdHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0 b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqY2kgPSBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwgcHJlZCwgdjAs IHYxLCBuYW1lID8gbmFtZSA6ICJjbXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmNpID0KLSsgICAgICAgICAgICBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwgcHJl ZCwgdjAsIHYxLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJjbXAiIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGNpKTsKLSAgICAgICAgIHJldHVybiBjaTsKLSAgICAg fSBlbHNlIHsKLUBAIC0xNjU3LDE0ICsxNjYwLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZt Ci0gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5U2l6ZTsgKytpKSB7Ci0gICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKmEgPSBFeHRyYWN0SW5zdCh2MCwgaSk7Ci0gICAgICAgICAgICAg bGx2bTo6VmFsdWUgKmIgPSBFeHRyYWN0SW5zdCh2MSwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKm9wID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lKTsKLSsgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lKTsKLSAgICAgICAgICAgICByZXQgPSBJbnNlcnRJ bnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAg fQotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3Jt KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotQEAgLTE3MDQsMjEgKzE3MDcsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIg Km4KLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpC aXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUg PSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9iaXRjYXN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3RydWN0 aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxv Y2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpCaXRDYXN0SW5z dCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06 OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9iaXRjYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0g ICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0x NzI4LDIzICsxNzI5LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJU b0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICAvLyBu by1vcCBmb3IgdmFyeWluZyBwb2ludGVyczsgdGhleSdyZSBhbHJlYWR5IHZlY3RvcnMgb2YgaW50 cwotICAgICAgICAgcmV0dXJuIHZhbHVlOwotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAg ICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0cjJpbnQiKTsKLSAgICAgbGx2bTo6 VHlwZSAqdHlwZSA9IExMVk1UeXBlczo6UG9pbnRlckludFR5cGU7Ci0tICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwg YmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9J bnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g bGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1s bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVl ICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg aWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0 cjJpbnQiKTsKLS0KLSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgp OwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAg ICAgICAgLy8gdmFyeWluZyBwb2ludGVyCi1AQCAtMTc1MiwyNyArMTc0OSwyNiBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdAotICAgICAgICAgICAgIC8vIGFscmVhZHkgdGhlIHJpZ2h0IHR5cGUt LWRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBlbHNlIGlmIChmcm9t VHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRz KCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsK LSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5l KHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAgICAgICAgZWxzZSB7 Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBlLT5nZXRTY2FsYXJT aXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7Ci0tICAgICAgICAg ICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJl dHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxs dm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAgICAg ICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06 OlB0clRvSW50SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QoCi0rICAgICAgICB2YWx1 ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5n ZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9z KGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUg KnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5 cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9pbnQycHRyIik7Ci0tCi0gICAgIGxs dm06OlR5cGUgKmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYgKGxsdm06Omlz YTxsbHZtOjpWZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZhcnlpbmcgcG9p bnRlcgotQEAgLTE3ODAsOTUgKzE3NzYsODcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnQKLSAg ICAgICAgICAgICAvLyBkb25lCi0gICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAg ZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA+IHRvVHlwZS0+Z2V0U2Nh bGFyU2l6ZUluQml0cygpKQotLSAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRv VHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBl LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lKTsKLSAg ICAgICAgIGVsc2UgewotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBmcm9tVHlw ZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpIDwgdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkp OwotLSAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsg ICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBu YW1lKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSwgYmJsb2NrKTsK LSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KAot KyAgICAgICAgdmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpU d2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lLCBiYmxvY2spOwotICAg ICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Oklu c3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2 YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JD b3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5h bWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl90cnVuYyIp OwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBj YXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJl bnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IG5ldyBsbHZtOjpUcnVuY0luc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAg IGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5zdCgKLSsgICAgICAg IHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVl LT5nZXROYW1lKCkpICsgIl90cnVuYyIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1Bv cyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpG dW5jdGlvbkVtaXRDb250ZXh0OjpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBv cCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUg PSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3Vs ZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRD YXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5 Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShv cCwgdmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpp bnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgIG9wLCB2YWx1ZSwgdHlwZSwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSAr ICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAg cmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1 cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFt ZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hv dWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJp dENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxp dHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRl RlBDYXN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENhc3QoCi0rICAgICAgICB2YWx1ZSwg dHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFt ZSgpKSArICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsK LSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVt aXRDb250ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUs IGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6U0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBu YW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfc2V4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBz aG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4g Qml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25h bGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpTRXh0SW5zdCh2 YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBuZXcgbGx2bTo6U0V4dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc2V4dCIgOiBu YW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7 Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6WkV4dEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9 Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUo dmFsdWUsICJfemV4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFu ZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0 IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwg YmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6WkV4dElu c3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZt OjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfemV4dCIgOiBuYW1lLCBiYmxvY2spOwotICAg ICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotQEAgLTE5MTMsMTQg KzE5MDEsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmFwcGx5VmFyeWlu Z0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmEKLSAgICAgICAgIHNjYWxlID0gU21l YXJVbmlmb3JtKHNjYWxlKTsKLSAgICAgICAgIEFzc2VydChpbmRleCAhPSBOVUxMKTsKLSAgICAg ICAgIC8vIG9mZnNldCA9IGluZGV4ICogc2NhbGUKLS0gICAgICAgIG9mZnNldCA9IEJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRleCwgTExWTUdldE5hbWUo Im11bCIsIHNjYWxlLCBpbmRleCkpOwotKyAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3BlcmF0b3Io bGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgc2NhbGUtPmdldE5hbWUoKSkg KyAiXyIpICsgaW5kZXgtPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAKLSAgICAgLy8gRm9yIDY0LWJp dCB0YXJnZXRzLCBpZiB3ZSd2ZSBiZWVuIGRvaW5nIG91ciBvZmZzZXQgY2FsY3VsYXRpb25zIGlu Ci0gICAgIC8vIDMyIGJpdHMsIHdlIHN0aWxsIGhhdmUgdG8gY29udmVydCB0byBhIDY0LWJpdCB2 YWx1ZSBiZWZvcmUgd2UKLSAgICAgLy8gYWN0dWFsbHkgYWRkIHRoZSBvZmZzZXQgdG8gdGhlIHBv aW50ZXIuCi0gICAgIGlmIChnLT50YXJnZXQtPmlzMzJCaXQoKSA9PSBmYWxzZSAmJiBnLT5vcHQu Zm9yY2UzMkJpdEFkZHJlc3NpbmcgPT0gdHJ1ZSkKLS0gICAgICAgIG9mZnNldCA9IFNFeHRJbnN0 KG9mZnNldCwgTExWTVR5cGVzOjpJbnQ2NFZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9mZnNldCwg Il90b182NCIpKTsKLSsgICAgICAgIG9mZnNldCA9IFNFeHRJbnN0KG9mZnNldCwgTExWTVR5cGVz OjpJbnQ2NFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdG9f NjQiKTsKLSAKLSAgICAgLy8gU21lYXIgb3V0IHRoZSBwb2ludGVyIHRvIGJlIHZhcnlpbmc7IGVp dGhlciB0aGUgYmFzZSBwb2ludGVyIG9yIHRoZQotICAgICAvLyBpbmRleCBtdXN0IGJlIHZhcnlp bmcgZm9yIHRoaXMgbWV0aG9kIHRvIGJlIGNhbGxlZC4KLUBAIC0xOTI5LDcgKzE5MTgsNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5nR0VQKGxsdm06OlZh bHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICBsbHZtOjpWYWx1ZSAqdmFyeWluZ1B0ciA9IGJh c2VJc1VuaWZvcm0gPyBTbWVhclVuaWZvcm0oYmFzZVB0cikgOiBiYXNlUHRyOwotIAotICAgICAv LyBuZXdQdHIgPSBwdHIgKyBvZmZzZXQKLS0gICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06 Okluc3RydWN0aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgTExWTUdldE5hbWUoYmFzZVB0 ciwgIl9vZmZzZXQiKSk7Ci0rICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVj dGlvbjo6QWRkLCB2YXJ5aW5nUHRyLCBvZmZzZXQsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5h bWUoKSkgKyAiX29mZnNldCIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1h dGNoSW50ZWdlclR5cGVzKGxsdm06OlZhbHVlICoqdjAsIGxsdm06OlZhbHVlICoqdjEpIHsKLUBA IC0yMDA2LDEzICsxOTk1LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpN YWtlU2xpY2VQb2ludGVyKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlCi0gICAgIGxsdm06 OlN0cnVjdFR5cGUgKnN0ID0gbGx2bTo6U3RydWN0VHlwZTo6Z2V0KCpnLT5jdHgsIGVsdFR5cGVz KTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChzdCk7 Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBwdHIsIDAsIExMVk1HZXROYW1lKHJldCwgIl9z bGljZV9wdHIiKSk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIExMVk1H ZXROYW1lKHJldCwgIl9zbGljZV9vZmZzZXQiKSk7Ci0rICAgIHJldCA9IEluc2VydEluc3QocmV0 LCBwdHIsIDAsIGxsdm06OlR3aW5lKHJldC0+Z2V0TmFtZSgpKSArICJfc2xpY2VfcHRyIik7Ci0r ICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIGxsdm06OlR3aW5lKHJldC0+Z2V0 TmFtZSgpKSArICJfc2xpY2Vfb2Zmc2V0Iik7Ci0gICAgIHJldHVybiByZXQ7Ci0gfQotIAotIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpW YWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4LCBjb25zdCBUeXBlICpwdHJSZWZUeXBl LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChiYXNl UHRyID09IE5VTEwgfHwgaW5kZXggPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIw NjUsOCArMjA1NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVt ZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlm b3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAg ICAgIGxsdm06OlZhbHVlICppbmRbMV0gPSB7aW5kZXh9OwotICAgICAgICAgbGx2bTo6QXJyYXlS ZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJmluZFswXSwgJmluZFsxXSk7Ci0tICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0 ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBu YW1lIDogImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIs IGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIgOiBu YW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICByZXR1 cm4gaW5zdDsKLSAgICAgfSBlbHNlCi1AQCAtMjA3NCw3ICsyMDYzLDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNl UHRyLCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okdl dEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgw LCBsbHZtOjpWYWx1ZSAqaW5kZXgxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlICpwdHJSZWZUeXBlLCBjb25zdCBjaGFyICpu YW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmIChiYXNlUHRyID09IE5VTEwgfHwgaW5kZXgwID09IE5VTEwgfHwgaW5kZXgxID09IE5V TEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7 Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMTE0LDggKzIxMDMsOCBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJh c2VQdHIsIGxsdm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBlbWl0IHRoZSByZWd1 bGFyIExMVk0gR0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqaW5kaWNlc1sy XSA9IHtpbmRleDAsIGluZGV4MX07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1 ZSAqPiBhcnJheVJlZigmaW5kaWNlc1swXSwgJmluZGljZXNbMl0pOwotLSAgICAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0 OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6 ICJnZXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZt OjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJh eVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJnZXAiIDogbmFtZSwg YmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAgICAgcmV0dXJuIGlu c3Q7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMjEzOCw3ICsyMTI3LDcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRy LCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVs ZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29u c3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJl c3VsdFB0clR5cGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgY29uc3QgUG9pbnRlclR5cGUgKipy ZXN1bHRQdHJUeXBlKSB7Ci0gICAgIGlmIChyZXN1bHRQdHJUeXBlICE9IE5VTEwpCi0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyUmVmVHlwZSAhPSBOVUxMKTsKLSAKLUBAIC0yMTk1 LDggKzIxODQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVu dE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgLy8gSWYgdGhl IHBvaW50ZXIgaXMgdW5pZm9ybSwgd2UgY2FuIHVzZSB0aGUgcmVndWxhciBMTFZNIEdFUC4KLSAg ICAgICAgIGxsdm06OlZhbHVlICpvZmZzZXRzWzJdID0ge0xMVk1JbnQzMigwKSwgTExWTUludDMy KGVsZW1lbnROdW0pfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IGFy cmF5UmVmKCZvZmZzZXRzWzBdLCAmb2Zmc2V0c1syXSk7Ci0tICAgICAgICByZXN1bHRQdHIgPQot LSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0 ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJzdHJ1Y3Rfb2Zmc2V0IiwgYmJs b2NrKTsKLSsgICAgICAgIHJlc3VsdFB0ciA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVh dGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHko KSA/ICJzdHJ1Y3Rfb2Zmc2V0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgICAvLyBPdGhlcndpc2UgZG8gdGhlIG1hdGggdG8gZmluZCB0aGUgb2Zmc2V0IGFuZCBhZGQg aXQgdG8gdGhlIGdpdmVuCi0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXJzCi1AQCAtMjIzNyw3 ICsyMjI2LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1lbnRP ZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAgIHJldHVybiByZXN1 bHRQdHI7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hC b29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hh ciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29s U2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKCh2YWx1ZSA9PSBOVUxMKSB8fCAodG9UeXBlID09IE5V TEwpKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDAp OwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI0OCwyMCArMjIzNywxOCBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlCi0gICAgIGxsdm06OlZhbHVlICpuZXdCb29sID0gdmFsdWU7Ci0gICAg IGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHMoZnJvbVR5 cGUpID4KLSAgICAgICAgIGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUlu Qml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAg IG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdC b29sID0gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgbmV3Qm9vbCA9 Ci0rICAgICAgICAgICAgVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gKGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zd2l0Y2hCb29sIikg OiBuYW1lKTsKLSAgICAgfSBlbHNlIGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0 VHlwZVNpemVJbkJpdHMoZnJvbVR5cGUpIDwKLSAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdl dERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewotLSAgICAgICAgaWYg KG5hbWUgPT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJf c3dpdGNoQm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFNFeHRJbnN0KHZhbHVlLCB0b1R5cGUs IG5hbWUpOwotKyAgICAgICAgbmV3Qm9vbCA9Ci0rICAgICAgICAgICAgU0V4dEluc3QodmFsdWUs IHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6IG5hbWUpOwotICAgICB9Ci0gCi0gICAgIHJldHVy biBuZXdCb29sOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9h ZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFt ZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewot ICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjcwLDEzICsy MjU3LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gICAgIGxsdm06OlBvaW50ZXJUeXBl ICpwdCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7 Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdCAhPSBOVUxMKTsKLSAKLS0gICAgaWYgKG5h bWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJfbG9hZCIpOwot LQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsbHZtOjpM b2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0UG9pbnRlckVsZW1lbnRU eXBlKCksIHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQot KyAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwg cHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJsb2Nr KTsKLSAjZWxzZQotLSAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5z dChwdHIsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAg ICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxs dm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJsb2NrKTsKLSAj ZW5kaWYKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7Ci1AQCAtMjMw Nyw4ICsyMjk0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSBzdGF0aWMgbGx2bTo6VmFs dWUgKmxGaW5hbFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFs dWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKipwdHJUeXBlKSB7Ci0gICAgIEFzc2VydChDYXN0 VHlwZTxQb2ludGVyVHlwZT4oKnB0clR5cGUpICE9IE5VTEwpOwotIAotLSAgICBsbHZtOjpWYWx1 ZSAqc2xpY2VQdHIgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMCwgTExWTUdldE5hbWUocHRyLCAi X3B0ciIpKTsKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0SW5z dChwdHIsIDEsIExMVk1HZXROYW1lKHB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxsdm06OlZhbHVl ICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdl dE5hbWUoKSkgKyAiX3B0ciIpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgt PkV4dHJhY3RJbnN0KHB0ciwgMSwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9vZmZz ZXQiKTsKLSAKLSAgICAgLy8gc2xpY2VQdHIgc2hvdWxkIGJlIGEgcG9pbnRlciB0byBhbiBzb2Et d2lkdGggd2lkZSBhcnJheSBvZiB0aGUKLSAgICAgLy8gZmluYWwgYXRvbWljL2VudW0vcG9pbnRl ciB0eXBlCi1AQCAtMjMyNywxNCArMjMxNCwxNCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxGaW5h bFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKnB0cgot ICAgICAgICAgc2xpY2VQdHIgPSBjdHgtPkJpdENhc3RJbnN0KHNsaWNlUHRyLCAoKnB0clR5cGUp LT5MTFZNVHlwZShnLT5jdHgpKTsKLSAKLSAgICAgLy8gQW5kIGZpbmFsbHkgaW5kZXggYmFzZWQg b24gdGhlIHNsaWNlIG9mZnNldAotLSAgICByZXR1cm4gY3R4LT5HZXRFbGVtZW50UHRySW5zdChz bGljZVB0ciwgc2xpY2VPZmZzZXQsICpwdHJUeXBlLCBMTFZNR2V0TmFtZShzbGljZVB0ciwgIl9m aW5hbF9nZXAiKSk7Ci0rICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNsaWNlUHRy LCBzbGljZU9mZnNldCwgKnB0clR5cGUsIGxsdm06OlR3aW5lKHNsaWNlUHRyLT5nZXROYW1lKCkp ICsgIl9maW5hbF9nZXAiKTsKLSB9Ci0gCi0gLyoqIFV0aWxpdHkgcm91dGluZSB0aGF0IGxvYWRz IGZyb20gYSB1bmlmb3JtIHBvaW50ZXIgdG8gc29hPD4gZGF0YSwKLSAgICAgcmV0dXJuaW5nIGEg cmVndWxhciB1bmlmb3JtIChub24tU09BIHJlc3VsdCkuCi0gICovCi0gbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBjb25zdCBUeXBlICp1bmlmVHlw ZSA9IHB0clR5cGUtPkdldEJhc2VUeXBlKCktPkdldEFzVW5pZm9ybVR5cGUoKTsKLSAKLSAgICAg Y29uc3QgQ29sbGVjdGlvblR5cGUgKmN0ID0gQ2FzdFR5cGU8Q29sbGVjdGlvblR5cGU+KHB0clR5 cGUtPkdldEJhc2VUeXBlKCkpOwotQEAgLTIzNjMsNyArMjM1MCw3IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwg bGx2bTo6VmFsCi0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRy UmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqbmFtZSwgYm9vbCBvbmVfZWxlbSkgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgYm9vbCBvbmVfZWxl bSkgewotICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50 UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMzcx LDkgKzIzNTgsNiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3Qo bGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwgJiYgbWFzayAhPSBOVUxMKTsKLSAKLS0gICAg aWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJfbG9h ZCIpOwotLQotICAgICBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZTsKLSAgICAgY29uc3QgVHlw ZSAqZWxUeXBlOwotICAgICBpZiAoQ2FzdFR5cGU8UmVmZXJlbmNlVHlwZT4ocHRyUmVmVHlwZSkg IT0gTlVMTCkgewotQEAgLTIzOTMsNyArMjM3Nyw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywK LSAKLSAgICAgaWYgKHB0clR5cGUtPklzVW5pZm9ybVR5cGUoKSkgewotICAgICAgICAgaWYgKHB0 clR5cGUtPklzU2xpY2UoKSkgewotLSAgICAgICAgICAgIHJldHVybiBsb2FkVW5pZm9ybUZyb21T T0EocHRyLCBtYXNrLCBwdHJUeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gbG9hZFVu aWZvcm1Gcm9tU09BKHB0ciwgbWFzaywgcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0 ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICAgIC8vIEZJWE1FOiBzYW1lIGlzc3VlIGFzIGFib3ZlIGxvYWQgaW5zdCByZWdhcmRp bmcgYWxpZ25tZW50Li4uCi0gICAgICAgICAgICAgLy8KLUBAIC0yNDA1LDExICsyMzkwLDE1IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAq cHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAgICAgICBjb25zdCBBdG9taWNUeXBlICph dG9taWNUeXBlID0gQ2FzdFR5cGU8QXRvbWljVHlwZT4ocHRyVHlwZS0+R2V0QmFzZVR5cGUoKSk7 Ci0gCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV8xMF8wCi0tICAgICAgICAg ICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLCBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0rICAgICAgICAgICAgbGx2bTo6TG9h ZEluc3QgKmluc3QgPQotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwotICAg ICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlICpwdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxs dm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7Ci0gICAgICAgICAgICAgbGx2bTo6TG9h ZEluc3QgKmluc3QgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyX3R5 cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xh dGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0 cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUo cHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotICNlbmRp ZgotIAotICAgICAgICAgICAgIGlmIChhdG9taWNUeXBlICE9IE5VTEwgJiYgYXRvbWljVHlwZS0+ SXNWYXJ5aW5nVHlwZSgpKSB7Ci1AQCAtMjQzMyw3ICsyNDIyLDggQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVl ICptYXNrLAotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIHNob3VsZCBo YXZlIGEgdmFyeWluZyBwdHIgYW5kIGl0J3MgdGltZSBmb3IgYQotICAgICAgICAgLy8gZ2F0aGVy LgotLSAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJU eXBlLCBHZXRGdWxsTWFzaygpLCBuYW1lKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpnYXRoZXJf cmVzdWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2soKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAg ICAgICBpZiAoIW9uZV9lbGVtKQotICAgICAgICAgICAgIHJldHVybiBnYXRoZXJfcmVzdWx0Owot IAotQEAgLTI0NTMsMTkgKzI0NDMsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAg ICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMy cyBhcyBmYXIgYXMKLSAgICAgICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQu Li4KLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAg ICAgICBsbHZtOjpWYWx1ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExM Vk1HZXROYW1lKG1hc2ssICJfbW92bXNrIikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmludF9t YXNrID0gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1l KCkpICsgIl9tb3Ztc2siKTsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFN5bWJvbCAqPiBsejsKLSAg ICAgICAgIG0tPnN5bWJvbFRhYmxlLT5Mb29rdXBGdW5jdGlvbigiX19jb3VudF90cmFpbGluZ196 ZXJvc19pNjQiLCAmbHopOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZseiA9IGx6WzBdLT5m dW5jdGlvbjsKLS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENhbGxJbnN0KGZseiwg TlVMTCwgaW50X21hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfY2x6IikpOwotLSAgICAgICAgbGx2 bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZShnYXRoZXJf cmVzdWx0LCBlbGVtX2lkeCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoZ2F0aGVyX3Jlc3VsdCwgIl91bWFz a2VkX2VsZW0iKSwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENh bGxJbnN0KGZseiwgTlVMTCwgaW50X21hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkg KyAiX2NseiIpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxl bWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICBnYXRoZXJfcmVzdWx0LCBlbGVtX2lkeCwg bGx2bTo6VHdpbmUoZ2F0aGVyX3Jlc3VsdC0+Z2V0TmFtZSgpKSArICJfdW1hc2tlZF9lbGVtIiwg YmJsb2NrKTsKLSAgICAgICAgIHJldHVybiBlbGVtOwotICAgICB9Ci0gfQotIAotIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29uc3Qg UG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUp IHsKLSAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHBvaW50ZXIgaWYgd2UgZ2V0IGhl cmUuLi4KLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clR5cGUtPklzVmFyeWluZ1R5cGUo KSk7Ci0gCi1AQCAtMjYwMiw3ICsyNTkyLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0Ojph ZGRHU01ldGFkYXRhKGxsdm06OlZhbHVlICp2LCBTb3VyY2VQb3MgcG9zKSB7Ci0gICAgIGluc3Qt PnNldE1ldGFkYXRhKCJsYXN0X2NvbHVtbiIsIG1kKTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGludCBhbGlnbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9jaykgewotICAgICBpZiAo bGx2bVR5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTI2MTUsMTIgKzI2MDYs MTIgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6 VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGxsdm06Okluc3RydWN0aW9u ICpyZXRJbnN0ID0gYWxsb2NhQmxvY2stPmdldFRlcm1pbmF0b3IoKTsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCByZXRJbnN0KTsKLSAgICAgICAgIHVuc2lnbmVkIEFTID0gbGx2bUZ1 bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFsbG9jYUFkZHJTcGFjZSgp OwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFt ZSA/IG5hbWUgOiAiIiwgcmV0SW5zdCk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9j YUluc3QobGx2bVR5cGUsIEFTLCBuYW1lLCByZXRJbnN0KTsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICAgIC8vIFVubGVzcyB0aGUgY2FsbGVyIG92ZXJyb2RlIHRoZSBkZWZhdWx0IGFuZCB3YW50cyBp dCBpbiB0aGUKLSAgICAgICAgIC8vIGN1cnJlbnQgYmFzaWMgYmxvY2sKLSAgICAgICAgIHVuc2ln bmVkIEFTID0gbGx2bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFs bG9jYUFkZHJTcGFjZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxs dm1UeXBlLCBBUywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGluc3QgPSBu ZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIGJibG9jayk7Ci0gICAgIH0K LSAKLSAgICAgLy8gSWYgbm8gYWxpZ25tZW50IHdhcyBzcGVjaWZpZWQgYnV0IHdlIGhhdmUgYW4g YXJyYXkgb2YgYSB1bmlmb3JtCi1AQCAtMjYzOSw3ICsyNjMwLDggQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0 IGNoYXIgKm4KLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIg Km5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChwdHJUeXBl ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50 ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMDc1LDY2ICszMDY3LDU5IEBAIGxs dm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcmFuY2hJbnN0KGxsdm06OkJh c2ljQmxvY2sgKnRydWVCbG9jaywKLSAgICAgcmV0dXJuIGI7Ci0gfQotIAotLWxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVs dCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9 Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsKLS0g ICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfZXh0cmFjdF8lZCIsIGVsdCk7Ci0t ICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqZWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5 cGU+KHYtPmdldFR5cGUoKSkpCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5z dDo6Q3JlYXRlKHYsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgZWkg PSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBMTFZN SW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2 bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfZXh0cmFjdF8iKSArIGxsdm06OlR3aW5lKGVsdCkp IDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0 VmFsdWVJbnN0OjpDcmVhdGUodiwgZWx0LCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgZWkgPSBs bHZtOjpFeHRyYWN0VmFsdWVJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgZWx0LCBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfZXh0 cmFjdF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwKLSsgICAgICAgICAgICBiYmxvY2sp OwotICAgICBBZGREZWJ1Z1BvcyhlaSk7Ci0gICAgIHJldHVybiBlaTsKLSB9Ci0gCi0tbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxs dm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2 bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKHYgPT0gTlVMTCB8fCBlbHRWYWwgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwot ICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMy XTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfaW5zZXJ0XyVkIiwgZWx0 KTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0tCi0gICAg IGxsdm06Okluc3RydWN0aW9uICppaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6 VmVjdG9yVHlwZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0RWxl bWVudEluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2sp OwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAg ICAgICAgIHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksCi0rICAgICAgICAgICAgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2VydF8i KSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAg ICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIGVsdCwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0OjpDcmVhdGUo Ci0rICAgICAgICAgICAgdiwgZWx0VmFsLCBlbHQsCi0rICAgICAgICAgICAgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2VydF8iKSAr IGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaWkp OwotICAgICByZXR1cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6 VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6U2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIs IGxsdm06OlZhbHVlICptYXNrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodjEgPT0gTlVM TCB8fCB2MiA9PSBOVUxMIHx8IG1hc2sgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAg ICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsK LS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfc2h1ZmZsZSIpOwotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHYxLCBidWYpOwotLSAgICB9Ci0tCi0tICAgIGxsdm06Oklu c3RydWN0aW9uICppaSA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIG1hc2ss IG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IG5ldyBsbHZtOjpT aHVmZmxlVmVjdG9ySW5zdCgKLSsgICAgICAgIHYxLCB2MiwgbWFzaywgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodjEtPmdldE5hbWUoKSkgKyAiX3NodWZmbGUiKSA6IG5h bWUsIGJibG9jayk7Ci0gCi0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0dXJuIGlpOwot IH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUo bGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIGlmICh2ID09IE5VTEwgfHwgdmVjVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5V TEw7Ci1AQCAtMzE0OCwxMiArMzEzMyw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAg IEFzc2VydCh0eSAmJiB0eS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKSA9PSB2LT5nZXRUeXBlKCkp OwotICNlbmRpZgotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1 ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX2Jyb2FkY2FzdCIp OwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAg Ly8gR2VuZXJhdGUgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKLSAgICAgLy8gICAlbmFtZV9pbml0 LmkgPSBpbnNlcnRlbGVtZW50IDw0IHggaTMyPiB1bmRlZiwgaTMyICV2YWwsIGkzMiAwCi0gICAg IC8vICAgJW5hbWUuaSA9IHNodWZmbGV2ZWN0b3IgPDQgeCBpMzI+ICVuYW1lX2luaXQuaSwgPDQg eCBpMzI+IHVuZGVmLAotQEAgLTMxNjMsNyArMzE0Miw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAq dmVjCi0gICAgIGxsdm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodmVj VHlwZSk7Ci0gCi0gICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6VHdpbmUgdHcgPSBs bHZtOjpUd2luZShuYW1lKSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotKyAgICBsbHZtOjpUd2lu ZSB0dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUo KSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotICAgICBs bHZtOjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigpLmNf c3RyKCkpOwotIAotICAgICAvLyBTaHVmZmxlVmVjdG9yCi1AQCAtMzE3OSwyOCArMzE1OCwyNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu dD4odHktPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBl OjpnZXRJbnQzMlR5KCpnLT5jdHgpKSk7Ci0gI2VuZGlmCi0tICAgIGxsdm06OlZhbHVlICpyZXQg PSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywgbmFtZSk7Ci0rICAgIGxsdm06 OlZhbHVlICpyZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSk7Ci0gCi0g ICAgIHJldHVybiByZXQ7Ci0gfQotIAotLWxsdm06OlBISU5vZGUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBjaGFyICpuYW1l KSB7Ci0tICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJTm9kZTo6Q3JlYXRlKHR5cGUs IGNvdW50LCBuYW1lID8gbmFtZSA6ICJwaGkiLCBiYmxvY2spOwotK2xsdm06OlBISU5vZGUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotKyAgICBsbHZtOjpQSElOb2RlICpwbiA9IGxsdm06 OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAi cGhpIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKHBuKTsKLSAgICAgcmV0dXJu IHBuOwotIH0KLSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2Vs ZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVl ICp2YWwxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAo dGVzdCA9PSBOVUxMIHx8IHZhbDAgPT0gTlVMTCB8fCB2YWwxID09IE5VTEwpIHsKLSAgICAgICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1 cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFt ZSA9IExMVk1HZXROYW1lKHRlc3QsICJfc2VsZWN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3RydWN0 aW9uICppbnN0ID0gbGx2bTo6U2VsZWN0SW5zdDo6Q3JlYXRlKHRlc3QsIHZhbDAsIHZhbDEsIG5h bWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6U2VsZWN0 SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgdGVzdCwgdmFsMCwgdmFsMSwgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodGVzdC0+Z2V0TmFtZSgpKSArICJfc2VsZWN0IikgOiBu YW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7 Ci0gfQotQEAgLTMyMjYsNyArMzIwNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbENhbGxlZUFy Z0NvdW50KGxsdm06OlZhbHVlICpjYWxsZWUsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuCi0gfQot IAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1 ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUg Kj4gJmFyZ3MsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gJmFyZ3Ms IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChmdW5jID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLUBAIC0zMjU4LDkgKzMyMzYsOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9u VHlwZQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAg bGx2bTo6UG9pbnRlclR5cGUgKmZ1bmNfcHRyX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQ b2ludGVyVHlwZT4oZnVuYy0+Z2V0VHlwZSgpKTsKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uVHlw ZSAqZnVuY190eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6RnVuY3Rpb25UeXBlPihmdW5jX3B0 cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSk7Ci0tICAgICAgICBsbHZtOjpDYWxsSW5z dCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlwZSwgZnVuYywgYXJn VmFscywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0 ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdW YWxzLCBuYW1lLCBiYmxvY2spOwotICNlbHNlCi0tICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2Fs bGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUgPyBuYW1l IDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBsbHZt OjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9jayk7Ci0gI2VuZGlm Ci0gCi0gICAgICAgICAvLyBXZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiBwb2lu dGVyIGluIHdoaWNoIGNhc2UgdGhpcyB3aWxsIG5vdCBiZSBhICdsbHZtOjpGdW5jdGlvbicuCi1A QCAtMzQ2NCwxNCArMzQ0MiwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZQotIH0KLSAKLSBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1 bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gYXJnczsK LSAgICAgYXJncy5wdXNoX2JhY2soYXJnKTsKLSAgICAgcmV0dXJuIENhbGxJbnN0KGZ1bmMsIGZ1 bmNUeXBlLCBhcmdzLCBuYW1lKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1 bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnMCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFy ZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06OlZh bHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZzApOwotICAgICBhcmdzLnB1c2hf YmFjayhhcmcxKTsKLWRpZmYgLS1naXQgYS9zcmMvY3R4LmggYi9zcmMvY3R4LmgKLWluZGV4IDZl NWFkNzRiYS4uNDhiM2JiODI2IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5oCi0rKysgYi9zcmMvY3R4 LmgKLUBAIC0zMDIsNyArMzAyLDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAg IGxsdm06OlZhbHVlICpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpzdHJpbmcgJnN0cik7Ci0gCi0g ICAgIC8qKiBDcmVhdGUgYSBuZXcgYmFzaWMgYmxvY2sgd2l0aCBnaXZlbiBuYW1lICovCi0tICAg IGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hhciAqbmFtZSwgbGx2 bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSsgICAgbGx2bTo6QmFzaWNCbG9j ayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNC bG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEdpdmVuIGEgdmVjdG9yIHdp dGggZWxlbWVudCB0eXBlIGkxLCByZXR1cm4gYSB2ZWN0b3Igb2YgdHlwZQotICAgICAgICAgTExW TVR5cGVzOjpCb29sVmVjdG9yVHlwZS4gIFRoaXMgbWV0aG9kIGhhbmRsZXMgdGhlIGNvbnZlcnNp b24gZm9yCi1AQCAtMzgwLDMzICszODAsMzMgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7 Ci0gICAgICAgICB0aGlzIGFsc28gaGFuZGxlcyBhcHBseWluZyB0aGUgZ2l2ZW4gb3BlcmF0aW9u IHRvIHRoZSB2ZWN0b3IKLSAgICAgICAgIGVsZW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1ZSAq QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbnN0LCBsbHZtOjpW YWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdCB0 aGUgIm5vdCIgb3BlcmF0b3IuICBMaWtlIEJpbmFyeU9wZXJhdG9yKCksIHRoaXMgYWxzbyBoYW5k bGVzCi0gICAgICAgICBhIFZlY3RvclR5cGUtYmFzZWQgb3BlcmFuZC4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06OlZhbHVlICpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IGEgY29tcGFyaXNvbiBp bnN0cnVjdGlvbi4gIElmIHRoZSBvcGVyYW5kcyBhcmUgVmVjdG9yVHlwZXMsCi0gICAgICAgICB0 aGVuIGEgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGJvb2xlYW4gVmVjdG9yVHlwZSBpcwot ICAgICAgICAgcmV0dXJuZWQuICovCi0gICAgIGxsdm06OlZhbHVlICpDbXBJbnN0KGxsdm06Oklu c3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJbnN0OjpQcmVkaWNhdGUgcHJlZCwg bGx2bTo6VmFsdWUgKnYwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq djEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAg LyoqIEdpdmVuIGEgc2NhbGFyIHZhbHVlLCByZXR1cm4gYSB2ZWN0b3Igb2YgdGhlIHNhbWUgdHlw ZSAob3IgYW4KLSAgICAgICAgIGFycmF5LCBmb3IgcG9pbnRlciB0eXBlcykuICovCi0tICAgIGxs dm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUg KnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFs dWUgKkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpW YWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqSW50VG9QdHJJbnN0 KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9 IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAg bGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUg PSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0g ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqQ2Fz dEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZQQ2FzdEluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3Ry dWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpT RXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSAKLSAgICAgLyoqIEdpdmVuIHR3byBpbnRlZ2VyLXR5cGVkIHZhbHVlcyAoYnV0 IHBvc3NpYmx5IG9uZSB2ZWN0b3IgYW5kIHRoZQotICAgICAgICAgb3RoZXIgbm90LCBhbmQgb3Ig b2YgcG9zc2libHktZGlmZmVyZW50IGJpdC13aWR0aHMpLCB1cGRhdGUgdGhlaXIKLUBAIC00MjYs OSArNDI2LDkgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBwb2ludGVy cy4gIFRoZSB1bmRlcmx5aW5nIHR5cGUgb2YgdGhlIGJhc2UgcG9pbnRlciBtdXN0IGJlIHByb3Zp ZGVkCi0gICAgICAgICB2aWEgdGhlIHB0clR5cGUgcGFyYW1ldGVyICovCi0gICAgIGxsdm06OlZh bHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUg KmluZGV4LCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06 OlZhbHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFs dWUgKmluZGV4MCwgbGx2bTo6VmFsdWUgKmluZGV4MSwgY29uc3QgVHlwZSAqcHRyVHlwZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBwb2lu dGVyIHRoYXQgcmVwcmVzZW50cyBvZmZzZXR0aW5nIHRoZQotICAgICAgICAgZ2l2ZW4gYmFzZSBw b2ludGVyIHRvIHBvaW50IGF0IHRoZSBnaXZlbiBlbGVtZW50IG51bWJlciBvZiB0aGUKLUBAIC00 MzYsMjYgKzQzNiwyNiBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHBv aW50ZXIgbXVzdCBiZSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgdHlwZS4gIFRoZSBwdHJUeXBl IGdpdmVzCi0gICAgICAgICB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlciwgdGhvdWdoIGl0IG1heSBi ZSBOVUxMIGlmIHRoZSBiYXNlIHBvaW50ZXIKLSAgICAgICAgIGlzIHVuaWZvcm0uICovCi0tICAg IGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQg ZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEws Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50ZXJUeXBlICoq cmVzdWx0UHRyVHlwZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWRkRWxlbWVudE9mZnNl dChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0clR5 cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSA9IE5VTEwpOwot IAotICAgICAvKiogQm9vbCBpcyBzdG9yZWQgYXMgaTggYW5kIDxXSURUSCB4IGk4PiBidXQgcmVw cmVzZW50ZWQgaW4gSVIgYXMgaTEgYW5kCi0gICAgICAqIDxXSURUSCB4IE1BU0s+LiBUaGlzIGlz IGEgaGVscGVyIGZ1bmN0aW9uIHRvIG1hdGNoIGJvb2wgc2l6ZSBhdCBzdG9yYWdlCi0gICAgICAq IGludGVyZmFjZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7 Ci0rICAgIGxsdm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIC8q KiBMb2FkIGZyb20gdGhlIG1lbW9yeSBsb2NhdGlvbihzKSBnaXZlbiBieSBsdmFsdWUsIHVzaW5n IHRoZSBnaXZlbgotICAgICAgICAgbWFzay4gIFRoZSBsdmFsdWUgbWF5IGJlIHZhcnlpbmcsIGlu IHdoaWNoIGNhc2UgdGhpcyBjb3JyZXNwb25kcyB0bwotICAgICAgICAgYSBnYXRoZXIgZnJvbSB0 aGUgbXVsdGlwbGUgbWVtb3J5IGxvY2F0aW9ucyBnaXZlbiBieSB0aGUgYXJyYXkgb2YKLSAgICAg ICAgIHBvaW50ZXIgdmFsdWVzIGdpdmVuIGJ5IHRoZSBsdmFsdWUuICBJZiB0aGUgbHZhbHVlIGlz IG5vdCB2YXJ5aW5nLAotICAgICAgICAgdGhlbiBib3RoIHRoZSBtYXNrIHBvaW50ZXIgYW5kIHRo ZSB0eXBlIHBvaW50ZXIgbWF5IGJlIE5VTEwuICovCi0tICAgIGxsdm06OlZhbHVlICpMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyVHlw ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsCi0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyVHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgb25lX2VsZW0gPSBmYWxzZSk7Ci0gCi0gICAgIC8qIExvYWQgZnJvbSBtZW1vcnkgbG9j YXRpb24ocykgZ2l2ZW4uCi0gICAgICAqICd0eXBlJyBuZWVkcyB0byBiZSBwcm92aWRlZCB3aGVu IHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBGb3IgZXhhbXBsZSwKLSAg ICAgICogJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQgYXMgJ2k4Jy4KLSAg ICAgICogT3RoZXJ3aXNlIGxlYXZlIHRoaXMgYXMgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUg KkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25z dCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxs b2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBu b24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00 NjMsNyArNDYzLDggQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBpbnN0 cnVjdGlvbiBpcyBhZGRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIGluIHRoZSBlbnRy eQotICAgICAgICAgYmFzaWMgYmxvY2s7IGlmIGl0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY3Vy cmVudCBiYXNpYyBibG9jaywgdGhlbgotICAgICAgICAgdGhlIGF0RW50cnlCbG9jayBwYXJhbWV0 ZXIgc2hvdWxkIGJlIGZhbHNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChsbHZt OjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAs IGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0 KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBpbnQg YWxpZ24gPSAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9j ayA9IHRydWUpOwotIAotICAgICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3RydWN0aW9uIHRvIGFs bG9jYXRlIHN0YWNrIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAgdHlwZS4gIElmIGEg bm9uLXplcm8gYWxpZ25tZW50IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBpcyBhbHNvCi1AQCAt NDc0LDcgKzQ3NSw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgVGhp cyBpbXBsZW1lbnRhdGlvbiBpcyBwcmVmZXJyZWQgd2hlbiBwb3NzaWJsZS4gSXQgaXMgbmVlZGVk IHdoZW4KLSAgICAgICAgIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBG b3IgZXhhbXBsZSwKLSAgICAgICAgICd1bmZvcm0gYm9vbCcgaXMgJ2kxJyBpbiBJUiBidXQgc3Rv cmVkIGFzICdpOCcuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5cGUg KnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0 RW50cnlCbG9jayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChjb25zdCBU eXBlICpwdHJUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBpbnQgYWxpZ24gPSAw LCBib29sIGF0RW50cnlCbG9jayA9IHRydWUpOwotIAotICAgICAvKiogU3RhbmRhcmQgc3RvcmUg aW5zdHJ1Y3Rpb247IGZvciB0aGlzIHZhcmlhbnQsIHRoZSBsdmFsdWUgbXVzdCBiZSBhCi0gICAg ICAgICBzaW5nbGUgcG9pbnRlciwgbm90IGEgdmFyeWluZyBsdmFsdWUuCi1AQCAtNTAyLDM5ICs1 MDMsNDEgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIC8qKiBUaGlzIGNvbnZl bmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdCBpZiB0aGUK LSAgICAgICAgIGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFuIGxs dm06OkV4dHJhY3RWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAq diwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBU aGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06Okluc2VydEVsZW1lbnRJbnN0 IGlmIHRoZQotICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQg dG8gYW4gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0Ci0gICAgICAgICBvdGhlcndpc2UuICovCi0tICAg IGxsdm06OlZhbHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0 VmFsLCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVl ICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0 LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgY29udmVu aWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QuICovCi0tICAg IGxsdm06OlZhbHVlICpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2 MiwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2 bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBs bHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAg IC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCB0byBnZW5lcmF0ZSBicm9hZGNhc3QgcGF0dGVy bi4gSXQgdGFrZXMgYSB2YWx1ZQotICAgICAgICAgYW5kIGEgdmVjdG9yIHR5cGUuIFR5cGUgb2Yg dGhlIHZhbHVlIG11c3QgbWF0Y2ggZWxlbWVudCB0eXBlIG9mIHRoZQotICAgICAgICAgdmVjdG9y LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxs dm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6 VmFsdWUgKkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBl LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6UEhJTm9kZSAq UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUgPSBO VUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRl c3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwgY29uc3QgY2hhciAqbmFt ZSA9IE5VTEwpOwotKyAgICBsbHZtOjpQSElOb2RlICpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUs IGludCBjb3VudCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFs MCwgbGx2bTo6VmFsdWUgKnZhbDEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdHMgSVIgdG8g ZG8gYSBmdW5jdGlvbiBjYWxsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4gIElmIHRoZQotICAg ICAgICAgZnVuY3Rpb24gdHlwZSBpcyBhIHZhcnlpbmcgZnVuY3Rpb24gcG9pbnRlciB0eXBlLCBp dHMgZnVsbCB0eXBlCi0gICAgICAgICBtdXN0IGJlIHByb3ZpZGVkIGluIGZ1bmNUeXBlLiAgZnVu Y1R5cGUgY2FuIGJlIE5VTEwgaWYgZnVuYyBpcyBhCi0gICAgICAgICB1bmlmb3JtIGZ1bmN0aW9u IHBvaW50ZXIuICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVu YywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6 VmFsdWUgKj4gJmFyZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2Qg dGhhdCBpc3N1ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9uIHRo YXQgdGFrZXMganVzdCBhIHNpbmdsZSBhcmd1bWVudC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkNh bGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBs bHZtOjpWYWx1ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZh bHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5j VHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmll bmNlIG1ldGhvZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAg ZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1ZSAq Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUs IGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogTGF1bmNo IGFuIGFzeW5jaHJvbm91cyB0YXNrIHRvIHJ1biB0aGUgZ2l2ZW4gZnVuY3Rpb24sIHBhc3Npbmcg aXQKLSAgICAgICAgIGhlIGdpdmVuIGFyZ3VtZW50IHZhbHVlcy4gKi8KLUBAIC03NTYsOSArNzU5 LDEwIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICB2b2lkIG1hc2tlZFN0b3Jl KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqcHRyVHlw ZSwgbGx2bTo6VmFsdWUgKm1hc2spOwotICAgICB2b2lkIHN0b3JlVW5pZm9ybVRvU09BKGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0 IFR5cGUgKnZhbHVlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2lu dGVyVHlwZSAqcHRyVHlwZSk7Ci0tICAgIGxsdm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21TT0Eo bGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpw dHJUeXBlLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3Jt RnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRl clR5cGUgKnB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpnYXRoZXIo bGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVl ICptYXNrLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmdhdGhlcihsbHZt OjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1h c2ssIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICBsbHZtOjpWYWx1ZSAq YWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICpw dHJUeXBlKTsKLSB9OwotZGlmZiAtLWdpdCBhL3NyYy9leHByLmNwcCBiL3NyYy9leHByLmNwcAot aW5kZXggODBjYzMwMjBhLi42ZDM4ZDE4ODkgMTAwNjQ0Ci0tLS0gYS9zcmMvZXhwci5jcHAKLSsr KyBiL3NyYy9leHByLmNwcAotQEAgLTEwMjEsMTEgKzEwMjEsMTEgQEAgc3RhdGljIGxsdm06OlZh bHVlICpsRW1pdE5lZ2F0ZShFeHByICphcmcsIFNvdXJjZVBvcyBwb3MsIEZ1bmN0aW9uRW1pdENv bnRleHQgKmMKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAgICBpZiAodHlwZS0+SXNG bG9hdFR5cGUoKSkgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsbHZtOjpDb25zdGFu dEZQOjpnZXRaZXJvVmFsdWVGb3JOZWdhdGlvbih0eXBlLT5MTFZNVHlwZShnLT5jdHgpKTsKLS0g ICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpGU3Vi LCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdhdGUiKSk7Ci0rICAgICAg ICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6RlN1YiwgemVy bywgYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIpOwot ICAgICB9IGVsc2UgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsTExWTUNvbnN0YW50 VmFsdWUodHlwZSwgZy0+Y3R4LCAwLik7Ci0gICAgICAgICBBc3NlcnRQb3MocG9zLCB0eXBlLT5J c0ludFR5cGUoKSk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJ bnN0cnVjdGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdh dGUiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVj dGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSAr ICJfbmVnYXRlIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTA0NywxMSArMTA0NywxMSBAQCBsbHZt OjpWYWx1ZSAqVW5hcnlFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNv bnN0IHsKLSAgICAgICAgIHJldHVybiBsRW1pdE5lZ2F0ZShleHByLCBwb3MsIGN0eCk7Ci0gICAg IGNhc2UgTG9naWNhbE5vdDogewotICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4cHIt PkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWws IExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9sb2dpY2Fsbm90IikpOwotKyAgICAgICAgcmV0dXJuIGN0 eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAi X2xvZ2ljYWxub3QiKTsKLSAgICAgfQotICAgICBjYXNlIEJpdE5vdDogewotICAgICAgICAgbGx2 bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4cHItPkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1cm4g Y3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9iaXRub3QiKSk7 Ci0rICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFy Z1ZhbC0+Z2V0TmFtZSgpKSArICJfYml0bm90Iik7Ci0gICAgIH0KLSAgICAgZGVmYXVsdDoKLSAg ICAgICAgIEZBVEFMKCJsb2dpYyBlcnJvciIpOwotQEAgLTE1MTgsNyArMTUxOCw4IEBAIHN0YXRp YyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlBcml0aChCaW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6 VmFsdWUgKnZhbHVlMCwgbGx2Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9 Ci0gCi0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZh bHVlMSwgTExWTUdldE5hbWUob3BOYW1lLCB2YWx1ZTAsIHZhbHVlMSkpOwotKyAgICAgICAgcmV0 dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKChsbHZtOjpUd2luZShvcE5hbWUpICsgIl8iKSAr IHZhbHVlMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2YWx1ZTEtPmdldE5hbWUoKSk7Ci0gICAgIH0K LSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY0LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1pdEJp bmFyeUNtcChCaW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6VmFsdWUgKmUwVmFsLCBsbHZtOjoKLSAg ICAgfQotIAotICAgICBsbHZtOjpWYWx1ZSAqY21wID0gY3R4LT5DbXBJbnN0KGlzRmxvYXRPcCA/ IGxsdm06Okluc3RydWN0aW9uOjpGQ21wIDogbGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIHByZWQs IGUwVmFsLCBlMVZhbCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZN R2V0TmFtZShvcE5hbWUsIGUwVmFsLCBlMVZhbCkpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsgZTBWYWwtPmdldE5h bWUoKSkgKyAiXyIpICsgZTFWYWwtPmdldE5hbWUoKSk7Ci0gICAgIC8vIFRoaXMgaXMgYSBsaXR0 bGUgdWdseTogQ21wSW5zdCByZXR1cm5zIGkxIHZhbHVlcywgYnV0IHdlIHVzZSB2ZWN0b3JzCi0g ICAgIC8vIG9mIGkzMnMgZm9yIHZhcnlpbmcgYm9vbCB2YWx1ZXM7IHR5cGUgY29udmVydCB0aGUg cmVzdWx0IGhlcmUgaWYKLSAgICAgLy8gbmVlZGVkLgotQEAgLTQxNzcsNyArNDE3OCw3IEBAIHN0 YXRpYyBsbHZtOjpWYWx1ZSAqbENvbnZlcnRUb1NsaWNlUG9pbnRlcihGdW5jdGlvbkVtaXRDb250 ZXh0ICpjdHgsIGxsdm06OlZhbHVlCi0gICAgIC8vIG9mZnNldHMKLSAgICAgbGx2bTo6VmFsdWUg KnJlc3VsdCA9IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUoc2xpY2VTdHJ1Y3RUeXBlKTsK LSAgICAgLy8gQW5kIHJlcGxhY2UgdGhlIHBvaW50ZXIgaW4gdGhlIHN0cnVjdCB3aXRoIHRoZSBn aXZlbiBwb2ludGVyCi0tICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBwdHIsIDAs IExMVk1HZXROYW1lKHB0ciwgIl9zbGljZSIpKTsKLSsgICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5z dChyZXN1bHQsIHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9zbGljZSIp OwotIH0KLSAKLSAvKiogSWYgdGhlIGdpdmVuIGFycmF5IGluZGV4IGlzIGEgY29tcGlsZSB0aW1l IGNvbnN0YW50LCBjaGVjayB0byBzZWUgaWYgaXQKLUBAIC00MjU4LDggKzQyNTksOCBAQCBsbHZt OjpWYWx1ZSAqSW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBj b25zdCB7Ci0gICAgICAgICAvLyBDb252ZXJ0IHRvIGEgc2xpY2UgcG9pbnRlciBpZiB3ZSdyZSBp bmRleGluZyBpbnRvIFNPQSBkYXRhCi0gICAgICAgICBiYXNlUHRyVmFsdWUgPSBsQ29udmVydFB0 clRvU2xpY2VJZk5lZWRlZChjdHgsIGJhc2VQdHJWYWx1ZSwgJmJhc2VFeHByVHlwZSk7Ci0gCi0t ICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgICAgICBjdHgtPkdldEVsZW1lbnRQ dHJJbnN0KGJhc2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLCBMTFZNR2V0TmFt ZShiYXNlUHRyVmFsdWUsICJfb2Zmc2V0IikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKnB0ciA9 IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhw clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpUd2luZShiYXNlUHRyVmFsdWUtPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwotICAg ICAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwgcHRyLCBHZXRMVmFs dWVUeXBlKCkpOwotICAgICB9Ci0gCi1AQCAtNDI5MCw4ICs0MjkxLDggQEAgbGx2bTo6VmFsdWUg KkluZGV4RXhwcjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3Qgewot ICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gCi0gICAgIC8vIEFuZCBkbyB0aGUgYWN0dWFs IGluZGV4aW5nIGNhbGN1bGF0aW9uLi4KLS0gICAgbGx2bTo6VmFsdWUgKnB0ciA9Ci0tICAgICAg ICBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigwKSwgaW5kZXhWYWx1 ZSwgYmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0IikpOwotKyAgICBs bHZtOjpWYWx1ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyLCBMTFZNSW50 MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsg Il9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwg cHRyLCBHZXRMVmFsdWVUeXBlKCkpOwotIH0KLSAKLUBAIC00Nzg4LDE1ICs0Nzg5LDE0IEBAIGxs dm06OlZhbHVlICpWZWN0b3JNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0 ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRlbnRpZmll ci5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgIGNoYXIgaWRTdHJbMl0gPSB7aWRlbnRpZmll cltpXSwgJ1wwJ307Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1lbnRQdHIgPQotLSAg ICAgICAgICAgICAgICBjdHgtPkFkZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwgaW5kaWNlc1tpXSwg YmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsIGlkU3RyKSk7Ci0rICAgICAgICAgICAg ICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBiYXNlUHRyVHlw ZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArIGlkU3RyKTsKLSAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqZWxlbWVudFZhbHVlID0gY3R4LT5Mb2FkSW5zdChlbGVtZW50UHRyLCBl bGVtZW50TWFzaywgZWxlbWVudFB0clR5cGUpOwotIAotLSAgICAgICAgICAgIGNvbnN0IGNoYXIg KnJlc3VsdE5hbWUgPSBMTFZNR2V0TmFtZShyZXN1bHRQdHIsIGlkU3RyKTsKLS0gICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNldChyZXN1bHRQdHIsIGks IE5VTEwsIHJlc3VsdE5hbWUpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpwdG1wID0gY3R4 LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVMTCwgbGx2bTo6VHdpbmUocmVzdWx0 UHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGN0eC0+U3RvcmVJbnN0KGVs ZW1lbnRWYWx1ZSwgcHRtcCwgZWxlbWVudFB0clR5cGUsIGV4cHItPkdldFR5cGUoKS0+SXNVbmlm b3JtVHlwZSgpKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBjdHgtPkxvYWRJbnN0 KHJlc3VsdFB0ciwgbWVtYmVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9zd2l6emxlIikp OwotKyAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBs bHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9zd2l6emxlIik7Ci0gICAgIH0KLSB9 Ci0gCi1AQCAtNDkzMiw3ICs0OTMyLDcgQEAgbGx2bTo6VmFsdWUgKk1lbWJlckV4cHI6OkdldFZh bHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotIAotICAgICBjdHgtPlNldERl YnVnUG9zKHBvcyk7Ci0gICAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9IHN0ZDo6c3RyaW5nKCJfIikg KyBpZGVudGlmaWVyOwotLSAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2 YWx1ZVR5cGUsIExMVk1HZXROYW1lKGx2YWx1ZSwgc3VmZml4LmNfc3RyKCkpKTsKLSsgICAgcmV0 dXJuIGN0eC0+TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBsbHZtOjpUd2luZShs dmFsdWUtPmdldE5hbWUoKSkgKyBzdWZmaXgpOwotIH0KLSAKLSBjb25zdCBUeXBlICpNZW1iZXJF eHByOjpHZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gTlVMTDsgfQotQEAgLTY1MDIsNyArNjUwMiw3 IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbFR5cGVDb252QXRvbWljKEZ1bmN0aW9uRW1pdENvbnRl eHQgKmN0eCwgbGx2bTo6VmFsdWUgKmV4cHJWCi0gICAgICAgICAgICAgICAgIC8vIGRvZXMgZm9y IGV2ZXJ5b25lIGVsc2UuLi4KLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGNhc3QpOwotICAgICAg ICAgICAgICAgICBjYXN0ID0gY3R4LT5Td2l0Y2hCb29sU2l6ZShjYXN0LCBMTFZNVHlwZXM6OkJv b2xWZWN0b3JUeXBlLT5nZXRFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjYXN0LCAidG9faV9ib29sIikpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYXN0 LT5nZXROYW1lKCkpICsgInRvX2lfYm9vbCIpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgLy8gZnJvbVR5cGUtPklzVmFyeWluZ1R5cGUoKSkKLUBAIC04 MjQ2LDcgKzgyNDYsNyBAQCBsbHZtOjpWYWx1ZSAqTmV3RXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25F bWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICAvLyBwb2ludGVyIG9mIHRoZSByZXR1 cm4gdHlwZSBhbmQgdG8gcnVuIHRoZSBjb2RlIGZvciBpbml0aWFsaXplcnMsCi0gICAgICAgICAv LyBpZiBwcmVzZW50LgotICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IHJldFR5cGUtPkxM Vk1UeXBlKGctPmN0eCk7Ci0tICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRy VmFsdWUsIHB0clR5cGUsIExMVk1HZXROYW1lKHB0clZhbHVlLCAiX2Nhc3RfcHRyIikpOwotKyAg ICAgICAgcHRyVmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJUeXBlLCBsbHZt OjpUd2luZShwdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdF9wdHIiKTsKLSAKLSAgICAgICAg IGlmIChpbml0RXhwciAhPSBOVUxMKQotICAgICAgICAgICAgIEluaXRTeW1ib2wocHRyVmFsdWUs IGFsbG9jVHlwZSwgaW5pdEV4cHIsIGN0eCwgcG9zKTsKLWRpZmYgLS1naXQgYS9zcmMvbGx2bXV0 aWwuY3BwIGIvc3JjL2xsdm11dGlsLmNwcAotaW5kZXggOTcwMTc1ZGJmLi5kMGJlY2I5ZjUgMTAw NjQ0Ci0tLS0gYS9zcmMvbGx2bXV0aWwuY3BwCi0rKysgYi9zcmMvbGx2bXV0aWwuY3BwCi1AQCAt MTYwNSwyMyArMTYwNSw2IEBAIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZsZVZlY3RvcnMobGx2bTo6 VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1ZltdCi0gICAgIHJldHVybiBu ZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCB2ZWMsICJzaHVmZmxlIiwgaW5zZXJ0 QmVmb3JlKTsKLSB9Ci0gCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUobGx2bTo6VmFsdWUgKnYs IGNvbnN0IGNoYXIgKnMpIHsKLS0gICAgaWYgKHYgPT0gTlVMTCkKLS0gICAgICAgIHJldHVybiBz OwotLSAgICBzdGQ6OnN0cmluZyByZXQgPSBzdGQ6OnN0cmluZyh2LT5nZXROYW1lKCkpOwotLSAg ICByZXQgKz0gczsKLS0gICAgcmV0dXJuIHN0cmR1cChyZXQuY19zdHIoKSk7Ci0tfQotLQotLWNv bnN0IGNoYXIgKkxMVk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxs dm06OlZhbHVlICp2MikgewotLSAgICBzdGQ6OnN0cmluZyByID0gb3A7Ci0tICAgIHIgKz0gIl8i OwotLSAgICByICs9IHYxLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHIgKz0gIl8iOwotLSAgICBy ICs9IHYyLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHJldHVybiBzdHJkdXAoci5jX3N0cigpKTsK LS19Ci0tCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gYm9vbCBsSXNTVk1Mb2FkKGxsdm06 Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChpbnN0KTsKLWRpZmYgLS1naXQgYS9z cmMvbGx2bXV0aWwuaCBiL3NyYy9sbHZtdXRpbC5oCi1pbmRleCA0MmNjZTRkODMuLjA3ZDA4OWJi NCAxMDA2NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5oCi0rKysgYi9zcmMvbGx2bXV0aWwuaAotQEAg LTMyOCwxMSArMzI4LDYgQEAgZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNQ29uY2F0VmVjdG9ycyhs bHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6SW4KLSBleHRlcm4gbGx2bTo6 VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2 MiwgaW50MzJfdCBzaHVmW10sIGludCBzaHVmU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlKTsKLSAKLS0v KiogVXRpbGl0eSByb3V0aW5lcyB0byBjb25jYXQgc3RyaW5ncyB3aXRoIHRoZSBuYW1lcyBvZiBl eGlzdGluZyB2YWx1ZXMgdG8KLS0gICAgY3JlYXRlIG1lYW5pbmdmdWwgbmV3IG5hbWVzIGZvciBp bnN0cnVjdGlvbiB2YWx1ZXMuCi0tKi8KLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdldE5hbWUo bGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKik7Ci0tZXh0ZXJuIGNvbnN0IGNoYXIgKkxMVk1H ZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2Mik7 Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gZW51bSBBZGRyZXNzU3BhY2UgeyBMb2NhbCwg R2xvYmFsLCBFeHRlcm5hbCB9OwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29w dC5jcHAKLWluZGV4IDViMWFjN2I2My4uOWQ2Y2FlMDU4IDEwMDY0NAotLS0tIGEvc3JjL29wdC5j cHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGxH ZXRTb3VyY2VQb3NGcm9tTWV0YWRhdGEoY29uc3QgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIFNv dXJjZVBvcyAqCi0gICAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1zdGF0aWMgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAs IGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lLAotK3N0YXRpYyBsbHZtOjpJbnN0 cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJn MCwgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZv cmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzJdID0ge2FyZzAsIGFyZzF9Owot ICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwg JmFyZ3NbMl0pOwotQEAgLTI2NSwyMSArMjY1LDIyIEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlv biAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2 Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0 aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZh bHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUs IGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZh bHVlICphcmdzWzNdID0ge2FyZzAsIGFyZzEsIGFyZzJ9OwotICAgICBsbHZtOjpBcnJheVJlZjxs bHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbM10pOwotICAgICByZXR1 cm4gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0 QmVmb3JlKTsKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2 bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwg bGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9uICpp bnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZv cmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzRdID0ge2FyZzAsIGFyZzEsIGFy ZzIsIGFyZzN9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJh eSgmYXJnc1swXSwgJmFyZ3NbNF0pOwotICAgICByZXR1cm4gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0 ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0QmVmb3JlKTsKLSB9Ci0gCi0gc3RhdGlj IGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06 OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06 OlZhbHVlICphcmc0LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFs dWUgKmFyZ3NbNV0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNH07Ci0gICAgIGxsdm06 OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s1XSk7 Ci1AQCAtMjg3LDcgKzI4OCw3IEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0 KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2Ci0gfQotIAotIHN0 YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBs bHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcyLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBs bHZtOjpWYWx1ZSAqYXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGNoYXIgKm5hbWUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxs dm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNl0gPSB7 YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNX07Ci0gICAgIGxsdm06OkFycmF5UmVm PGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s2XSk7Ci1AQCAtOTkx LDIzICs5OTIsMjQgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6 QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqcmV0dXJuVHlw ZSA9IGNhbGxJbnN0LT5nZXRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgIEFzc2VydChsbHZtOjpp c2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0dXJuVHlwZSkpOwotICAgICAgICAgICAgICAgICAvLyBj YXN0IHRoZSBpOCAqIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCi0tICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwg Il9jYXN0Iik7Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0gbmV3IGxs dm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpQ b2ludGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLCBuYW1lLCBjYWxsSW5zdCk7Ci0rICAgICAg ICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAgICAgICAgICAgICAgICAgIG5l dyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgbGx2bTo6UG9p bnRlclR5cGU6OmdldChyZXR1cm5UeXBlLCAwKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+ Z2V0TmFtZSgpKSArICJfY2FzdCIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbENvcHlN ZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGludCBhbGlnbjsK LSAgICAgICAgICAgICAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpCi0gICAgICAg ICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50 KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0g Y2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7 Ci0tICAgICAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwgIl9sb2FkIik7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8x MF8wCi0tICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBs bHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVM TCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0rICAg ICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbGx2bTo6VHdpbmUo Y2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAq LywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwot ICNlbHNlCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5l dyBsbHZtOjpMb2FkSW5zdCgKLS0gICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxs dm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgY2FzdFB0ciwgbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2 b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0 PGxsdm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVu dFR5cGUoKSwgY2FzdFB0ciwKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJ bnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwgZmFsc2UgLyogbm90 IHZvbGF0aWxlICovLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGln bikudmFsdWVPck9uZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSAg ICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShsb2FkSW5zdCwgY2FsbEluc3QpOwotICAgICAg ICAgICAgICAgICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBsb2FkSW5zdCk7 Ci1AQCAtMTAyOCw5ICsxMDMwLDkgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxv Y2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgLy8gYWxsIGxhbmVz IHN0b3JpbmcsIHNvIHJlcGxhY2Ugd2l0aCBhIHJlZ3VsYXIgc3RvcmUKLSAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKnJ2YWx1ZSA9IGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDIpOwotICAg ICAgICAgICAgICAgICBsbHZtOjpUeXBlICpzdG9yZVR5cGUgPSBydmFsdWUtPmdldFR5cGUoKTsK LS0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0 LT5nZXRBcmdPcGVyYW5kKDApLCAiX3B0cmNhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09w ZXJhbmQoMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwgbmFt ZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9Ci0r ICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFy Z09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5z dC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfcHRyY2FzdCIsIGNhbGxJbnN0KTsK LSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0gCi0g ICAgICAgICAgICAgICAgIGludCBhbGlnbjsKLUBAIC0xMzM5LDggKzEzNDEsOCBAQCBzdGF0aWMg bGx2bTo6VmFsdWUgKmxHZXRCYXNlUG9pbnRlcihsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc2VydEJlZgotICAgICAgICAgaWYgKHQgPT0gTlVMTCkgewotICAgICAgICAgICAg IHJldHVybiBOVUxMOwotICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICByZXR1cm4gbGx2 bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5nZXRUeXBlKCktPmdl dFNjYWxhclR5cGUoKSwgTExWTUdldE5hbWUodCwgIl9jYXN0IiksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICBy ZXR1cm4gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5nZXRU eXBlKCktPmdldFNjYWxhclR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpUd2luZSh0LT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVm b3JlKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotQEAgLTE1ODMsMTMgKzE1ODUsMTMgQEAgc3Rh dGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpW YWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgaWYgKGNvID09IE5VTEwpCi0gICAgICAgICAg ICAgKmNvbnN0T2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAqY29u c3RPZmZzZXQgPQotLSAgICAgICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3Qt PmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFtZShjbywgIl9jYXN0 IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6Q2Fz dEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28sIGNhc3QtPmdldFR5cGUoKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3 aW5lKGNvLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGlm ICh2byA9PSBOVUxMKQotICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IE5VTEw7Ci0gICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0KLS0gICAgICAgICAgICAg ICAgbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgdm8sIGNhc3QtPmdl dFR5cGUoKSwgTExWTUdldE5hbWUodm8sICJfY2FzdCIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAg ICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0 T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2by0+Z2V0TmFtZSgpKSAr ICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLUBA IC0xNjA4LDE2ICsxNjEwLDE4IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQo bGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAg ICBlbHNlIGlmIChjMSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0 ZVplcm8+KGMxKSkKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gYzA7Ci0gICAgICAg ICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgTExWTUdldE5h bWUoImFkZCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAg KmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAg ICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgi YWRkXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAg ICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgaWYgKHYwID09IE5V TEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjApKQotICAgICAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2 MSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KHYxKSkK LSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdjA7Ci0gICAgICAgICAgICAgZWxz ZQotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRv cjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0 TmFtZSgiYWRkIiwgdjAsIHYxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZh cmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAg ICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwgKChsbHZtOjpUd2luZSgi YWRkXyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSsgICAgICAg ICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgcmV0dXJuOwotICAgICAg ICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgpID09IGxsdm06Okluc3RydWN0aW9uOjpTaGwp IHsKLSAgICAgICAgICAgICBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KG9wMCwgJmMwLCAmdjAsIGlu c2VydEJlZm9yZSk7Ci1AQCAtMTYzMywxMCArMTYzNywxMiBAQCBzdGF0aWMgdm9pZCBsRXh0cmFj dENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZz ZXQsCi0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IHZlYzsKLSAgICAgICAgICAgICAg ICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAg ICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxs dm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwgTExWTUdldE5hbWUoInNobCIsIGMwLCBjMSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5zZXJ0QmVmb3JlKTsKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwg YzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTExWTUdldE5hbWUoInNobCIsIHYwLCBjMSksIGluc2VydEJlZm9yZSk7Ci0r ICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCBjMCwgYzEs ICgobGx2bTo6VHdpbmUoInNobF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXRO YW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAg ICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAg ICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLCAoKGxsdm06 OlR3aW5lKCJzaGxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAot KyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgpID09 IGxsdm06Okluc3RydWN0aW9uOjpNdWwpIHsKLUBAIC0xNjQ4LDI1ICsxNjU0LDMwIEBAIHN0YXRp YyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFs dWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGZpcnN0IHRl cm0gaXMgYSBjb25zdGFudCBhbmQgdGhlIGxhc3QgdGhyZWUgYXJlCi0gICAgICAgICAgICAgLy8g dmFyaWFibGUuCi0gICAgICAgICAgICAgaWYgKGMwICE9IE5VTEwgJiYgYzEgIT0gTlVMTCkKLS0g ICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsIExMVk1HZXROYW1lKCJtdWwiLCBjMCwg YzEpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9 IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoIm11bF8iKSArIGMwLT5n ZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBp bnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gTlVMTDsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmEgPSBOVUxMLCAq dmIgPSBOVUxMLCAqdmMgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIGMx ICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsIExMVk1HZXROYW1lKCJtdWwiLCB2 MCwgYzEpLAotKyAgICAgICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMxLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAt PmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAg ICAgaWYgKGMwICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmIgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2 MSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCB2MSksCi0rICAgICAgICAgICAgICAgIHZiID0gbGx2 bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgdjEs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxs dm06OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5z ZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQot LSAgICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIHYxKSwKLSsg ICAgICAgICAgICAgICAgdmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Oklu c3RydWN0aW9uOjpNdWwsIHYwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1lKCkp ICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgICAgIGxsdm06 OlZhbHVlICp2YWIgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2YSAhPSBOVUxMICYmIHZiICE9 IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmEsIHZiLCBMTFZNR2V0TmFtZSgiYWRkIiwgdmEs IHZiKSwKLSsgICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgiYWRkXyIpICsgdmEt PmdldE5hbWUoKSkgKyAiXyIpICsgdmItPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAg ICAgIGVsc2UgaWYgKHZhICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZhOwotQEAg LTE2NzQsOCArMTY4NSw5IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2 bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAg ICAgdmFiID0gdmI7Ci0gCi0gICAgICAgICAgICAgaWYgKHZhYiAhPSBOVUxMICYmIHZjICE9IE5V TEwpCi0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJh dG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZN R2V0TmFtZSgiYWRkIiwgdmFiLCB2YyksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAg ICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAg ICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLCAoKGxsdm06OlR3 aW5lKCJhZGRfIikgKyB2YWItPmdldE5hbWUoKSkgKyAiXyIpICsgdmMtPmdldE5hbWUoKSwKLSsg ICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZSBpZiAo dmFiICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHZhYjsKLSAg ICAgICAgICAgICBlbHNlCi1AQCAtMTk0Myw3ICsxOTU1LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNl dHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUg Kipjb24KLSAgICAgICAgICAgICAvLyBhbGwgemVyb3MgKGkuZS4gYSBDb25zdGFudEFnZ3JlZ2F0 ZVplcm8sIGJ1dCBqdXN0IGluIGNhc2UsCi0gICAgICAgICAgICAgLy8gZG8gdGhlIG1vcmUgZ2Vu ZXJhbCBjaGVjayB3aXRoIGxWZWN0b3JJczMyQml0SW50cygpLgotICAgICAgICAgICAgIHZhcmlh YmxlT2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YXJpYWJsZU9mZnNldCwgTExWTVR5cGVz OjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExMVk1HZXROYW1lKHZhcmlhYmxlT2Zmc2V0LCAiX3RydW5jIiksIGluc2Vy dEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlR3aW5lKHZhcmlhYmxlT2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGlu c2VydEJlZm9yZSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot ICAgICB9Ci1AQCAtMTk1Miw3ICsxOTY0LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNh ZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAg ICAgICAgIGlmIChsVmVjdG9ySXMzMkJpdEludHMoY29uc3RPZmZzZXQpKSB7Ci0gICAgICAgICAg ICAgLy8gVHJ1bmNhdGUgdGhlbSBzbyB3ZSBoYXZlIGEgMzItYml0IHZlY3RvciB0eXBlIGZvciB0 aGVtLgotICAgICAgICAgICAgIGNvbnN0T2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChjb25z dE9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAiX3Ry dW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNvbnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVu YyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8vIEZJ WE1FOiBvdGhlcndpc2Ugd2UganVzdCBhc3N1bWUgdGhhdCBhbGwgY29uc3RhbnQgb2Zmc2V0cwot ICAgICAgICAgICAgIC8vIGNhbiBhY3R1YWxseSBhbHdheXMgZml0IGludG8gMzItYml0cy4uLiAg KFRoaXMgY291bGQgYmUKLUBAIC0xOTYzLDcgKzE5NzUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0 czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAq KmNvbgotICAgICAgICAgICAgIC8vIGxsdm06OkNvbnN0YW50Rm9sZEluc3RydWN0aW9uKCkgZG9l c24ndCBzZWVtIHRvIGJlIGRvaW5nCi0gICAgICAgICAgICAgLy8gZW5vdWdoIGZvciB1cyBpbiBz b21lIGNhc2VzIGlmIHdlIGNhbGwgaXQgZnJvbSBoZXJlLgotICAgICAgICAgICAgIGNvbnN0T2Zm c2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChjb25zdE9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZl Y3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNv bnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAg ICB9Ci0gICAgIH0KLSAKLUBAIC0yMDEyLDggKzIwMjQsOCBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0 czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKm9mZnNldFB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydAotIAotICAgICAgICAgLy8gQWx0ZXJuYXRpdmVseSwgb2Zmc2V0IGNvdWxkIGJlIGEgc2Vx dWVuY2Ugb2YgYWRkcyB0ZXJtaW5hdGluZwotICAgICAgICAgLy8gaW4gc2FmZSBjb25zdGFudCB2 ZWN0b3JzIG9yIGEgU0V4dC4KLS0gICAgICAgICpvZmZzZXRQdHIgPQotLSAgICAgICAgICAgIG5l dyBsbHZtOjpUcnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwgTExW TUdldE5hbWUob2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAqb2Zm c2V0UHRyID0gbmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0 b3JUeXBlLCBsbHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAg ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfSBlbHNlCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci1A QCAtMjIyOSw3ICsyMjQxLDggQEAgc3RhdGljIGJvb2wgbEdTVG9HU0Jhc2VPZmZzZXRzKGxsdm06 OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICB9Ci0gICAgIC8vIENhc3QgdGhlIGJhc2UgcG9p bnRlciB0byBhIHZvaWQgKiwgc2luY2UgdGhhdCdzIHdoYXQgdGhlCi0gICAgIC8vIF9fcHNldWRv XypfYmFzZV9vZmZzZXRzXyogZnVuY3Rpb25zIHdhbnQuCi0tICAgIGJhc2VQdHIgPSBuZXcgbGx2 bTo6SW50VG9QdHJJbnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBMTFZN R2V0TmFtZShiYXNlUHRyLCAiXzJ2b2lkIiksIGNhbGxJbnN0KTsKLSsgICAgYmFzZVB0ciA9IG5l dyBsbHZtOjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUs IGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiXzJ2b2lkIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEluc3QpOwotICAgICBsQ29weU1ldGFkYXRh KGJhc2VQdHIsIGNhbGxJbnN0KTsKLSAgICAgbGx2bTo6RnVuY3Rpb24gKmdhdGhlclNjYXR0ZXJG dW5jID0gaW5mby0+YmFzZU9mZnNldHNGdW5jOwotIAotQEAgLTI4MDMsNyArMjgxNiw3IEBAIHN0 YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAg ICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHB0ciwgY2FsbEluc3QpOwotICAgICAgICAgICAg ICAgICBEZWJ1Zyhwb3MsICJUcmFuc2Zvcm1lZCBnYXRoZXIgdG8gdW5hbGlnbmVkIHZlY3RvciBs b2FkISIpOwotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbmV3Q2FsbCA9Ci0t ICAgICAgICAgICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMs IHB0ciwgbWFzaywgTExWTUdldE5hbWUocHRyLCAiX21hc2tlZF9sb2FkIikpOwotKyAgICAgICAg ICAgICAgICAgICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIsIG1h c2ssIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbWFza2VkX2xvYWQiKTsKLSAgICAg ICAgICAgICAgICAgbENvcHlNZXRhZGF0YShuZXdDYWxsLCBjYWxsSW5zdCk7Ci0gICAgICAgICAg ICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIG5ld0NhbGwpOwotICAg ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDQucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTk0ZDg0NDNhNWUuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzQgKzAsMCBAQAotRnJvbSBjMDNhNTE0MjQ0NDQ3NmExY2FhNWMyYmE3ZmEy ZDkyZDc3OTNkNmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVu ZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBNb24s IDI1IEphbiAyMDIxIDA5OjIyOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGluZyBidWls ZCBvbiBsbHZtIHRydW5rLgotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDcgKysrLS0tLQotIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBkZWQ1MjRiNzEuLmI2MGU2ZmU4NCAx MDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAsOCAr MTAyMCw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQgdmFs dWUsIGJvb2wgY2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxvY2sg KmJiQ2FzZUltcGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkgewot ICAgICAgICAgLy8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVtZW50 YXRpb24KLS0gICAgICAgIGxsdm06OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+ Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNC bG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0rICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNC bG9jayhsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiLCBiYkNhc2UpOwot ICAgICB9Ci0gI2VuZGlmCi0gCi1AQCAtMzE0Miw4ICszMTQxLDggQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpU eXBlICp2ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6Omdl dCh2ZWNUeXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2luZSB0 dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkg KyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotLSAgICBsbHZt OjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigpLmNfc3Ry KCkpOwotKyAgICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0KLSsgICAgICAgIEluc2VydEluc3QodW5k ZWYxLCB2LCAwLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXRO YW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUgKyAiX2luaXQiKTsKLSAKLSAgICAgLy8gU2h1 ZmZsZVZlY3RvcgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCmRpZmYg LS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoIGIvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZTNlOTZiMDBhYmZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3MiArMCwwIEBACi1Gcm9tIGMx ZDBhNTFiZjg0MTZkNDIxNDRkZTllMmJkZDU5ODI1ZWFlZmYxYWMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNv bT4KLURhdGU6IEZyaSwgOCBKYW4gMjAyMSAxNDoxMzo0OSAtMDgwMAotU3ViamVjdDogW1BBVENI XSBMTFZNIDExIHN1cHBvcnQgZm9yIGdlbiBjb2RlCi0KLS0tLQotIHNyYy9jdHguY3BwICAgICAg ICAgICAgICAgICAgICAgfCAgMTMgKystCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNw cCB8ICAgOSArLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAxNDMgKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRp b25zKCspLCA0MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3Jj L2N0eC5jcHAKLWluZGV4IGI2MGU2ZmU4NC4uMmE3MmU2ODM3IDEwMDY0NAotLS0tIGEvc3JjL2N0 eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJp Z2h0IChjKSAyMDEwLTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIw MTAtMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0g ICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKLUBAIC0zNjg1LDggKzM2ODUsMTcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjoKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBl Pih2YWx1ZS0+Z2V0VHlwZSgpKSk7Ci0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0gICAgIGlmIChk ZWZhdWx0cyA9PSBOVUxMKSB7Ci0tICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdCh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAot KyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0 cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVu dHMoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsj ZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgZGVmYXVs dHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVk IGludD4odnQtPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZh bHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2Vsc2UKLSsgICAgICAgIGRlZmF1bHRzID0g bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyAgICAgICAgICAgIGxsdm06OkVsZW1l bnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdldE51bUVsZW1lbnRz KCkpLCBmYWxzZSksCi0rICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2 dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbmRpZgotICAgICB9Ci0gCi0gICAgIGF1dG8gRm4g PSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24obS0+bW9kdWxlLCBsbHZt OjpHZW5YSW50cmluc2ljOjpnZW54X3NpbWRjZl9wcmVkaWNhdGUsCi1kaWZmIC0tZ2l0IGEvc3Jj L2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlv bi5jcHAKLWluZGV4IGExNzZlOTQ2Mi4uNDFmM2IwMGUyIDEwMDY0NAotLS0tIGEvc3JjL2dlbi9H bG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotQEAgLTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNi0y MDIwLCBJbnRlbCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIwMjEs IEludGVsIENvcnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0Ci1AQCAtNTMsOCArNTMsMTAgQEAKLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9H ZW5YSW50ck9wdHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YSW50cmlu c2ljcy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhNZXRhZGF0YS5oPgot LSNpbmNsdWRlIDxsbHZtL0lSL0NGRy5oPgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMV8wCi0gI2luY2x1ZGUgPGxsdm0vSVIvQ2FsbFNpdGUuaD4KLSsjZW5kaWYKLSsjaW5j bHVkZSA8bGx2bS9JUi9DRkcuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1Z0luZm8uaD4KLSAj aW5jbHVkZSA8bGx2bS9JUi9Eb21pbmF0b3JzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRnVuY3Rp b24uaD4KLUBAIC00NzAsNyArNDcyLDggQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpMb2Nh bGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0aW9u ICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlwZSAq RWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFsbG9j YUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUoKSAr ICIubG9jYWwiLCAmRmlyc3RJKTsKLS0gICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06 Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0rICAgICAgICBBbGxvY2EtPnNldEFs aWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgp KTsKLSsKLSAgICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+KEdWLT5nZXRJbml0aWFsaXplcigp KSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5nZXRJbml0aWFsaXplcigpLCBBbGxv Y2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAK LWluZGV4IGQ1OGQ3N2Y3My4uMTc4OWI4NDc2IDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsr KyBiL3NyYy9vcHQuY3BwCi1AQCAtMjg5OSwxNSArMjg5OSwxNyBAQCBzdGF0aWMgbGx2bTo6RnVu Y3Rpb24gKmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wg aXNTdG9yZQotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFs dWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAg ICAgQXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotICAgICBBc3NlcnQobGx2bTo6 aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0tICAgIEFzc2VydChsbHZt Ojppc1Bvd2VyT2YyXzMyKHZhbC0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7 Ci0tICAgIEFzc2VydCh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8g OCA8PSA4ICogT1dPUkQpOwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBlID0g bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyAgICBB c3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7 Ci0rICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9 IDggKiBPV09SRCk7Ci0gCi0gICAgIC8vIFRoZSBkYXRhIHdyaXRlIG9mIHN2bSBzdG9yZSBtdXN0 IGhhdmUgYSBzaXplIHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAg Ly8gYnl0ZXMuIEhvd2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBk YXRhIHdyaXRlIHNpemUgaXMgOC4KLSAgICAgLy8gU28gd2UgdXNlIG1hc2tlZCBzdG9yZSBmdW5j dGlvbiBoZXJlIGluc3RlYWQgb2Ygc3ZtIHN0b3JlIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0g ICAgIC8vIGNvcnJlY3RseS4KLS0gICAgaWYgKHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVT aXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydCh2YWwtPmdldFR5cGUoKS0+ Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotKyAgICBpZiAodmFsVmVj VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0rICAgICAgICBBc3Nl cnQodmFsVmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwot ICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4 SW5zdChpbnN0LCB0cnVlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6Q2FsbEluc3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIHZhbCwgTExWTU1hc2tBbGxP biwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTI5MjMsMTUgKzI5MjUsMTcgQEAgc3RhdGlj IGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpW YWx1ZSAqcHRyLCBsbHZtOjoKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YTG9hZElu c3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihyZXRU eXBlKSk7Ci0tICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFR5cGUtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCkpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJ bkJpdHMoKSk7Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkg LyA4IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnJldFZlY1R5cGUg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsgICAgQXNzZXJ0 KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAg ICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpKTsKLSsgICAgQXNz ZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JE KTsKLSAgICAgLy8gVGhlIGRhdGEgcmVhZCBvZiBzdm0gbG9hZCBtdXN0IGhhdmUgYSBzaXplIHRo YXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAgLy8gYnl0ZXMuIEhvd2V2 ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBkYXRhIHJlYWQgc2l6ZSBp cyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIGxvYWQgZnVuY3Rpb24gaGVyZSBpbnN0ZWFk IG9mIHN2bSBsb2FkIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0gICAgIC8vIGNvcnJlY3RseS4K LS0gICAgaWYgKHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewot LSAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6Oklu dDhUeXBlKTsKLSsgICAgaWYgKHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAv IDggPCAxNikgewotKyAgICAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFNjYWxhclR5cGUoKSA9 PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZtOjpGdW5jdGlvbiAqbWFz a2VkRnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgZmFsc2UpKQotICAgICAgICAgICAg IHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1 bmMsIHB0ciwgTExWTU1hc2tBbGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTU2MjIs MTUgKzU2MjYsMjQgQEAgc3RhdGljIGJvb2wgbFZlY3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUgKnB0 ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRyVXNlcywgc3RkOjoKLSAgICAgICAgIGxsdm06OlB0 clRvSW50SW5zdCAqcHRyVG9JbnQgPQotICAgICAgICAgICAgIG5ldyBsbHZtOjpQdHJUb0ludElu c3QocHRyLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgInZlY3Rvcml6ZWRfcHRydG9pbnQiLCBpbnNl cnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmFkZHIgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlQWRkKHB0clRvSW50LCBvZmZzZXQsICJ2ZWN0b3JpemVkX2FkZHJl c3MiLCBpbnNlcnRCZWZvcmUpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotKyAgICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KHNjYWxhcl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZWxzZQotICAgICAgICAg bGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJfdHlwZSwg cmVxU2l6ZSAvIHRfc2l6ZSk7Ci0rI2VuZGlmCi0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZm4g PSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24oCi0gICAgICAgICAgICAg bS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3N2bV9ibG9ja19sZF91bmFsaWdu ZWQsIHtyZXRUeXBlLCBhZGRyLT5nZXRUeXBlKCl9KTsKLSAgICAgICAgIGxsdm06Okluc3RydWN0 aW9uICpsZCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZm4sIHthZGRyfSwgInZlY3Rvcml6ZWRf bGQiLCBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgaWYgKGxvYWRpbmdQdHIpIHsKLSAgICAg ICAgICAgICAvLyBDYXN0IGludCB0byBwdHIgdmlhIGludHRvcHRyCi0rI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGQgPSBuZXcgbGx2bTo6SW50 VG9QdHJJbnN0KGxkLCBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChvcmlnaW5hbFR5cGUsIHJl cVNpemUgLyB0X3NpemUpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7Ci0rI2Vsc2UKLSAgICAgICAg ICAgICBsZCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OlZlY3RvclR5cGU6Omdl dChvcmlnaW5hbFR5cGUsIHJlcVNpemUgLyB0X3NpemUpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7 Ci0rI2VuZGlmCi0gICAgICAgICB9Ci0gCi0gICAgICAgICAvLyBTY2FsYXIgZXh0cmFjdHMgZm9y IGFsbCBsb2FkZWQgZWxlbWVudHMKLUBAIC02MTYwLDE5ICs2MTczLDM0IEBAIGJvb2wgUmVwbGFj ZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsK LSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gJipJOwotICAgICAgICAgaWYgKGxs dm06OkNhbGxJbnN0ICpjaSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihpbnN0KSkg ewotICAgICAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmdW5jID0gY2ktPmdldENhbGxlZEZ1bmN0 aW9uKCk7Ci0tICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpID09ICJsbHZt LnRyYXAiKSB7Ci0rICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpLmVxdWFs cygibGx2bS50cmFwIikpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqYXJnVHlwZXNb XSA9IHtMTFZNVHlwZXM6OkludDFWZWN0b3JUeXBlLCBMTFZNVHlwZXM6OkludDE2VmVjdG9yVHlw ZX07Ci0gICAgICAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uIG9mIHBhcmFtZXRlcnMgZm9yIGdl bnhfcmF3X3NlbmRfbm9yZXN1bHQgY2FuIGJlIGZvdW5kIGluIHRhcmdldC1nZW54LmxsCi0gICAg ICAgICAgICAgICAgIGF1dG8gRm4gPSArbGx2bTo6R2VuWEludHJpbnNpYzo6Z2V0R2VuWERlY2xh cmF0aW9uKAotICAgICAgICAgICAgICAgICAgICAgbS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50cmlu c2ljOjpnZW54X3Jhd19zZW5kX25vcmVzdWx0LCBhcmdUeXBlcyk7Ci0gICAgICAgICAgICAgICAg IGxsdm06OlNtYWxsVmVjdG9yPGxsdm06OlZhbHVlICosIDg+IEFyZ3M7Ci0gICAgICAgICAgICAg ICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQz MlR5cGUsIDApKTsKLS0gICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rICAgICAgICAgICAg ICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAg Zy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExWTV9WRVJT SU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8 dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0s Ci0rI2Vsc2UgLy8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVu dENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgICAgICBs bHZtOjpDb25zdGFudEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKwotICAgICAgICAgICAgICAg ICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJU eXBlLCAzOSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFu dEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAzMzU1NDQ0OCkpOwotICAgICAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQoCi0tICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRo KCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MTZUeSgq Zy0+Y3R4KSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAg ICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAg ICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y V2lkdGgoKSksIGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAg ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6 Z2V0SW50MTZUeSgqZy0+Y3R4KSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayh6 ZXJvTWFzayk7Ci0gCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdJbnN0 ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShGbiwgQXJncywgY2ktPmdldE5hbWUoKSk7Ci1AQCAt NjE4MSw3ICs2MjA5LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAgICAgbW9kaWZp ZWRBbnkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYmIGZ1bmMtPmdldE5h bWUoKSA9PSAibGx2bS5hc3N1bWUiKSB7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYm IGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0uYXNzdW1lIikpIHsKLSAgICAgICAgICAgICAg ICAgY2ktPmVyYXNlRnJvbVBhcmVudCgpOwotICAgICAgICAgICAgICAgICBtb2RpZmllZEFueSA9 IHRydWU7Ci0gICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLUBAIC02MzM1LDcgKzYzNjMs NyBAQCBib29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJh c2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgdW5zdXBwb3J0ZWRGdW5jcy5zaXplKCk7IGkrKykgewotICAg ICAgICAgICAgICAgICBzdGQ6OnNtYXRjaCBtYXRjaDsKLS0gICAgICAgICAgICAgICAgc3RkOjpz dHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgIHN0ZDo6 c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAgICAg ICBpZiAoc3RkOjpyZWdleF9tYXRjaChmdW5jTmFtZSwgbWF0Y2gsIHVuc3VwcG9ydGVkRnVuY3Nb aV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB1bnN1cHBvcnRlZCBmdW5j dGlvbi4gR2VuZXJhdGUgZXJyb3IgYW5kIHN0b3AgY29tcGlsYXRpb24uCi0gICAgICAgICAgICAg ICAgICAgICBTb3VyY2VQb3MgcG9zOwotQEAgLTY0MTgsMTIgKzY0NDYsMTQgQEAgYm9vbCBNYW5n bGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gICAgICAgICAgICAgaWYgKGZ1bmMtPmdldE5hbWUoKS5zdGFydHN3aXRoKCJfX3NwaXJ2X29j bCIpKSB7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1hbmdsZWROYW1lOwotICAgICAg ICAgICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gZnVuYy0+Z2V0UmV0dXJuVHlwZSgpOwot LSAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsK LSsgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCku c3RyKCk7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGxsdm06OlR5cGUgKj4gQXJnVHk7 Ci0gICAgICAgICAgICAgICAgIC8vIHNwaXJ2IE9wZW5DTCBidWlsdGlucyBhcmUgdXNlZCBmb3Ig ZG91YmxlIHR5cGVzIG9ubHkKLS0gICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVj dG9yVHkoKSAmJiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkg fHwKLSsgICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkgfHwKLSAgICAgICAgICAg ICAgICAgICAgICAgIHJldFR5cGUtPmlzU2luZ2xlVmFsdWVUeXBlKCkgJiYgcmV0VHlwZS0+aXNE b3VibGVUeSgpKTsKLS0gICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAm JiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkpIHsKLSsgICAg ICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAgICAgICAgICAgICAg ICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldEVsZW1l bnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotICAgICAgICAgICAgICAgICAgICAgQXJnVHkucHVz aF9iYWNrKExMVk1UeXBlczo6RG91YmxlVmVjdG9yVHlwZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAvLyBfRHZXSURUSCBzdWZmaXggaXMgdXNlZCBpbiB0YXJnZXQgZmlsZSB0byBkaWZmZXJlbnRp YXRlIHNjYWxhcgotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHZlY3RvciB2ZXJzaW9ucyBv ZiBpbnRyaW5zaWNzLiBIZXJlIHdlIHJlbW92ZSB0aGlzCi1AQCAtNjUxMSw4ICs2NTQxLDE1IEBA IGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRy ZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgIC8vIENhc3Qgb2Zmc2V0cyB0byBpbnQ2 NAotICAgICBPZmZzZXRzID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgT2Zmc2V0cywKLSsgICAgICAgIGxsdm06 OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o T2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAgICAgICAic3ZtX29m ZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAgT2Zmc2V0cywgbGx2 bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4dCIs IEluc2VydEJlZm9yZSk7Ci0rI2VuZGlmCi0gCi0gICAgIGlmICghbGx2bTo6aXNhPGxsdm06OkNv bnN0YW50UG9pbnRlck51bGw+KFB0cikpIHsKLSAgICAgICAgIC8vIENhc3QgcHRyIHRvIGludDY0 Ci1AQCAtNjUyMCwxMyArNjU1NywzMSBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpj YWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotIAotICAg ICAgICAgLy8gVmVjdG9yaXplIHB0cgotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmSW5zZXJ0 VmFsdWUgPQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAg ICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgK LSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyNlbHNl Ci0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6Omdl dChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRz KCkpKTsKLSsjZW5kaWYKLSAgICAgICAgIGFkZHJlc3MgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5z dDo6Q3JlYXRlKHVuZGVmSW5zZXJ0VmFsdWUsIGFkZHJlc3MsIExMVk1JbnQzMigwKSwgInN2bV9w dHJfaWVpIiwgSW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVj ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51 bUVsZW1lbnRzKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAK LSsgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5 cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rI2Vsc2UKLSsgICAgICAgIGxsdm06OkVs ZW1lbnRDb3VudDo6Z2V0KAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVu dHMoKSwgZmFsc2UpLAotKyNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXRO dWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENvbnRleHQo KSkpKTsKLSsKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9Ci0rI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGx2bTo6 VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotKyAgICAgICAgICAg ICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6 SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotKyNlbmRp ZgotICAgICAgICAgYWRkcmVzcyA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdChhZGRyZXNz LCB1bmRlZlNodWZmbGVWYWx1ZSwgemVyb1ZlYywgInN2bV9wdHJfc3ZpIiwgSW5zZXJ0QmVmb3Jl KTsKLSAKLSAgICAgICAgIC8vIENhbGN1bGF0ZSBhZGRyZXNzCi1AQCAtNjU1Myw5ICs2NjA4LDEy IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JMb2Fk KGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICBpZiAocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgp LT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVlOwotICAgICAgICAg YXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMy VHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6 Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUp LT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06OlZl Y3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygp KTsKLSsjZW5kaWYKLSAgICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmVzID0gbEdl blhMb2FkSW5zdChwdHIsIHJldFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9u PihMSSkpOwotICAgICBBc3NlcnQocmVzKTsKLSAKLUBAIC02NTgwLDExICs2NjM4LDE2IEBAIGxs dm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1WZWN0b3JMb2FkKGxs dm06Okluc3RydWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChw dHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0VHlwZSwgMCksIENJLT5nZXROYW1lKCkgKyAi X2ludHRvcHRyIiwgQ0kpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBOVUxM OwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2FkSW5z dCA9IG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o cHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgbG9hZEluc3QsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJLT5nZXROYW1lKCksIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChsbHZt OjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVy RWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD SS0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVW ZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotLSAgICBsb2Fk SW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIENJLT5nZXROYW1lKCksIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIs IENJLT5nZXROYW1lKCksIGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkp LnZhbHVlT3JPbmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06 Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0rCi0gICAgIEFzc2VydChsb2FkSW5zdCk7 Ci0gICAgIHJldHVybiBsb2FkSW5zdDsKLSB9Ci1AQCAtNjYwNiw3ICs2NjY5LDExIEBAIGxsdm06 Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JTdG9yZShsbHZtOjpT dG9yZUluc3QgKlNJKSB7Ci0gICAgIC8vIE5vdGU6IGl0IGRvZXNuJ3QgbG9vayBsaWtlIGEgbm9y bWFsIGNhc2UgZm9yIEdlblggdGFyZ2V0Ci0gICAgIGlmICh2YWxUeXBlLT5nZXRTY2FsYXJUeXBl KCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdl dC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlw ZTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIHZh bFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rI2Vs c2UKLSAgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwg dmFsVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0gICAgICAgICB2YWwg PSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbCwgdmFsVHlwZSwgInN2bV9zdF92YWxfcHRydG9p bnQiLCBTSSk7Ci0gICAgIH0KLSAKLUBAIC02NjMxLDEyICs2Njk4LDggQEAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvclN0b3JlKGxsdm06Okluc3Ry dWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChwdHIsIGxsdm06 OlBvaW50ZXJUeXBlOjpnZXQodmFsVHlwZSwgMCksIENJLT5nZXROYW1lKCkgKyAiX2ludHRvcHRy IiwgQ0kpOwotIAotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqc3RvcmVJbnN0ID0gTlVMTDsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbG9hZEluc3QgPSBu ZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+ KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdG9yZUluc3QsIENJLT5nZXROYW1lKCksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbHNlCi0tICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpT dG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbmRpZgot KyAgICBzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRyLCAobGx2bTo6SW5z dHJ1Y3Rpb24gKilOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFs dWVPck9uZSgpKTsKLSAgICAgQXNzZXJ0KHN0b3JlSW5zdCk7Ci0gICAgIHJldHVybiBzdG9yZUlu c3Q7Ci0gfQotQEAgLTY2NDUsMTUgKzY3MDgsMTggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFk ZHJlc3NTcGFjZTo6Y3JlYXRlSW50OFdyUmVnaW9uKGxsdm06OlZhbHVlICpWYWwsIGxsdm06OlYK LSAgICAgaW50IHdpZHRoID0gZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpOwotIAotICAgICBs bHZtOjpWYWx1ZSAqQXJnc1s4XTsKLS0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzExXzAKLSsgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhl ZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xk IHZhbHVlCi0rI2Vsc2UKLSAgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KSk7IC8vIG9s ZCB2YWx1ZQotLSAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdG8g c3RvcmUKLS0gICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJ bnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZzdHJpZGUKLS0g ICAgQXJnc1szXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUs IHdpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoCi0tICAgIEFyZ3NbNF0g PSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpZGUKLS0gICAgQXJnc1s1XSA9IGxsdm06OkNv bnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQxNlR5cGUsIDApOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG9mZnNldHMKLS0gICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50SW50 OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHBhcmVudCB3aWR0aCAoaWdub3JlZCkKLS0gICAgQXJnc1s3XSA9IE1hc2s7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG1hc2sKLSsjZW5kaWYKLSsgICAgQXJnc1sxXSA9IFZhbDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdG8gc3RvcmUK LSsgICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIDApOyAgICAgLy8gdnN0cmlkZQotKyAgICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6 OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgd2lkdGgpOyAvLyB3aWR0aAotKyAgICBBcmdzWzRd ID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgNCk7ICAgICAv LyBzdHJpZGUKLSsgICAgQXJnc1s1XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQxNlR5cGUsIDApOyAgICAgLy8gb2Zmc2V0cwotKyAgICBBcmdzWzZdID0gbGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAvLyBwYXJlbnQgd2lk dGggKGlnbm9yZWQpCi0rICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sKLSAKLSAgICAgbGx2bTo6VHlwZSAqVHlz WzRdOwotIAotQEAgLTY3MDgsNyArNjc3NCwxMiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRk cmVzc1NwYWNlOjpwcm9jZXNzR2F0aGVyU2NhdHRlclByaXZhdGUobGx2bTo6Q2FsbEluc3QgKgot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gCi0gICAgIGxsdm06OlZhbHVlICphZGRyZXNzID0gY2Fs Y3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MocHRyLCBvZmZzZXRzLCBDSSk7Ci0rI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIGxsdm06OlR5cGUgKmk4VmVjVHlw ZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRo ICogNCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0gbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCk7Ci0rI2VuZGlmCi0rCi0g ICAgIGJvb2wgaXNJbnQ4ID0gKHZhbHVlLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSA9PSBM TFZNVHlwZXM6OkludDhUeXBlKTsKLSAKLSAgICAgQXNzZXJ0KGFkZHJlc3MgJiYgIkJhZCBnYXRo ZXIvc2NhdHRlciBhZGRyZXNzISIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4MjllYTQ4MzkxZS4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxMjYgKzAsMCBAQAotRnJvbSBiYjNmNDkzZDFmYmQ0NWM3OWUxZDlkZWU2N2EwNDMw YmEzMTNlYWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2 YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDE5IEphbiAyMDIxIDEx OjA3OjMzIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGlmZGVmcyBmb3IgTExWTV8xMQot Ci0tLS0KLSBzcmMvY3R4LmNwcCB8ICA2ICsrKy0tLQotIHNyYy9vcHQuY3BwIHwgMTggKysrKysr KysrLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4 IDJhNzJlNjgzNy4uNTI3YTAyZjMwIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3Ny Yy9jdHguY3BwCi1AQCAtMTY5MSw3ICsxNjkxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlQK LSAgICAgaWYgKGxsdm06OkNvbnN0YW50ICpjb25zdF92YWwgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpDb25zdGFudD4odmFsdWUpKSB7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzExXzAKLSAgICAgICAgIHJldCA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChnLT50 YXJnZXQtPmdldFZlY3RvcldpZHRoKCksIGNvbnN0X3ZhbCk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMl8wCi0gICAgICAgICByZXQgPQotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldFZl Y3RvcldpZHRoKCkpLCBmYWxzZX0sIGNvbnN0X3ZhbCk7Ci0gI2Vsc2UgLy8gTExWTSAxMi4wKwot QEAgLTMxNDgsNyArMzE0OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpC cm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gI2lmIElTUENf TExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9W ZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAgICB2ZWNUeXBlLT5n ZXRWZWN0b3JOdW1FbGVtZW50cygpLCBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06 OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9 PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEy XzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPQotICAgICAgICAgbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXROdW1F bGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgq Zy0+Y3R4KSkpOwotQEAgLTM2ODgsNyArMzY4OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGRlZmF1 bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVt ZW50cygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwot LSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpD b25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdl dE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRF bGVtZW50VHlwZSgpKSk7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9v cHQuY3BwCi1pbmRleCAxNzg5Yjg0NzYuLjNmZjE5MWEwYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQu Y3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTEwNDUsNyArMTA0NSw3IEBAIGJvb2wgSW50cmlu c2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAg ICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50 KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0g Y2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExW TV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmxvYWRJbnN0ID0KLSAgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5z dChjYXN0UHRyLCBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFt ZSgpKSArICJfbG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06 Okluc3RydWN0aW9uICopTlVMTCk7Ci1AQCAtMTQ3Miw3ICsxNDcyLDcgQEAgc3RhdGljIGxsdm06 OlZhbHVlICpsR2V0QmFzZVB0ckFuZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0cnMsIGxsdm06OlZh bHVlICoqb2Zmc2UKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY3YtPmdldFR5cGUoKS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihjdi0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlIC8v IExMVk0gMTIuMCsKLUBAIC0xNDk1LDcgKzE0OTUsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxH ZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFsdWUgKipvZmZz ZQotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BD X0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3BfdmFyX3R5cGUtPmdl dFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19M TFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl Pihib3BfdmFyX3R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExW TSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6 OmdldCgKLUBAIC0yODAzLDcgKzI4MDMsNyBAQCBzdGF0aWMgYm9vbCBsR1NUb0xvYWRTdG9yZShs bHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVy b01hc2sgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAg ICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjYWxsSW5zdC0+Z2V0VHlw ZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJf MAotICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAg ICAgICAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY2FsbElu c3QtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAKLUBAIC0zMTAwLDcg KzMxMDAsNyBAQCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbEluc3Qg KmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Jsb2NrOjppdGVyYQotICAgICAgICAgewotICAgICAgICAg ICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJbnN0 LT5nZXRUeXBlKCksIDApOwotICAgICAgICAgICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5z dChwdHIsIHB0clR5cGUsICJwdHJfY2FzdF9mb3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3Qo Ci0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFsc2UgLyogbm90 IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5m b3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgp IDogaW5mby0+YWxpZ24pCi1AQCAtMzQ1OSw3ICszNDU5LDcgQEAgbGx2bTo6VmFsdWUgKmxHRVBB bmRMb2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNldCwgaW50IGFsaWduLCBs bHZtOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqdHlwZSkgewotICAg ICBsbHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExWTUludDY0KG9mZnNldCks ICJuZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0 SW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCksICJwdHJfY2FzdCIsIGlu c2VydEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgcmV0dXJuIG5ldyBs bHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAq LywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8gTExW TSAxMS4wKwotICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxs dm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgp LCBwdHIsCi1AQCAtNjE4Myw3ICs2MTgzLDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAg ICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgIGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzEyXzAKLSAgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZN IDEyLjArCi0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0 aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSks IGZhbHNlKSwKLUBAIC02MTk1LDcgKzYxOTUsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2lj czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAg ICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENf TExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2ln bmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNl bHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3Vu dDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0 b3JXaWR0aCgpKSwgZmFsc2UpLAotQEAgLTY1NjcsNyArNjU2Nyw3IEBAIGxsdm06OlZhbHVlICpG aXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVl ICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0 YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAot LSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNl fSwKLSAjZWxzZQotICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCmRpZmYgLS1naXQg YS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoIGIvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI5 NzVmODk2YzdlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1Gcm9tIDYyZjVhNmMz N2JmMjZmYzI1YTdjZjgxODY4MDUyZDM0NzI4NzQ2MTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURh dGU6IFR1ZSwgMjMgTWFyIDIwMjEgMjM6MDc6MzAgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRG8g bm90IGdlbmVyYXRlIGZ1bmN0aW9uIG1hc2sgd2hlbiBpdCBpcyBub3QgcmVxdWlyZWQKLQotLS0t Ci0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKystLS0t LS0tCi0gdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIHwgNjMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwg MTIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9mdWxs X21hc2suaXNwYwotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5k ZXggNTI3YTAyZjMwLi45ZTc3NWZjNWMgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIv c3JjL2N0eC5jcHAKLUBAIC0yMzEsMTAgKzIzMSwxOCBAQCBGdW5jdGlvbkVtaXRDb250ZXh0OjpG dW5jdGlvbkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6 RgotICAgICBpbnRlcm5hbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6Ok1hc2tU eXBlLCAiaW50ZXJuYWxfbWFza19tZW1vcnkiKTsKLSAgICAgU3RvcmVJbnN0KExMVk1NYXNrQWxs T24sIGludGVybmFsTWFza1BvaW50ZXIpOwotIAotLSAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IExM Vk1NYXNrQWxsT247Ci0tCi0tICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExWTVR5 cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLS0gICAgU3RvcmVJbnN0KExMVk1N YXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIC8vIElmIHRoZSBmdW5jdGlvbiBkb2Vz bid0IGhhdmUgX19tYXNrIGluIHBhcmFtZXRlcnMsIHRoZXJlIGlzIG5vIG5lZWQgdG8KLSsgICAg Ly8gaGF2ZSBmdW5jdGlvbiBtYXNrCi0rICAgIGlmICgoZnVuYy0+R2V0VHlwZSgpLT5pc0V4cG9y dGVkICYmCi0rICAgICAgICAgKGxmLT5nZXRGdW5jdGlvblR5cGUoKS0+Z2V0TnVtUGFyYW1zKCkg PT0gZnVuYy0+R2V0VHlwZSgpLT5HZXROdW1QYXJhbWV0ZXJzKCkpKSB8fAotKyAgICAgICAgKGZ1 bmMtPkdldFR5cGUoKS0+aXNVbm1hc2tlZCkgfHwgKGZ1bmMtPkdldFR5cGUoKS0+aXNUYXNrKSkg ewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBOVUxMOwotKyAgICAgICAgZnVsbE1hc2tQ b2ludGVyID0gTlVMTDsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVl ID0gTExWTU1hc2tBbGxPbjsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3Qo TExWTVR5cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLSsgICAgICAgIFN0b3Jl SW5zdChMTFZNTWFza0FsbE9uLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gCi0gICAgIGJs b2NrRW50cnlNYXNrID0gTlVMTDsKLSAgICAgYnJlYWtMYW5lc1B0ciA9IGNvbnRpbnVlTGFuZXNQ dHIgPSBOVUxMOwotQEAgLTM4OSwyMCArMzk3LDI2IEBAIGxsdm06OkJhc2ljQmxvY2sgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdldEN1cnJlbnRCYXNpY0Jsb2NrKCkgeyByZXR1cm4gYmJsb2NrOyB9 Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRDdXJyZW50QmFzaWNCbG9jayhsbHZt OjpCYXNpY0Jsb2NrICpiYikgeyBiYmxvY2sgPSBiYjsgfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlvbk1hc2soKSB7IHJldHVybiBmdW5jdGlvbk1hc2tW YWx1ZTsgfQotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlvbk1h c2soKSB7IHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdW5jdGlvbk1hc2tWYWx1ZSA6IExMVk1N YXNrQWxsT247IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0SW50 ZXJuYWxNYXNrKCkgeyByZXR1cm4gTG9hZEluc3QoaW50ZXJuYWxNYXNrUG9pbnRlciwgTlVMTCwg ImxvYWRfbWFzayIpOyB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okdl dEZ1bGxNYXNrKCkgewotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rp b246OkFuZCwgR2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVlLCAiaW50ZXJuYWxf bWFzayZmdW5jdGlvbl9tYXNrIik7Ci0rICAgIHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBCaW5h cnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVu Y3Rpb25NYXNrVmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiaW50ZXJuYWxfbWFzayZmdW5jdGlvbl9tYXNrIikKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IEdldEludGVybmFsTWFzaygpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2ludGVyKCkgeyByZXR1cm4gZnVsbE1hc2tQb2lu dGVyOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bGxNYXNrUG9p bnRlcigpIHsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bGxNYXNrUG9pbnRlciA6 IGludGVybmFsTWFza1BvaW50ZXI7Ci0rfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 U2V0RnVuY3Rpb25NYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotLSAgICBmdW5jdGlvbk1hc2tW YWx1ZSA9IHZhbHVlOwotLSAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0tICAgICAgICBTdG9yZUlu c3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9p bnRlciAhPSBOVUxMKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IHZhbHVlOwotKyAg ICAgICAgaWYgKGJibG9jayAhPSBOVUxMKQotKyAgICAgICAgICAgIFN0b3JlSW5zdChHZXRGdWxs TWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25F bWl0Q29udGV4dDo6U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7IGJsb2Nr RW50cnlNYXNrID0gdmFsdWU7IH0KLUBAIC00MTAsNyArNDI0LDggQEAgdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tF bnRyeU1hc2sKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVybmFsTWFzayhsbHZt OjpWYWx1ZSAqdmFsdWUpIHsKLSAgICAgU3RvcmVJbnN0KHZhbHVlLCBpbnRlcm5hbE1hc2tQb2lu dGVyKTsKLSAgICAgLy8ga2x1ZGdlIHNvIHRoYXQgX19tYXNrIHJldHVybnMgdGhlIHJpZ2h0IHZh bHVlIGluIGlzcGMgY29kZS4KLS0gICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNr UG9pbnRlcik7Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIpCi0rICAgICAgICBTdG9yZUluc3Qo R2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjpTZXRJbnRlcm5hbE1hc2tBbmQobGx2bTo6VmFsdWUgKm9sZE1hc2ssIGxsdm06 OlZhbHVlICp0ZXN0KSB7Ci1AQCAtMTI2NSw3ICsxMjgwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRD b250ZXh0OjpDdXJyZW50TGFuZXNSZXR1cm5lZChFeHByICpleHByLCBib29sIGRvQ29oZXJlbmNl Q2hlY2sKLSAgICAgICAgIC8vIGxhbmVzIGhhdmUgcmV0dXJuZWQKLSAgICAgICAgIGlmIChkb0Nv aGVyZW5jZUNoZWNrKSB7Ci0gICAgICAgICAgICAgLy8gaWYgbmV3UmV0dXJuZWRMYW5lcyA9PSBm dW5jdGlvbk1hc2tWYWx1ZSwgZ2V0IG91dCBvZiBoZXJlIQotLSAgICAgICAgICAgIGxsdm06OlZh bHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKGZ1bmN0aW9uTWFza1ZhbHVlLCBuZXdSZXR1cm5lZExh bmVzKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NBbGxFcXVhbChHZXRG dW5jdGlvbk1hc2soKSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0gICAgICAgICAgICAgbGx2bTo6QmFz aWNCbG9jayAqYkRvUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygiZG9fcmV0dXJuIik7Ci0gICAg ICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYk5vUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygi bm9fcmV0dXJuIik7Ci0gICAgICAgICAgICAgQnJhbmNoSW5zdChiRG9SZXR1cm4sIGJOb1JldHVy biwgY21wKTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgYi90 ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwMDAuLmFjMGIwYmNhMwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGVzdHMvbGl0LXRl c3RzL2Z1bGxfbWFzay5pc3BjCi1AQCAtMCwwICsxLDYzIEBACi0rLy8gUlVOOiAle2lzcGN9ICVz IC1ESVNQQ19FWFBPUlQgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsv LyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19J U1BDX0VYUE9SVCAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfVU5NQVNLRUQgLS1l bWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVjayAt LWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX1VOTUFTS0VEICVzCi0r Ci0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19OT1FVQUxJRiAtLWVtaXQtbGx2bS10ZXh0IC1P MCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5s bCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfTk9RVUFMSUYgJXMKLSsKLSsvLyBSVU46ICV7aXNw Y30gJXMgLURJU1BDX1RBU0sgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwK LSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVD S19JU1BDX1RBU0sgJXMKLSsKLStzdHJ1Y3QgUGFyYW1ldGVycyB7Ci0rICAgIGZsb2F0ICp2b3V0 OwotKyAgICBpbnQgcGFyYW07Ci0rfTsKLSsKLSsjaWZkZWYgSVNQQ19FWFBPUlQKLSsvLyBDSEVD S19JU1BDX0VYUE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnRfX18KLSsvLyBDSEVDS19J U1BDX0VYUE9SVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBDSEVDS19JU1BDX0VY UE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnQoCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQt Tk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK2V4cG9ydCB2b2lkIHNpbXBsZV9leHBv cnQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFy YW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0p Ci0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFt SW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1VOTUFTS0VECi0rLy8gQ0hFQ0tfSVNQ Q19VTk1BU0tFRDogZGVmaW5lIHZvaWQgQHNpbXBsZV91bm1hc2tlZAotKy8vIENIRUNLX0lTUENf VU5NQVNLRUQtTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3VubWFza2VkIHZvaWQg c2ltcGxlX3VubWFza2VkKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5p Zm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRl eCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNv dW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19OT1FVQUxJRgot Ky8vIENIRUNLX0lTUENfTk9RVUFMSUY6IGRlZmluZSB2b2lkIEBzaW1wbGUKLSsvLyBDSEVDS19J U1BDX05PUVVBTElGOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3ZvaWQgc2ltcGxlKHZv aWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRl cnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAg ICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4 OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19UQVNLCi0rCi0rLy8gQ0hFQ0tfSVNQQ19UQVNL OiBkZWZpbmUgdm9pZCBAc2ltcGxlX3Rhc2sKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVs bF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQg QHNpbXBsZV9lbnRyeV9wb2ludF9fCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiAlZnVsbF9tYXNrX21l bW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNpbXBsZV9l bnRyeV9wb2ludCgKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9 IGFsbG9jYQotK3Rhc2sgdm9pZCBzaW1wbGVfdGFzayh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAg IFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAg IGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUlu ZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rZXhwb3J0IHZvaWQgc2lt cGxlX2VudHJ5X3BvaW50KHZvaWQgKnVuaWZvcm0gcGFyYW1ldGVycywgdW5pZm9ybSBpbnQgZGlt MCwgdW5pZm9ybSBpbnQgZGltMSwgdW5pZm9ybSBpbnQgZGltMikgewotKyAgICBsYXVuY2hbZGlt MCwgZGltMSwgZGltMl0gc2ltcGxlX3Rhc2socGFyYW1ldGVycyk7Ci0rfQotKyNlbmRpZgotXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA4LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg0MTNkOGI3ODg3Li4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDE0OSArMCwwIEBACi1Gcm9tIGFmYWQxNDIyN2Q5MjA0YTNjOGE2MjZjYTYwOGY1 YjQzYzMyMThmZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlh ZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAyMSAx MTo0Mzo1MiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBJU1BDIGdlbiBidWlsZCBmb3Ig TExWTTEyCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgIDQgKysrKwotIHNyYy9vcHQuY3BwIHwgNDMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hh bmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9z cmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCAwYzcwNTA1OTEuLmY3ZGMwNjkzOSAxMDA2 NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTM3MzgsNyArMzcz OCwxMSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRkFueShs bHZtOjpWYWx1ZSAqdmFsdWUpIHsKLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpk ZWZhdWx0cykgewotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZl Y3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5 bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0rI2Vsc2UK LSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAgICAgaWYgKGRlZmF1bHRzID09IE5V TEwpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAg ZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51 bUVsZW1lbnRzKCksCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5k ZXggY2VhNGFmYTIzLi40ZTMzZDZiMWEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIv c3JjL29wdC5jcHAKLUBAIC0yOTE2LDkgKzI5MTYsMTMgQEAgc3RhdGljIGxsdm06OkZ1bmN0aW9u ICpsR2VuWE1hc2tlZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0LCBib29sIGlzU3Rv cmUKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVl ICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAg IEFzc2VydChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZl Y3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0rICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZSAq dmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsLT5n ZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlw ZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0KLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdmFsVmVjVHlw ZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsj ZW5kaWYKLSAgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsVmVjVHlwZS0+Z2V0TnVt RWxlbWVudHMoKSkpOwotICAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUlu Qml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotIAotQEAgLTI5NDIsOSArMjk0NiwxMyBAQCBzdGF0 aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06 OlZhbHVlICpwdHIsIGxsdm06OgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5Y TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6SW5z dHJ1Y3Rpb24gKmluc3QpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEx XzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUp KTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZWxzZQotICAgICBBc3NlcnQo bGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpKTsKLS0KLSAgICAgbGx2bTo6VmVj dG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJl dFR5cGUpOwotKyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNU eXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmlt aXRpdmVTaXplSW5CaXRzKCkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZl U2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotQEAgLTU0ODUsOCArNTQ5MywxMyBAQCBz dGF0aWMgdm9pZCBsQ3JlYXRlQmxvY2tMRFVzZShsbHZtOjpJbnN0cnVjdGlvbiAqY3Vyckluc3Qs IHN0ZDo6dmVjdG9yPGxsdm06OkV4dAotICAgICAgICAgfSBlbHNlIGlmIChhdXRvIGdhdGhlciA9 IGxHZXRQc2V1ZG9HYXRoZXIobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KHVpLT5n ZXRVc2VyKCkpKSkgewotICAgICAgICAgICAgIC8vIENvbGxlY3QgaWR4cyBmcm9tIGdhdGhlciBh bmQgZml4IHVzZXJzCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnJlcyA9IGxsdm06OlVuZGVm VmFsdWU6OmdldChnYXRoZXItPmdldFR5cGUoKSk7Ci0tICAgICAgICAgICAgZm9yICh1bnNpZ25l ZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmVzLT5nZXRU eXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotLSAgICAgICAgICAgICAgICAgKytp KSB7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAg ICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRW ZWN0b3JUeXBlPihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0r ICAgICAgICAgICAgICAgICArK2kpCi0rI2Vsc2UKLSsgICAgICAgICAgICBmb3IgKHVuc2lnbmVk IGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5 cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7ICsraSkKLSsjZW5kaWYKLSsgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgIC8vIEdldCBlbGVtZW50IHZpYSBJRUkKLSAgICAgICAg ICAgICAgICAgcmVzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZShyZXMsIEVFSXNb cHRyVXNlLmlkeHNbY3Vycl9pZHgrK11dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQzMlR5cGUsIGkpLAotQEAgLTU1MjIsMTAgKzU1MzUsMTEgQEAgc3RhdGljIGJvb2wgbFZl Y3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUgKnB0ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRyVXNl cywgc3RkOjoKLSAKLSAgICAgLy8gQWRqdXN0IHZhbHVlcyBmb3IgdmVjdG9yIGxvYWQKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgaWYgKGF1dG8gdmVjVHkg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUpKSB7Ci0rICAgIGlm IChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih0eXBl KSkKLSAjZWxzZQotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZl Y3RvclR5cGU+KHR5cGUpKSB7Ci0rICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4odHlwZSkpCi0gI2VuZGlmCi0rICAgIHsKLSAgICAgICAgIC8vIEdl dCBzaW5nbGUgZWxlbWVudCBzaXplCi0gICAgICAgICB0X3NpemUgLz0gdmVjVHktPmdldE51bUVs ZW1lbnRzKCk7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQgdHlwZQotQEAgLTY0Nzcs NyArNjQ5MSw3IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhl clNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBPZmZzZXRzLAotICAgICAgICAgbGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihP ZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4o T2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29m ZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSAjZWxzZQotICAgICAgICAgT2Zmc2V0cywgbGx2 bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotQEAgLTY0OTIsNyArNjUwNiw3IEBAIGxsdm06 OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxs dm06OlZhbHVlICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRWYWx1 ZSA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICAg ICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotLSAg ICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAgICAg ICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZl Y3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0gICAg ICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZN VHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsK LSAjZW5kaWYKLUBAIC02NTAxLDE3ICs2NTE1LDE2IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNz U3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxs Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBh ZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAjZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMl8wCi0tICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotKyAg ICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NU eXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlCi0tICAgICAgICBsbHZtOjpF bGVtZW50Q291bnQ6OmdldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUtPmdldE51bUVsZW1l bnRzKCksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChsbHZt OjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxl bWVudHMoKSwgZmFsc2UpLAotICNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50Ojpn ZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENvbnRl eHQoKSkpKTsKLSAKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9Ci0g I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbGx2 bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotLSAgICAgICAg ICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAgICAgICAgICAg IExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5 cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0gICAgICAgICAg ICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6 OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSAjZW5k aWYKLUBAIC02NTQyLDcgKzY1NTUsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1Nw YWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAqTEkpIHsKLSAgICAgICAgIGlz UHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlz MzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0g I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgICAgICByZXRUeXBl ID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAg cmV0VHlwZSA9Ci0rICAgICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFy VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0 TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0b3JU eXBlOjpnZXQoc2NhbGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0g I2VuZGlmCi1AQCAtNjYwNCw3ICs2NjE4LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJl c3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3JlSW5zdCAqU0kpIHsKLSAgICAg aWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAg YXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMy VHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotLSAgICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6 Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUp LT5nZXROdW1FbGVtZW50cygpKTsKLSsgICAgICAgIHZhbFR5cGUgPQotKyAgICAgICAgICAgIGxs dm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06 OkZpeGVkVmVjdG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotICNlbHNlCi0g ICAgICAgICB2YWxUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZhbFR5 cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZWE2NzgyODU4 Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTA5ICswLDAgQEAKLUZyb20gOTdiMTNjMzIxMzJlMjcw NGE1ZTNlN2IyZWFlNDlkODU0ZDA4N2UzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVl LCA0IE1heSAyMDIxIDExOjMxOjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZWQgYnVp bHRpbnMtY20qIGZvciBzd2l0Y2ggdG8gTExWTTEyCi0KLS0tLQotIGJ1aWx0aW5zL2J1aWx0aW5z LWNtLTMyLmxsIHwgMjM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KLSBi dWlsdGlucy9idWlsdGlucy1jbS02NC5sbCB8IDIzMiArKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzMyBpbnNlcnRpb25zKCspLCAyMzMgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9idWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCBiL2J1 aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi1pbmRleCAzMmRlYmYzMmUuLjQ4MWJiZGM0OCAxMDA2 NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi0rKysgYi9idWlsdGlucy9idWls dGlucy1jbS0zMi5sbAotQEAgLTU1Nyw3ICs1NTcsNyBAQCAkX1pOMTNWYXJ5aW5nV3JpdGVyMTJX cml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29tZGF0IGFueQotIEAuc3RyLjEwID0gcHJpdmF0ZSB1bm5h bWVkX2FkZHIgY29uc3RhbnQgWzUgeCBpOF0gYyIlMDhYXDAwIiwgYWxpZ24gMQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0 IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4 dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEg eCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2NTMV9TMV91 MkNNdgotIGRlY2xhcmUgPDEgeCBpOD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpOC52MWk4Lmkx Nig8MSB4IGk4PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtNjgwLDcgKzY4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pO N2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHgg aTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewot ICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTgxOCw3ICs4 MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2Rp dnJlbUlMaTE2RUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAj MTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFs bG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtODY0LDcgKzg2NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMzJFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmlu ZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTgg c2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg ICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24g MQotQEAgLTg5MCw3ICs4OTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4Piwg PDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUz ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC05MDQsNyArOTA0LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZp bmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIy X2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2Eg PDIgeCBpOD4sIGFsaWduIDIKLUBAIC05MTgsNyArOTE4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+ LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBA IC05MzIsNyArOTMyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBp OD4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLSAgICUzID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC05NDYsNyArOTQ2LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjhfY1NfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0rZGVmaW5l IGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2 X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+ LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBh bGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTk2MCw3ICs5NjAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NT Xyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVy bmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8 MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxp Z24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC05NzQsNyArOTc0LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMy IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZz cyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4 dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNp Z25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg aTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDU4 LDcgKzEwNTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMTY+ IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTE2LnYxaTE2LmkxNig8MSB4IGkxNj4sIGkzMiwgaTMy LCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8 MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNzQsNyArMTA3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4s IDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotQEAgLTExNDMsNyArMTE0Myw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8 NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAot QEAgLTEzNTAsNyArMTM1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFs bG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxp Z24gNjQKLUBAIC0xNDE5LDcgKzE0MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4 dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsK LSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAy Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1LDcgKzE0NDUsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDU5LDcgKzE0NTksNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFf c1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18o PDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xNDczLDcgKzE0NzMsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHgg aTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+ LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAg JTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4s IGFsaWduIDgKLUBAIC0xNDg3LDcgKzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18o PDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkx Nj4pICM5IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxs b2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24g MTYKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYg eCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4 IGkxNj4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQg PSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4s IGFsaWduIDMyCi1AQCAtMTUxNSw3ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9z U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+ LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQK LSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIg eCBpMTY+LCBhbGlnbiA2NAotQEAgLTE1MjksNyArMTUyOSw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIg eCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkz MikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMTczMCw3ICsxNzMwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2Rl dGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSBkZWNsYXJl IDwxIHggaTMyPiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkzMi52MWkzMi5pMTYoPDEgeCBpMzI+ LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3NDYsNyArMTc0Niw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9p U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxv Y2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAgZGVmaW5lIGludGVy bmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9f aVMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2lT MV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwz MiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBh bGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBh bGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2LDcgQEAgZGVmaW5l IGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1 MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bWlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLUBAIC0yNzAyLDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+ LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQg ewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3 MTYsNyArMjcxNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHgg aTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAl MyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMjczMCw3ICsy NzMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAj MTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNzQ0LDcgKzI3NDQs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7 Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2Eg PDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgot ICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTI3NTgsNyArMjc1OCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9pU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxs b2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGln biA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC0yNzcyLDcgKzI3 NzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+ KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAl MyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAt Mjc4Niw3ICsyNzg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQg aTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0 KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDEgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19oUzFf UzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwx IHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0g YWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24g MQotQEAgLTI4NjAsNyArMjg2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4s IDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAg ICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4Piwg YWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0yOTA2LDcgKzI5 MDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTJFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMwNDQsNyArMzA0NCw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJD TXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGlu dGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hT Xyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4Piwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012 YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6 ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMTYs NyArMzExNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9lCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4Pikg IzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICszMTMwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGlu dGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18o PDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4 IGk4PiwgYWxpZ24gMgotQEAgLTMxNDQsNyArMzE0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4Piwg PDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9o U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4 PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBA IC0zMTU4LDcgKzMxNTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4 IGk4PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0gICAlMyA9 IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWdu IDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3Miw3ICszMTcyLDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewot K2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8 MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0g ICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3ICszMTg2LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIxNl9oU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIg eCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzIwMCw3ICszMjAwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIzMl9oU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHpl cm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0g ICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotQEAgLTMyNzgsNyArMzI3OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9a TjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4 IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4p ICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1A QCAtMzI5NCw3ICszMjk0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBp MTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zMzYw LDcgKzMzNjAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMg PSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM1NTgsNyArMzU1 OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkxNkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4p ICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUz ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+ LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNjI0 LDcgKzM2MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxNF9f aW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQp ICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxv Y2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxs b2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NTAsNyArMzY1MCw3IEBAIGRlZmluZSBkc29f bG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVy b2V4dCwgaTE2IHplCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJu YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEg eCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY2NCw3ICszNjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4s IDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4s IGFsaWduIDQKLUBAIC0zNjc4LDcgKzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18o PDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBp MTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24g OAotQEAgLTM2OTIsNyArMzY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkx Nj4sIDw4IHggaTE2PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMx NiB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8 OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1A QCAtMzcwNiw3ICszNzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2 PiwgPDE2IHggaTE2PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+ KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxs b2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGln biAzMgotQEAgLTM3MjAsNyArMzcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwz MiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMy IHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAl NCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2 PiwgYWxpZ24gNjQKLUBAIC0zNzM0LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2 PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMx NCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpq KGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAg LTM4OTIsNyArMzg5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwx IHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzkwOCw3 ICszOTA4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+ KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00MDU0LDcgKzQwNTQs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkyRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot ICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIsNyArNDQ5Miw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkxNkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NjM4LDcg KzQ2MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1w bF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMg PSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2NCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIp ICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+ LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci1AQCAtNDY3OCw3ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNf KDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHgg aTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWdu IDgKLUBAIC00NjkyLDcgKzQ2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBp MzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAj MTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot QEAgLTQ3MDYsNyArNDcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4s IDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7 Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4 IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAt NDcyMCw3ICs0NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwg PDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAj MTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2Nh IDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2 NAotQEAgLTQ3MzQsNyArNDczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4 IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHgg aTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLUBAIC00NzQ4LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMy PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkz MiwgaTMyKSAjMjMgIWRiZyAhMTUgewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50 X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0g ICAlOCA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICU5ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAot ICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTQ5ODgsNyArNDk4OCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB2b2lkIEBfWk43ZGV0YWlsczE2X2NtX3ByaW50X2Zvcm1hdElMaTEyOEVFRXYx NWNtX3N1cmZhY2VpbmRleGp1Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBp MzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLStkZWZp bmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMios IGkzMiwgaTMyLCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0gICAlMTAgPSBhbGxvY2EgaTMy LCBhbGlnbiA0Ci0gICAlMTEgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAlMTIgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci1AQCAtNTA2OSw3ICs1MDY5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB2b2lk IEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwg aTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAhMTU5LCAhdGJh YSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwgYWxpZ24gMzIs ICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJF UmpSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTMyKiBkZXJlZmVy ZW5jZWFibGUoNCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoNCkgJTE0LCBpMzIgJTY2LCBp NjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUyMyksICFkYmcg ITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46NzA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBAIC01MTg3LDcg KzUxODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1eGlsaWFyeV9z dHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zhcnlp bmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRi ZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xh c3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5n V3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTYsNyArNTE5Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIx M1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4Kiwg IWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEx OTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VU XyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAsIGxhYmVsICUx NiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDQsNyArNTIwNCw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAlY2xhc3MuVmFy eWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIgJTE0LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTE1ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFy eWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwgIWRiZyAhMjAy Ci0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBAIC01Mjc5LDcg KzUyNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJFUmpS UEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfX251bV9jb3Jl cygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVtX2NvcmVzKCkg IzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0gCi1AQCAtODg2 MCw3ICs4ODYwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFpbHMzN19fY21f aW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJlIHZvaWQgQGxs dm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBpMzIsIDwxIHgg aTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIp ICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0gICAl MyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg2OSw3ICs4ODY5LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlm b3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTQgdG8gaTgq LCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0rICAlOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTgg c2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlNSks ICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBAIC04ODc3LDcg Kzg4NzcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dp dGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4LmkzMihpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgqIG5vY2FwdHVy ZSByZWFkb25seSwgaTMyLCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5s aW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewot ICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5n V3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4ODYsMTIgKzg4ODYsMTIgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJ MTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTQg dG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0rICAl OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9U MF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0gICAlNCA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFs aWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iLCBhbGlnbiAxCi1AQCAtODkxNCw3ICs4OTE0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4KiwgIWRi ZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcg ITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIx LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0r ICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAs IGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkyMiw3ICs4OTIyLDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVt Y3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMy IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU3 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAhMTY2MgotICAg YnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAotIDsgPGxhYmVs PjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQot QEAgLTg5MzAsNyArODkzMCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzIgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2NjUKLSAgICUz MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2NQot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzIs IGk4KiBhbGlnbiAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUzNCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lq MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5p Zm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWdu IDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwg IWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5MzgsNyArODkzOCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTEg dG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4LmkzMihpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpMzIgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEyKSwg IWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotICAgYnIgaTEg JTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxhYmVsPjo0MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTg5 NDYsNyArODk0Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0gICAlNDMgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzMKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBpOCog YWxpZ24gMzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRiYWEuc3RydWN0 ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEg JTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRi ZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NTQsNyArODk1NCw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTUgdG8g aTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRi ZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAgYnIgaTEgJTQ5 LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVsPjo1MDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTg5NjIs NyArODk2Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAlNTMgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxp Z24gMzIgJTUzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEuc3RydWN0ICEx OTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE4 KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAh MTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5NzAsNyArODk3MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTkgdG8gaTgq LCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmkz MihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcg ITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBiciBsYWJlbCAl NjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUs ICUzCi1AQCAtODk3OSw3ICs4OTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTAwNSw3ICs5MDA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTAzMSw3ICs5MDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTA1Nyw3ICs5MDU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTA4 Myw3ICs5MDgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEwOSw3 ICs5MTA5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewot ICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEzNSw3ICs5 MTM1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewotICAg JTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBz dG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE2MSw3ICs5MTYx LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05OTg0LDcgKzk5ODQs NyBAQCBkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVfb2Ns SVB2RUVOU18xOFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1NSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1NSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9 IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1A QCAtMTAwMDcsNyArMTAwMDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIyID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJnICEyMDU3Ci0gICAl MjMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNTcK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTIy LCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA1NywgIXRiYWEu c3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSsgICUyNCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0li MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTYpLCAhZGJnICEyMDU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAh ZGJnICEyMDU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTMKLUBAIC0xMDAxNSw3ICsxMDAxNSw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNyB0 byBpOCosICFkYmcgITIwNjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMjA2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICEyMDYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwgIWRi ZyAhMjA2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSAgIGJyIGkxICUyOSwg bGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITIwNjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDAyMyw3 ICsxMDAyMyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNjUKLSAgICUzMyA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2NQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGln biAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY1LCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITIwNjYKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEwKSwg IWRiZyAhMjA2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMjA2 NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICUzMAotQEAgLTEwMDMxLDcgKzEwMDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBpOCos ICFkYmcgITIwNjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMjA2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICEyMDY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICEy MDcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDcwCi0gICBiciBpMSAlMzksIGxh YmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICEyMDcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwMzksNyAr MTAwMzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3MwotICAgJTQzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDczCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWdu IDMyICU0MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzMsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcgITIwNzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNCks ICFkYmcgITIwNzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITIw NzUKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlNDAKLUBAIC0xMDA0Nyw3ICsxMDA0Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8gaTgq LCAhZGJnICEyMDc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITIwNzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmkz MihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMjA3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAh MjA3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA3OAotICAgYnIgaTEgJTQ5LCBs YWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMjA3OQotIAotIDsgPGxhYmVsPjo1MDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDU1LDcg KzEwMDU1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODEKLSAgICU1MyA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGln biAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDgxLCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICEyMDgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTgp LCAhZGJnICEyMDgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEy MDgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTUwCi1AQCAtMTAwNjMsNyArMTAwNjMsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRvIGk4 KiwgIWRiZyAhMjA4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICEyMDg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0LCBpMSBmYWxzZSks ICFkYmcgITIwODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJn ICEyMDg2Ci0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotICAgYnIgbGFiZWwg JTYwLCAhZGJnICEyMDgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1 LCAlMwotQEAgLTEwMDcyLDcgKzEwMDcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITIwODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtMTAwOTgsNyArMTAwOTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjA5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDEyNCw3ICsxMDEyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMTUwLDcgKzEwMTUwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAxNzYsNyArMTAxNzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjEyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDIwMiw3ICsxMDIwMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTMzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMjI4LDcgKzEwMjI4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxNDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAyNTQsNyArMTAyNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot ZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIGIvYnVpbHRpbnMvYnVpbHRp bnMtY20tNjQubGwKLWluZGV4IDM5YTJkZDhiZS4uMzc1ZDAxYmVkIDEwMDY0NAotLS0tIGEvYnVp bHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0Lmxs Ci1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldyaXRlVmVjRWxlbUlQ dkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFtZWRfYWRkciBjb25z dGFudCBbOCB4IGk4XSBjIiUwMTZsbFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0r ZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZj YyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1pO N2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gZGVj bGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2KDwxIHggaTg+ LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZp bmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIx X2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+ LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIy X2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBp OD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBA IC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHgg aTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9IGFs bG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQK LSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgxOCw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZF RUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVm aW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4 IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1 ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcgQEAgZGVmaW5l IGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUy Q012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFs IHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBp OCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtODkw LDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4Pikg IzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9j U18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHgg aTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4Piwg YWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHgg aTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewot ICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTkzMiw3ICs5 MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewot K2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDggeCBp OD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDgg eCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4 IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2 Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYg eCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4 PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMy X2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4Piwg PDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAg JTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+ LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWdu ZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMg ewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgsNyArMTA1OCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4gQGxsdm0uZ2Vu eC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIsIGkzMiwgaTE2 LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2Piwg PDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwy IHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1A QCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFp bHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTM1MCw3 ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHgg aTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewot ICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4 IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAg LTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0 IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2ln bmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMgPSBh bGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBAIGRlZmluZSBk c29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYg c2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8 MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4s IDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8 NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAot QEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4s IDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewot ICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBp MTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTE1 MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwx NiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzEx IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8 MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIK LUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PgotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBp MTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkx Nj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBh bGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFs aWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQgewot K2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIs IGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzMw LDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMzI+ IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4sIGkzMiwgaTMy LCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18o PDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4 IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkz Mj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot ICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBp MzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19pUzFfUzFfdTJD TQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9p U18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQg eCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQg PSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBh bGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+ IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMxX1MxX3UyCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMyPiwg PDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIg eCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2lT MV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBp MzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMy PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcxNiw3ICsyNzE2 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUg ewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3MzAsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVm aW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBp MzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUg PSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9p U18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4s IGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFs bG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lT Xyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2 X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHgg aTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAl NSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3Miw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24g MTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNzg2LDcgKzI3 ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZo aChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4Piwg YWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBA X1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwx IHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMy MSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEg eCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMjg2 MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4p ICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxv Y2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0g ICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkwNiw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVF RXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hT Xyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwx NiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19oUzFf UzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4 PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIg eCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9faFMxX1Mx X3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTgg emVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMy MSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3ICszMTE2LDcg QEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEg eCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4Piwg PDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4 PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewot ICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMxNTgsNyAr MzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUg ewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw4 IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9o U18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hT Xyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4Piwg YWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxs b2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hT Xyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVy bmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8 MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxp Z24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8 MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2 IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxs b2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAt MzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMx NF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEg eCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjk0LDcg KzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAsNyArMzM2MCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAg JTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4LDcgQEAgZGVm aW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2 RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQsNyArMzYyNCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10 dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJv ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYg emUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFf dFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwx IHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot QEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzY5 Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBp MTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLSAgICUz ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2Piwg YWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0zNzA2LDcg KzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBp MTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7Ci0g ICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHgg aTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAt MzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2Piwg PDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAj MTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2Nh IDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2 NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBp MzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLStkZWZp bmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIp ICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwg YWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzg5Miw3ICsz ODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91 ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAj MTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcgKzM5MDgsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0r ZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1 ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1 MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9q U18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAgZGVmaW5lIGlu dGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJD TXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMy X2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyArNDYzOCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwx IHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMy PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+ LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUg ewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQ2 OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHgg aTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAl MyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4s IGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDcwNiw3 ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+ KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0g YWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxp Z24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00NzIwLDcgKzQ3 MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+ KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAl MyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMy PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtNDcz NCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMy IHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkg ewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8 MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEy OAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2 b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMy MyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBp OCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAgICU4ID0gYWxs b2NhIGk4KiwgYWxpZ24gOAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA4Ci0gICAlMTAgPSBh bGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNTA3MCw3ICs1MDcwLDcgQEAgZGVmaW5lIGRzb19sb2Nh bCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIs IGkzMiwgaTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAhMTU5 LCAhdGJhYSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwgYWxp Z24gMzIsICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5nV3Jp dGVyQzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTY0KiBk ZXJlZmVyZW5jZWFibGUoOCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoOCkgJTE0LCBpMzIg JTY2LCBpNjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUyMyks ICFkYmcgITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46NzA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBAIC01 MTg4LDcgKzUxODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1eGls aWFyeV9zdHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIx M1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5 aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21k YXQgIWRiZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFzcy5W YXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTcsNyArNTE5Nyw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIxM1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRv IGk4KiwgIWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGk2NCA2NCwgaTEgZmFsc2UpLCAh ZGJnICExOTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAsIGxh YmVsICUxNiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDUsNyArNTIw NSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIgJTE0 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTE1 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5n STEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwgIWRi ZyAhMjAyCi0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBAIC01 MjgwLDcgKzUyODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVy QzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfX251 bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVtX2Nv cmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0gCi1A QCAtODg3MCw3ICs4ODcwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFpbHMz N19fY21faW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJlIHZv aWQgQGxsdm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBpMzIs IDwxIHggaTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVy RUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7 Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVuaWZv cm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg3OSw3ICs4ODc5LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1J MTNVbmlmb3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTQg dG8gaTgqLCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0rICAl OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9U MF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlNSksICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBAIC04 ODg3LDcgKzg4ODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgqIG5v Y2FwdHVyZSByZWFkb25seSwgaTY0LCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dy aXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2 NTAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5W YXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4OTYsMTIgKzg4OTYsMTIgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZh cnlpbmdJMTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTQgdG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0 ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjUz Ci0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikg YWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0gICAl NCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODkyNCw3ICs4OTI0LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4 KiwgIWRiZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSks ICFkYmcgITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEx NjU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBsYWJl bCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkzMiw3ICs4OTMy LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUy OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl MjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAhMTY2 MgotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAotIDsg PGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICUyNQotQEAgLTg5NDAsNyArODk0MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAl MzIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2NjUK LSAgICUzMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAh MTY2NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAz MiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1LCAh dGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUzNCA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVs ICUzNSwgIWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5NDgsNyArODk0OCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lm MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEg JTEyKSwgIWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTEs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotICAg YnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxhYmVs Pjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQot QEAgLTg5NTYsNyArODk1Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0gICAl NDMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzMK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQy LCBpOCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRiYWEu c3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFs aWduIDEgJTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0 NSwgIWRiZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NjQsNyArODk2NCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MTUgdG8gaTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE2 KSwgIWRiZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAgYnIg aTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVsPjo1 MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAg LTg5NzIsNyArODk3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAlNTMg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBp OCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWdu IDEgJTE4KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwg IWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5ODAsNyArODk4MCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTkg dG8gaTgqLCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMSB0byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUyMCks ICFkYmcgITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBiciBs YWJlbCAlNjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMw LCAlMjUsICUzCi1AQCAtODk4OSw3ICs4OTg5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtOTAxNSw3ICs5MDE1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTA0MSw3ICs5MDQxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTA2Nyw3ICs5MDY3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTA5Myw3ICs5MDkzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3MjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTExOSw3ICs5MTE5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 MzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE0 NSw3ICs5MTQ1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE3MSw3 ICs5MTcxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQ djEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDAxMyw3 ICsxMDAxMyw3IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRf dHlwZV9vY2xJUHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMDYxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDYxIHsKLSAgICU0ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIK LSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFs aWduIDEKLUBAIC0xMDAzNiw3ICsxMDAzNiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0g ICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIw NjMKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMjA2MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDYz LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotKyAgJTI0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSAlNiksICFkYmcgITIwNjQKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJl bCAlMjUsICFkYmcgITIwNjUKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDQ0LDcgKzEwMDQ0LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICU3IHRvIGk4KiwgIWRiZyAhMjA2NwotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTY0IDY0 LCBpMSBmYWxzZSksICFkYmcgITIwNjcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ aTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIg JTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEg JTgpLCAhZGJnICEyMDY4Ci0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2OAotICAgYnIg aTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2OQotIAotIDsgPGxhYmVsPjoz MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAg LTEwMDUyLDcgKzEwMDUyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA3MQotICAgJTMz ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDcxCi0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzMiwg aTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzEsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3MgotKyAgJTM0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlMTApLCAhZGJnICEyMDcyCi0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAh ZGJnICEyMDczCi0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtMTAwNjAsNyArMTAwNjAsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VmFyeWluZ1dyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEx IHRvIGk4KiwgIWRiZyAhMjA3NQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTEgdG8gaTgqLCAhZGJnICEyMDc1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pNjQoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTY0IDY0LCBpMSBm YWxzZSksICFkYmcgITIwNzUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiks ICFkYmcgITIwNzYKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzYKLSAgIGJyIGkx ICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzcKLSAKLSA7IDxsYWJlbD46NDA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0x MDA2OCw3ICsxMDA2OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDc5Ci0gICAlNDMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzkKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQyLCBp OCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3OSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA4MAotKyAgJTQ0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTE0KSwgIWRiZyAhMjA4MAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwg IWRiZyAhMjA4MQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTEwMDc2LDcgKzEwMDc2LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1ZhcnlpbmdXcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx NSB0byBpOCosICFkYmcgITIwODMKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDgzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYp LCAhZGJnICEyMDg0Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDg0Ci0gICBiciBp MSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDg1Ci0gCi0gOyA8bGFiZWw+OjUw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAt MTAwODQsNyArMTAwODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4NwotICAgJTUz ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDg3Ci0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1Miwg aTgqIGFsaWduIDMyICU1MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwODcsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODgKLSsgICU1NCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lk MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxICUxOCksICFkYmcgITIwODgKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUs ICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA5Miw3ICsxMDA5Miw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl MTkgdG8gaTgqLCAhZGJnICEyMDkxCi0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITIwOTEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMjA5MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUy MCksICFkYmcgITIwOTIKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDkyCi0gICBi ciBsYWJlbCAlNjAsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwg JTMwLCAlMjUsICUzCi1AQCAtMTAxMDEsNyArMTAxMDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC0xMDEyNyw3ICsxMDEyNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Zh cnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMTUzLDcgKzEwMTUzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMTIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAxNzksNyArMTAxNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC0xMDIwNSw3ICsxMDIwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Zhcnlp Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4 MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTMwIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTEwMjMxLDcgKzEwMjMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzkgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMzkgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAyNTcsNyArMTAyNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjE0OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDI4Myw3ICsxMDI4Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUgYi9zcmNwa2dzL2lzcGMv dGVtcGxhdGUKaW5kZXggOWMzYWNiNDJhOWNmLi5mNTAyZWFiODdlYTYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvaXNwYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKQEAgLTEsMTAg KzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lzcGMnCiBwa2duYW1lPWlzcGMKLXZlcnNp b249MS4xNS4wCit2ZXJzaW9uPTEuMTcuMAogcmV2aXNpb249MgogYXJjaHM9Ing4Nl82NCoiCiBi dWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19OT19EVU1QUz1PTiAtREFS TV9FTkFCTEVEPU9GRiIKK2NvbmZpZ3VyZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURBUk1f RU5BQkxFRD1PRkYgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UiCiBob3N0bWFrZWRlcGVuZHM9 ImNsYW5nIGNsYW5nLXRvb2xzLWV4dHJhIHB5dGhvbjMgbTQgYmlzb24gZmxleCBsbHZtIgogbWFr ZWRlcGVuZHM9Im5jdXJzZXMtZGV2ZWwgbmN1cnNlcy1saWJ0aW5mby1kZXZlbCB6bGliLWRldmVs Igogc2hvcnRfZGVzYz0iQ29tcGlsZXIgZm9yIGhpZ2gtcGVyZm9ybWFuY2UgU0lNRCBwcm9ncmFt bWluZyBvbiB0aGUgQ1BVIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJBbmRyZWEgQnJh bmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBh Z2U9Imh0dHBzOi8vaXNwYy5naXRodWIuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9pc3BjL2lzcGMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0yNjU4ZmYw MGRjMDQ1YWM5ZmNlZmJmNmJkMjZkZmZhZjcyM2IwNTlhOTQyYTI3ZGY5MWJiYjYxYmM1MDNhMjg1 CitjaGVja3N1bT0zN2ZiMTA1NWQ2YzZiMjMyZTExMmQ4ZDUwMTQ1ZDcyNjgyNGVkNGQ4ZGE5M2E3 Mzk2MzE1ZGNlYmE2Yzc2ZTYyCiBub2Nyb3NzPXllcwogbm9waWU9eWVzCiAKCkZyb20gZWQ2NTVi MjM3MDFlMjVkYmM5YTBlZjdlZjQ2YmYwOWI2NWNiNzgxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAy MUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMjE6NDc6MjQgKzAwMDAKU3ViamVj dDogW1BBVENIIDIwLzIxXSB6aWc6IHVwZGF0ZSB0byAwLjkuMS4KCi0tLQogLi4uLzAwMDEtc3Rk LmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoIHwgNDggLS0tLS0tLS0tLS0tLS0tLS0t LQogc3JjcGtncy96aWcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0t CiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFu ZGxpbmctb2YtRGNwdS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAw MS1zdGQuYnVpbGQtZml4LWhhbmRsaW5nLW9mLURjcHUucGF0Y2ggYi9zcmNwa2dzL3ppZy9wYXRj aGVzLzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA0MTAxZjI0NDU5YmIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL3ppZy9wYXRjaGVzLzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotRnJvbSAxZThjZGFjZTdhZDMyNGE0MjIy OGFlYjVjZDZlYjhkZDE1NDI5NDEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSXNh YWMgRnJldW5kIDxpZnJldW5kQGlmcmV1bmQueHl6PgotRGF0ZTogVHVlLCAyMSBTZXAgMjAyMSAy MTowNjoxMCArMDIwMAotU3ViamVjdDogW1BBVENIXSBzdGQuYnVpbGQ6IGZpeCBoYW5kbGluZyBv ZiAtRGNwdQotCi1DdXJyZW50bHkgLURjcHUgaXMgY29tcGxldGVseSBpZ25vcmVkIGlmIC1EdGFy Z2V0IGlzbid0IHBhc3NlZCBhcyB3ZWxsLgotRnVydGhlciwgLURjcHU9YmFzZWxpbmUgaXMgaWdu b3JlZCBldmVuIGlmIC1EdGFyZ2V0PW5hdGl2ZSBpcyBwYXNzZWQuCi0KLVRoaXMgcGF0Y2ggZml4 ZXMgdGhlc2UgMiBpc3N1ZXMsIGFsd2F5cyByZXNwZWN0aW5nIHRoZSAtRGNwdSBvcHRpb24gaWYK LXByZXNlbnQuCi0tLS0KLSBsaWIvc3RkL2J1aWxkLnppZyB8IDEzICsrKysrKystLS0tLS0KLSAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvbGliL3N0ZC9idWlsZC56aWcgYi9saWIvc3RkL2J1aWxkLnppZwotaW5kZXggOWI3ZWJi MWY0Li5lMzk4NTI5ZjkgMTAwNjQ0Ci0tLS0gYS9saWIvc3RkL2J1aWxkLnppZwotKysrIGIvbGli L3N0ZC9idWlsZC56aWcKLUBAIC02ODUsNyArNjg1LDExIEBAIHB1YiBjb25zdCBCdWlsZGVyID0g c3RydWN0IHsKLSAgICAgICAgICk7Ci0gICAgICAgICBjb25zdCBtY3B1ID0gc2VsZi5vcHRpb24o W11jb25zdCB1OCwgImNwdSIsICJUYXJnZXQgQ1BVIik7Ci0gCi0tICAgICAgICBjb25zdCB0cmlw bGUgPSBtYXliZV90cmlwbGUgb3JlbHNlIHJldHVybiBhcmdzLmRlZmF1bHRfdGFyZ2V0OwotKyAg ICAgICAgaWYgKG1heWJlX3RyaXBsZSA9PSBudWxsIGFuZCBtY3B1ID09IG51bGwpIHsKLSsgICAg ICAgICAgICByZXR1cm4gYXJncy5kZWZhdWx0X3RhcmdldDsKLSsgICAgICAgIH0KLSsKLSsgICAg ICAgIGNvbnN0IHRyaXBsZSA9IG1heWJlX3RyaXBsZSBvcmVsc2UgIm5hdGl2ZSI7Ci0gCi0gICAg ICAgICB2YXIgZGlhZ3M6IENyb3NzVGFyZ2V0LlBhcnNlT3B0aW9ucy5EaWFnbm9zdGljcyA9IC57 fTsKLSAgICAgICAgIGNvbnN0IHNlbGVjdGVkX3RhcmdldCA9IENyb3NzVGFyZ2V0LnBhcnNlKC57 Ci1AQCAtMjQ1MSwxMSArMjQ1NSw4IEBAIHB1YiBjb25zdCBMaWJFeGVPYmpTdGVwID0gc3RydWN0 IHsKLSAKLSAgICAgICAgICAgICBpZiAocG9wdWxhdGVkX2NwdV9mZWF0dXJlcy5lcWwoY3Jvc3Mu Y3B1LmZlYXR1cmVzKSkgewotICAgICAgICAgICAgICAgICAvLyBUaGUgQ1BVIG5hbWUgYWxvbmUg aXMgc3VmZmljaWVudC4KLS0gICAgICAgICAgICAgICAgLy8gSWYgaXQgaXMgdGhlIGJhc2VsaW5l IENQVSwgbm8gY29tbWFuZCBsaW5lIGFyZ3MgYXJlIHJlcXVpcmVkLgotLSAgICAgICAgICAgICAg ICBpZiAoY3Jvc3MuY3B1Lm1vZGVsICE9IHN0ZC5UYXJnZXQuQ3B1LmJhc2VsaW5lKGNyb3NzLmNw dS5hcmNoKS5tb2RlbCkgewotLSAgICAgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVu ZCgiLW1jcHUiKTsKLS0gICAgICAgICAgICAgICAgICAgIHRyeSB6aWdfYXJncy5hcHBlbmQoY3Jv c3MuY3B1Lm1vZGVsLm5hbWUpOwotLSAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAg IHRyeSB6aWdfYXJncy5hcHBlbmQoIi1tY3B1Iik7Ci0rICAgICAgICAgICAgICAgIHRyeSB6aWdf YXJncy5hcHBlbmQoY3Jvc3MuY3B1Lm1vZGVsLm5hbWUpOwotICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgIHZhciBtY3B1X2J1ZmZlciA9IHN0ZC5BcnJheUxpc3QodTgpLmlu aXQoYnVpbGRlci5hbGxvY2F0b3IpOwotIAotLS0gCi0yLjMzLjEKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy96aWcvdGVtcGxhdGUgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQppbmRleCA3MjhjNWE2NGU5 ZGYuLjEyN2JiZTFhY2FkZiAxMDA2NDQKLS0tIGEvc3JjcGtncy96aWcvdGVtcGxhdGUKKysrIGIv c3JjcGtncy96aWcvdGVtcGxhdGUKQEAgLTEsMTcgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3ppZycKIHBrZ25hbWU9emlnCi12ZXJzaW9uPTAuOC4xCit2ZXJzaW9uPTAuOS4xCiByZXZp c2lvbj0yCiBhcmNocz0ieDg2XzY0KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtl X2NtZD1tYWtlCi1tYWtlZGVwZW5kcz0iY2xhbmcgbGx2bTEyIGxsZC1kZXZlbCIKK21ha2VkZXBl bmRzPSJjbGFuZyBsbHZtMTMgbGxkLWRldmVsIgogc2hvcnRfZGVzYz0iUHJvZ3JhbW1pbmcgbGFu Z3VhZ2UgZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MsIG9wdGltYWxpdHksIGFuZCBjbGFyaXR5Igog bWFpbnRhaW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNlbnNl PSJNSVQiCiBob21lcGFnZT0iaHR0cHM6Ly96aWdsYW5nLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6 Ly96aWdsYW5nLm9yZy9kb3dubG9hZC8ke3ZlcnNpb259L3ppZy0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPThjNDI4ZTE0YTBhODljYjdhMTVhNjc2ODQyNGEzNzQ0MjI5Mjg1OGNkYjY5NWUy ZWI1MDNmYTNjN2JmNDdmMWEKK2NoZWNrc3VtPTM4Y2Y0ZTg0NDgxZjVmYWNjNzY2YmE3Mjc4M2U3 NDYyZTA4ZDZkMjlhNWQ0N2UzYjc1YzhlZTMxNDI0ODUyMTAKIG5vcGllPXllcwogbm9jcm9zcz15 ZXMKIAoKRnJvbSBhMDE1ZGY5YjQyYmY3ZjI2YWVjZTczZTRiODhiZjBjNjRkOTBjM2Y2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWly YT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAyMiAyMTo1 MjowNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjFdIGJlaWduZXQ6IHJlbW92ZSBwYWNrYWdl CgotLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2ggICAgICAgICB8ICAy MiAtCiAuLi40MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2ggfCAxMzQg LS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2ggICAgICAgICAgfCAgMzMg LQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoICAgICAgICAgIHwgIDU2IC0t CiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggICAgICAgICAgfCAxMTEgLS0t CiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2ggICAgICAgICAgfCAzNDcgLS0t LS0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoICAgICAgICAgIHwgOTM3 IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNo ICAgICAgICAgIHwgMTE1IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaCAg ICAgICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgICB8ICAyMiAtCiBzcmNwa2dzL2JlaWduZXQvdXBkYXRlICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgLQogc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlICAgICAgICAg ICAgIHwgICAxICsKIDEyIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxNzg5IGRlbGV0 aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3Vp bnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIy NDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv YmVpZ25ldC91cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91 aW50LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZiYTAwZjA0ZTk1Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIyICswLDAgQEAKLS0tLSBhL3NyYy9jbF9hcGlfa2VybmVsLmMJMjAxNy0wOS0yMiAxMDowNToy Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9jbF9hcGlfa2VybmVsLmMJMjAyMC0wMy0yNCAx ODoyNzo0MC4xODY0ODU4ODcgKzAxMDAKLUBAIC0xNTEsNyArMTUxLDcgQEAKLSAgICAgICAgIGZp eGVkX2xvY2FsX3N6WzBdID0gMTY7Ci0gICAgICAgICBmaXhlZF9sb2NhbF9zelsxXSA9IDE7Ci0g ICAgICAgfSBlbHNlIHsKLS0gICAgICAgIHVpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZyb20g NjQ/ICovLCBtYXhHcm91cFNpemUgPSAyNTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkgdG9v IGxhcmdlCi0rICAgICAgICBjbF91aW50IGosIG1heERpbVNpemUgPSA2NCAvKiBmcm9tIDY0PyAq LywgbWF4R3JvdXBTaXplID0gMjU2OyAvL01BWF9XT1JLX0dST1VQX1NJWkUgbWF5IHRvbyBsYXJn ZQotICAgICAgICAgc2l6ZV90IHJlYWxHcm91cFNpemUgPSAxOwotICAgICAgICAgZm9yIChpID0g MDsgaSA8IHdvcmtfZGltOyBpKyspIHsKLSAgICAgICAgICAgZm9yIChqID0gbWF4RGltU2l6ZTsg aiA+IDE7IGotLSkgewotLS0tIGEvc3JjL2NsX2VucXVldWUuYwkyMDE3LTA5LTIyIDEwOjA1OjIy LjAwMDAwMDAwMCArMDIwMAotKysrIGIvc3JjL2NsX2VucXVldWUuYwkyMDIwLTAzLTI0IDE4OjMw OjEyLjAzMTQ3OTgzMyArMDEwMAotQEAgLTQ5NCw3ICs0OTQsNyBAQAotIGNsX2ludCBjbF9lbnF1 ZXVlX3N2bV9mcmVlKGVucXVldWVfZGF0YSAqZGF0YSwgY2xfaW50IHN0YXR1cykgewotICAgaW50 IGk7Ci0gICB2b2lkICoqcG9pbnRlcnMgPSBkYXRhLT5wb2ludGVyczsKLS0gIHVpbnQgbnVtX3N2 bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSsgIGNsX3VpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6 ZTsKLSAgIGNsX2ludCBlcnIgPSBDTF9TVUNDRVNTOwotIAotICAgaWYgKHN0YXR1cyAhPSBDTF9D T01QTEVURSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAw OGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGU5ZTZlMmYwOTMuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0 ZTlmYmEwODRiLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLUZyb20gZTFi MjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206ICJSZWJlY2NhIE4uIFBhbG1lciIgPHJlYmVjY2FfcGFsbWVyQHpvaG8uY29t PgotRGF0ZTogU2F0LCAyMSBKdWwgMjAxOCAyMDowNTo1NCArMDEwMAotU3ViamVjdDogQWRkIHBy ZWxpbWluYXJ5IExMVk0gNyBzdXBwb3J0Ci0KLVRoaXMgaXMgcHJlbGltaW5hcnkgYmVjYXVzZSBM TFZNIDcgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldDoKLWl0IHdhcyB0ZXN0ZWQgd2l0aCB0aGUg c25hcHNob3QgZnJvbSBEZWJpYW4gZXhwZXJpbWVudGFsIChzdm4zMzY4OTQpLgotCi0xLkNoYW5n ZSBsaW5raW5nIG9yZGVyLCBhcyBjbGFuZ0NvZGVHZW4gbm93IGxpbmtzIHRvIGNsYW5nRnJvbnRl bmQKLTIuUGFzcyByZWZlcmVuY2VzIG5vdCBwb2ludGVycyB0byBXcml0ZUJpdGNvZGVUb0ZpbGUg YW5kIENsb25lTW9kdWxlCi0zLkFkZCB0aGUgaGVhZGVycyB0aGF0IExvb3BTaW1wbGlmeUlELCBM Q1NTQUlEIGFuZAotc29tZSBjcmVhdGUqUGFzcyBoYXZlIG1vdmVkIHRvCi00LkRlZmluZSBvdXIg REVCVUcgd2hldGhlciBvciBub3Qgd2UganVzdCB1bmRlZmluZWQgTExWTSdzCi0odGhlaXJzIGlz IG5vdyBMTFZNX0RFQlVHLCBidXQgd2UgbmV2ZXIgYWN0dWFsbHkgdXNlIGl0KQotCi1TaWduZWQt b2ZmLWJ5OiBSZWJlY2NhIE4uIFBhbG1lciA8cmViZWNjYV9wYWxtZXJAem9oby5jb20+Ci1SZXZp ZXdlZC1ieTogWWFuZyBSb25nIDxyb25nLnIueWFuZ0BpbnRlbC5jb20+Ci0tLS0KLSBDTWFrZS9G aW5kTExWTS5jbWFrZSAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGJhY2tlbmQvc3JjL2Jh Y2tlbmQvZ2VuX3Byb2dyYW0uY3BwICAgICAgfCA4ICsrKysrKysrCi0gYmFja2VuZC9zcmMvYmFj a2VuZC9wcm9ncmFtLmNwcCAgICAgICAgICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vRXhw YW5kTGFyZ2VJbnRlZ2Vycy5jcHAgfCAyICstCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAgICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5o cHAgICAgICAgfCA0ICsrKysKLSA2IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DTWFrZS9GaW5kTExWTS5jbWFrZSBiL0NNYWtl L0ZpbmRMTFZNLmNtYWtlCi1pbmRleCA1NDU3ZjI0Li5mODgyNTg5IDEwMDY0NAotLS0tIGEvQ01h a2UvRmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTEzLDEw ICsxMTMsMTAgQEAgbWFjcm8oYWRkX29uZV9saWIgbmFtZSkKLSBlbmRtYWNybygpCi0gCi0gI0Fz c3VtZSBjbGFuZyBsaWIgcGF0aCBzYW1lIGFzIGxsdm0gbGliIHBhdGgKLSthZGRfb25lX2xpYigi Y2xhbmdDb2RlR2VuIikKLSBhZGRfb25lX2xpYigiY2xhbmdGcm9udGVuZCIpCi0gYWRkX29uZV9s aWIoImNsYW5nU2VyaWFsaXphdGlvbiIpCi0gYWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1h ZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLSBh ZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckZyb250ZW5kIikKLSBhZGRfb25lX2xpYigi Y2xhbmdTdGF0aWNBbmFseXplckNoZWNrZXJzIikKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9i YWNrZW5kL2dlbl9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0u Y3BwCi1pbmRleCAyNzRjOTljLi40MTU5MjM0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFj a2VuZC9nZW5fcHJvZ3JhbS5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dy YW0uY3BwCi1AQCAtNDU0LDcgKzQ1NCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWZkZWYgR0JF X0NPTVBJTEVSX0FWQUlMQUJMRQotICAgICAgIHN0ZDo6c3RyaW5nIHN0cjsKLSAgICAgICBsbHZt OjpyYXdfc3RyaW5nX29zdHJlYW0gT1Moc3RyKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49 IDcKLSsgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKigobGx2bTo6TW9kdWxlKilwcm9n LT5tb2R1bGUpLCBPUyk7Ci0rI2Vsc2UKLSAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUo KGxsdm06Ok1vZHVsZSopcHJvZy0+bW9kdWxlLCBPUyk7Ci0rI2VuZGlmCi0gICAgICAgc3RkOjpz dHJpbmcmIGJpbl9zdHIgPSBPUy5zdHIoKTsKLSAgICAgICBpbnQgbGxzeiA9IGJpbl9zdHIuc2l6 ZSgpOwotICAgICAgICpiaW5hcnkgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAobGxz eisxKSApOwotQEAgLTU0NSw3ICs1NDksMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZFJlZik7Ci0gICAgICAgICBzcmMgPSBsbHZt Ojp1bndyYXAobW9kUmVmKTsKLSAgICAgICB9Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3 Ci0rICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9IGxsdm06OkNsb25lTW9kdWxlKCpzcmMpLnJl bGVhc2UoKTsKLSsjZWxzZQotICAgICAgIGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9u ZU1vZHVsZShzcmMpLnJlbGVhc2UoKTsKLSsjZW5kaWYKLSAgICAgICBpZiAoTExWTUxpbmtNb2R1 bGVzMih3cmFwKGRzdCksIHdyYXAoY2xvbmUpKSkgewotICNlbGlmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgICAgaWYgKExMVk1MaW5rTW9k dWxlcyh3cmFwKGRzdCksIHdyYXAoc3JjKSwgTExWTUxpbmtlclByZXNlcnZlU291cmNlX1JlbW92 ZWQsICZlcnJNc2cpKSB7Ci1kaWZmIC0tZ2l0IGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFt LmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLWluZGV4IGMzN2M1OTUuLmIz NmY3YjQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysg Yi9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1AQCAtNzk0LDcgKzc5NCwxMSBAQCBu YW1lc3BhY2UgZ2JlIHsKLSAgICAgICBsbHZtOjpyYXdfZmRfb3N0cmVhbSBvc3RyZWFtIChkdW1w U1BJUkJpbmFyeU5hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnIsIGxsdm06OnN5czo6ZnM6OkZfTm9uZSk7Ci0gICAgICAgaWYgKCFlcnIpCi0rI2lm IExMVk1fVkVSU0lPTl9NQUpPUjw3Ci0gICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUo Km91dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbHNlCi0rICAgICAgICBsbHZtOjpXcml0ZUJpdGNv ZGVUb0ZpbGUoKipvdXRfbW9kdWxlLCBvc3RyZWFtKTsKLSsjZW5kaWYKLSAgICAgfQotICNlbmRp ZgotICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFu ZExhcmdlSW50ZWdlcnMuY3BwIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJz LmNwcAotaW5kZXggODUxNWRjMS4uNGFlYzQ0ZSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xs dm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5k TGFyZ2VJbnRlZ2Vycy5jcHAKLUBAIC05OSw4ICs5OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBsbHZt OwotIAotICNpZmRlZiBERUJVRwotICAgI3VuZGVmIERFQlVHCi0tICAjZGVmaW5lIERFQlVHKC4u LikKLSAjZW5kaWYKLSsjZGVmaW5lIERFQlVHKC4uLikKLSAvLyBCcmVhayBpbnN0cnVjdGlvbnMg dXAgaW50byBubyBsYXJnZXIgdGhhbiA2NC1iaXQgY2h1bmtzLgotIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBrQ2h1bmtCaXRzID0gNjQ7Ci0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIGtDaHVua0J5dGVz ID0ga0NodW5rQml0cyAvIENIQVJfQklUOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9iaXRjb2RlX2xpbmsuY3BwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGlu ay5jcHAKLWluZGV4IGVmNTZlNGMuLjRjM2UyMGUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2Jp dGNvZGVfbGluay5jcHAKLUBAIC0zNDAsNyArMzQwLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAg LyogV2UgdXNlIGJlaWduZXQncyBiaXRjb2RlIGFzIGRzdCBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBh IGxvdCBvZgotICAgICAgICBsYXp5IGZ1bmN0aW9ucyB3aGljaCB3aWxsIG5vdCBiZSBsb2FkZWQu ICovCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDM5Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgIGxsdm06Ok1vZHVsZSAqIGxp bmtlZF9tb2R1bGUgPSBsbHZtOjpDbG9uZU1vZHVsZSgqKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxl YXNlKCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6TW9kdWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06 OkNsb25lTW9kdWxlKChsbHZtOjpNb2R1bGUqKW1vZCkucmVsZWFzZSgpOwotKyNlbmRpZgotICAg ICBpZihMTFZNTGlua01vZHVsZXMyKHdyYXAoY2xvbmVkTGliKSwgd3JhcChsaW5rZWRfbW9kdWxl KSkpIHsKLSAjZWxzZQotICAgICBjaGFyKiBlcnJvck1zZzsKLWRpZmYgLS1naXQgYS9iYWNrZW5k L3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1 ZGVzLmhwcAotaW5kZXggMTg0NTUzYS4uZmZjY2YwMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNs dWRlcy5ocHAKLUBAIC04OSw2ICs4OSwxMCBAQAotICNpbmNsdWRlICJsbHZtL0NvZGVHZW4vSW50 cmluc2ljTG93ZXJpbmcuaCIKLSAKLSAjaW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL1NjYWxhci5o IgotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9y bXMvVXRpbHMuaCIKLSsjaW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL0luc3RDb21iaW5lL0luc3RD b21iaW5lLmgiCi0rI2VuZGlmCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNBc21JbmZvLmgiCi0gI2lu Y2x1ZGUgImxsdm0vTUMvTUNDb250ZXh0LmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNJbnN0cklu Zm8uaCIKLS0tIAotY2dpdCB2MS4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0wNi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4OWU2NmM4MmRmLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzMgKzAsMCBAQAotU291cmNlOiBBcmNoIExpbnV4Ci1VcHN0cmVhbTogdW5rbm93bgot UmVhc29uOiBmaXhlcyBsbHZtNiBjb21waWxhdGlvbgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fdG9fZ2VuLmNwcAkyMDE3LTEwLTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAJMjAxOC0wMy0xNiAxNjowODo1NC42 Njk5NjM4MjQgKzAyMDAKLUBAIC0zMjIsNyArMzIyLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAg RGF0YUxheW91dCBETCgmbW9kKTsKLSAgICAgCi0gICAgIGdiZURpYWdub3N0aWNDb250ZXh0IGRj OwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAgICBtb2QuZ2V0Q29udGV4dCgpLnNl dERpYWdub3N0aWNIYW5kbGVyQ2FsbEJhY2soJmdiZURpYWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0r I2Vsc2UKLSAgICAgbW9kLmdldENvbnRleHQoKS5zZXREaWFnbm9zdGljSGFuZGxlcigmZ2JlRGlh Z25vc3RpY0hhbmRsZXIsJmRjKTsKLSsjZW5kaWYKLSAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9S ICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgbW9kLnNldERhdGFMYXlvdXQo REwpOwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Vucm9sbC5jcHAJMjAxNy0xMC0yNCAw OTowNDo0OC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJv bGwuY3BwCTIwMTgtMDMtMTYgMTY6MDk6NDcuNzM2NDAzNTU3ICswMjAwCi1AQCAtMjA1LDcgKzIw NSw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICBpZiAocGFyZW50VHJpcENvdW50ICE9 IDAgJiYgY3VyclRyaXBDb3VudCAqIHBhcmVudFRyaXBDb3VudCA+IDMyKSB7Ci0gICAgICAgICAg ICAgLy9Eb24ndCBjaGFuZ2UgdGhlIHVucm9sbElEIGlmIGRvZXNuJ3QgZm9yY2UgdW5yb2xsLgot ICAgICAgICAgICAgIC8vc2V0VW5yb2xsSUQocGFyZW50TCwgZmFsc2UpOwotLSNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzOAotKyNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgPj0gNgotKyAgICAgICAgICAgIGxvb3BJbmZvLmVyYXNlKHBhcmVudEwpOwot KyNlbGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4 Ci0gICAgICAgICAgICAgbG9vcEluZm8ubWFya0FzUmVtb3ZlZChwYXJlbnRMKTsKLSAjZWxzZQot ICAgICAgICAgICAgIExQTS5kZWxldGVMb29wRnJvbVF1ZXVlKHBhcmVudEwpOwotT25seSBpbiBC ZWlnbmV0LTEuMy4yLVNvdXJjZTogYnVpbGQKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0 L3BhdGNoZXMvbGx2bTA4LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMGM1ZTdhN2M0ZjcuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDc1YzE1MjU5OWE3YzE3MzllNmRhZGNkYjliMzc3 YWNmN2U0NGQ5Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gQmVpY2ggPGpi ZWljaEBGcmVlQlNELm9yZz4KLURhdGU6IFdlZCwgMzAgSmFuIDIwMTkgMTI6NDI6MzQgKzAwMDAK LVN1YmplY3Q6IFtQQVRDSF0gbGFuZy9iZWlnbmV0OiB1bmJyZWFrIHdpdGggbGx2bTgwCi0KLVJl Z3Jlc3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0Lzcy MWQ5NTcxM2E5ZQotCi11bmFibGUgdG8gbG9hZCAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJn YmVpbnRlcnAuc28gd2hpY2ggaXMgcGFydCBvZiB0aGUgZHJpdmVyLCBwbGVhc2UgY2hlY2shCi1s ZC1lbGYuc28uMTogL3Vzci9sb2NhbC9saWIvYmVpZ25ldC8vbGliZ2JlaW50ZXJwLnNvOiBVbmRl ZmluZWQgc3ltYm9sICJfWk40bGx2bTI0RGlzYWJsZUFCSUJyZWFraW5nQ2hlY2tzRSIKLQotUmVn cmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvNGEy ZDU4ZTE2YWNjCi0KLWJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA3Njo1 OiBlcnJvcjoKLSAgICAgIHVua25vd24gdHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBU ZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcDozMDgzOjU6IGVycm9yOgotICAgICAgdW5r bm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJbnN0JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJt ID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSAgICBeCi0KLS0tLSBhL2JhY2tlbmQvc3JjL0NNYWtl TGlzdHMudHh0CTIwMTctMDktMjIgMDg6MDU6MjIgVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9DTWFr ZUxpc3RzLnR4dAotQEAgLTE2OCw2ICsxNjgsNyBAQCBhZGRfZGVwZW5kZW5jaWVzKGdiZSBiZWln bmV0X2JpdGNvZGUpCi0gZW5kaWYgKE5PVCAoVVNFX1NUQU5EQUxPTkVfR0JFX0NPTVBJTEVSIFNU UkVRVUFMICJ0cnVlIikpCi0gCi0gYWRkX2xpYnJhcnkoZ2JlaW50ZXJwIFNIQVJFRCBnYmVfYmlu X2ludGVycHJldGVyLmNwcCkKLSt0YXJnZXRfbGlua19saWJyYXJpZXMoZ2JlaW50ZXJwICR7TExW TV9NT0RVTEVfTElCU30pCi0gCi0gaWYgKExMVk1fVkVSU0lPTl9OT0RPVCBWRVJTSU9OX0VRVUFM IDM0KQotICAgZmluZF9saWJyYXJ5KFRFUk1JTkZPIE5BTUVTIHRpbmZvIG5jdXJzZXMpCi0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMTctMTAtMjQgMDY6MDQ6 NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAt MzA3MywxNCArMzA3MywyMiBAQCBuYW1lc3BhY2UgZ2JlCi0gCi0gCi0gICBzdGF0aWMgdW5zaWdu ZWQgZ2V0Q2hpbGRObyhCYXNpY0Jsb2NrICpiYikgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1Ig PCA4Ci0gICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsj ZWxzZQotKyAgICBJbnN0cnVjdGlvbiAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2Vu ZGlmCi0gICAgIHJldHVybiB0ZXJtLT5nZXROdW1TdWNjZXNzb3JzKCk7Ci0gICB9Ci0gCi0gICAv LyByZXR1cm4gTlVMTCBpZiBpbmRleCBvdXQtcmFuZ2Ugb2YgY2hpbGRyZW4gbnVtYmVyCi0gICBz dGF0aWMgQmFzaWNCbG9jayAqZ2V0Q2hpbGRQb3NzaWJsZShCYXNpY0Jsb2NrICpiYiwgdW5zaWdu ZWQgaW5kZXgpIHsKLSAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgOAotICAgICBUZXJtaW5h dG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1 Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNlbmRpZgotICAgICB1bnNpZ25l ZCBjaGlsZE5vID0gdGVybS0+Z2V0TnVtU3VjY2Vzc29ycygpOwotICAgICBCYXNpY0Jsb2NrICpj aGlsZCA9IE5VTEw7Ci0gICAgIGlmKGluZGV4IDwgY2hpbGRObykgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNo ZXMvbGx2bTA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2FlY2VhYmI2 ZGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotU291cmNlOiBGcmVlQlNEICsgcTY2 Ci0KLU1vc3RseSBGcmVlQlNEIG90aGVyIHRoYW4gRmluZExMVk0uY21ha2UgY2hhbmdlcy4KLUxp bmtpbmcgYWdhaW5zdCBjbGFuZy1jcHAgZG9lcyBub3Qgd29yayBmb3IgdXMuCi0KLS0tLSBhL0NN YWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTE0MCw2 ICsxNDAsNyBAQCBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNvcmUiKQotIGFkZF9v bmVfbGliKCJjbGFuZ0FuYWx5c2lzIikKLSBhZGRfb25lX2xpYigiY2xhbmdFZGl0IikKLSBhZGRf b25lX2xpYigiY2xhbmdBU1QiKQotK2FkZF9vbmVfbGliKCJjbGFuZ0FTVE1hdGNoZXJzIikKLSBh ZGRfb25lX2xpYigiY2xhbmdQYXJzZSIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0gYWRk X29uZV9saWIoImNsYW5nTGV4IikKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5z aWNfbG93ZXJpbmcuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAotQEAgLTc3LDcgKzc3LDExIEBAIG5h bWVzcGFjZSBnYmUgewotICAgICAgICAgc3RkOjp2ZWN0b3I8VHlwZSAqPiBQYXJhbVR5czsKLSAg ICAgICAgIGZvciAoVmFsdWUqKiBJID0gQXJnQmVnaW47IEkgIT0gQXJnRW5kOyArK0kpCi0gICAg ICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjaygoKkkpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgRnVu Y3Rpb25DYWxsZWUgRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbiwKLSsjZWxz ZQotICAgICAgICAgQ29uc3RhbnQqIEZDYWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3 Rm4sCi0rI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1 bmN0aW9uVHlwZTo6Z2V0KFJldFR5LCBQYXJhbVR5cywgZmFsc2UpKTsKLSAKLSAgICAgICAgIElS QnVpbGRlcjw+IEJ1aWxkZXIoQ0ktPmdldFBhcmVudCgpLCBCYXNpY0Jsb2NrOjppdGVyYXRvcihD SSkpOwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDE3LTEw LTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4 LmNwcAotQEAgLTgyLDcgKzgyLDExIEBAIG5hbWVzcGFjZSBnYmUgewotICNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgICBNb2R1 bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotICNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAg ICAgICBGdW5jdGlvbkNhbGxlZSBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigi X19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5 cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPcklu c2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3Bl cmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAjZWxzZQotICAgICAgICAgICBWYWx1ZSog c2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3Rv X2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCksIG51bGxwdHIpOwotICNl bmRpZgotQEAgLTEyNCw3ICsxMjgsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExMVk1fVkVS U0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICAgIE1v ZHVsZSAqTSA9IEktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAg ICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9u KCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0 VHlwZSgpKTsKLSsjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9y SW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRP cGVyYW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICNlbHNlCi0gICAgICAgICAgIFZhbHVl KiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJf dG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0cik7Ci0g I2VuZGlmCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDE3LTEw LTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5j cHAKLUBAIC0xNjMsMTAgKzE2MywxOCBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgLy8gX19nZW5f b2NsX3N0b3JlX3RpbWVzdGFtcChpbnQgbnRoLCBpbnQgdHlwZSk7Ci0gICAgICAgVmFsdWUgKkFy Z3NbMl0gPSB7Q29uc3RhbnRJbnQ6OmdldChpbnRUeSwgcG9pbnROdW0rKyksIENvbnN0YW50SW50 OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICBidWlsZGVyLT5DcmVhdGVDYWxs KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZWxzZQotICAgICAgIGJ1aWxkZXItPkNy ZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9u KAotKyNlbmRpZgotICAgICAgICAgICAgICAgIl9fZ2VuX29jbF9jYWxjX3RpbWVzdGFtcCIsIFR5 cGU6OmdldFZvaWRUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0gICAgICAgICAgICAgICBJbnRl Z2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0rI2lmIExMVk1fVkVS U0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAg ICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNl Ci0gICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRl eHQoKSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgIEFycmF5UmVmPFZhbHVlKj4oQXJncykp OwotICNlbHNlCi0gICAgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9u Pihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi1AQCAtMTg1LDEwICsxOTMsMTggQEAgbmFt ZXNwYWNlIGdiZQotICAgICBWYWx1ZSAqQXJnczJbMl0gPSB7cHJvZmlsaW5nQnVmLCBDb25zdGFu dEludDo6Z2V0KGludFR5LCBwcm9maWxpbmdUeXBlKX07Ci0gCi0gI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgIGJ1aWxkZXItPkNyZWF0 ZUNhbGwobW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgIGJ1aWxkZXIt PkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0 aW9uKAotKyNlbmRpZgotICAgICAgICAgICAgICJfX2dlbl9vY2xfc3RvcmVfcHJvZmlsaW5nIiwg VHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAgICBwdHJU eSwKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g OTAKLSsgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRl eHQoKSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9k dWxlLT5nZXRDb250ZXh0KCkpKSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgQXJyYXlSZWY8VmFs dWUqPihBcmdzMikpOwotICNlbHNlCi0gICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZt OjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwot KysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAotQEAgLTM5OCw4 ICszOTgsMTMgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxU eXBlICo+IFBhcmFtVHlzOwotICAgICAgICAgICAgICAgZm9yIChWYWx1ZSoqIGl0ZXIgPSBhcmdz LmJlZ2luKCk7IGl0ZXIgIT0gYXJncy5lbmQoKTsgKytpdGVyKQotICAgICAgICAgICAgICAgICBQ YXJhbVR5cy5wdXNoX2JhY2soKCppdGVyKS0+Z2V0VHlwZSgpKTsKLSsjaWYgTExWTV9WRVJTSU9O X01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICAgIENh bGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbChtb2QtPmdldE9ySW5zZXJ0RnVuY3Rp b24oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVs X3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSwgYXJncyk7 Ci0rI2Vsc2UKLSAgICAgICAgICAgICAgIENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRl Q2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1 bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSksIGFyZ3MpOwotKyNlbmRp ZgotICAgICAgICAgICAgICAgQ0ktPnJlcGxhY2VBbGxVc2VzV2l0aChuZXdDSSk7Ci0gICAgICAg ICAgICAgICBkZWFkSW5zblNldC5pbnNlcnQoQ0kpOwotICAgICAgICAgICAgIH0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25l dC9wYXRjaGVzL2xsdm0xMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFh ZmU0OGEyNDBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTEwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQ3ICswLDAgQEAKLWRpZmYgLS1naXQgQ01h a2UvRmluZExMVk0uY21ha2UgQ01ha2UvRmluZExMVk0uY21ha2UKLWluZGV4IDBhNTllNDcuLjZl OTA5MjMgMTAwNjQ0Ci0tLS0gYS9DTWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmlu ZExMVk0uY21ha2UKLUBAIC0xMDQsMjggKzEwNCwxNiBAQCBzdHJpbmcoUkVHRVggUkVQTEFDRSAi ICpcbiIgIiIgTExWTV9TWVNURU1fTElCUyAke0xMVk1fU1lTVEVNX0xJQlNfT1JJR30pCi0gZW5k aWYgKExMVk1fU1lTVEVNX0xJQlNfT1JJRykKLSBlbmRpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZF UlNJT05fR1JFQVRFUiAzNCkKLSAKLSsjc29tZXRoaW5nIGhhcm1sZXNzIGJlY2F1c2Ugd2hpdGVz cGFjZSBhdCBzdGFydCBpcyBhbiBlcnJvcgotK3NldChDTEFOR19MSUJSQVJJRVMgIi1sZGwiKQot IG1hY3JvKGFkZF9vbmVfbGliIG5hbWUpCi0gICBGSU5EX0xJQlJBUlkoQ0xBTkdfTElCCi0gICAg IE5BTUVTICR7bmFtZX0KLSAgICAgUEFUSFMgJHtMTFZNX0xJQlJBUllfRElSfSBOT19ERUZBVUxU X1BBVEgpCi0tICBzZXQoQ0xBTkdfTElCUkFSSUVTICR7Q0xBTkdfTElCUkFSSUVTfSAke0NMQU5H X0xJQn0pCi0rICBzZXQoQ0xBTkdfTElCUkFSSUVTICIke0NMQU5HX0xJQlJBUklFU30gJHtDTEFO R19MSUJ9IikKLSsgIG1lc3NhZ2UoU1RBVFVTICJjbGFuZ2xpYnMgbmFtZSAke25hbWV9IHRoaXMg JHtDTEFOR19MSUJ9IGFsbCAke0NMQU5HX0xJQlJBUklFU30gIikKLSAJdW5zZXQoQ0xBTkdfTElC IENBQ0hFKQotIGVuZG1hY3JvKCkKLSAKLSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMg bGx2bSBsaWIgcGF0aAotLWFkZF9vbmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotLWFkZF9vbmVfbGli KCJjbGFuZ0Zyb250ZW5kIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLS1h ZGRfb25lX2xpYigiY2xhbmdEcml2ZXIiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFk ZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJj bGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tlcnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0Fu YWx5emVyQ29yZSIpCi0tYWRkX29uZV9saWIoImNsYW5nQW5hbHlzaXMiKQotLWFkZF9vbmVfbGli KCJjbGFuZ0VkaXQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0FTVCIpCi0tYWRkX29uZV9saWIoImNs YW5nQVNUTWF0Y2hlcnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1BhcnNlIikKLS1hZGRfb25lX2xp YigiY2xhbmdTZW1hIikKLS1hZGRfb25lX2xpYigiY2xhbmdMZXgiKQotLWFkZF9vbmVfbGliKCJj bGFuZ0Jhc2ljIikKLSthZGRfb25lX2xpYigiY2xhbmctY3BwIikKLWRpZmYgLS1naXQgQ01ha2VM aXN0cy50eHQgQ01ha2VMaXN0cy50eHQKLWluZGV4IGMxMWFjYmIuLjA4ZjQyN2QgMTAwNjQ0Ci0t LS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0cy50eHQKLUBAIC03OSw3ICs3OSw3 IEBAIGVsc2VpZiAoQ09NUElMRVIgU1RSRVFVQUwgIkNMQU5HIikKLSBlbHNlaWYgKENPTVBJTEVS IFNUUkVRVUFMICJJQ0MiKQotICAgc2V0IChDTUFLRV9DX0NYWF9GTEFHUyAiJHtDTUFLRV9DX0NY WF9GTEFHU30gIC13ZDI5MjggLVdhbGwgLWZQSUMgLWZzdHJpY3QtYWxpYXNpbmcgLWZwLW1vZGVs IGZhc3QgLW1zc2U0LjEgLVdsLC1FIikKLSBlbmRpZiAoKQotLXNldCAoQ01BS0VfQ1hYX0ZMQUdT ICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25v LWludmFsaWQtb2Zmc2V0b2YiKQotK3NldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9G TEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZhbGlkLW9mZnNldG9mIikKLSBzZXQg KENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30iKQot IHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9 MSIpCi0gc2V0IChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAtREdCRV9E RUJVRz0xIikKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiYWNr ZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1pbmRleCBiMzZmN2I0Li5lNjY2MDMxIDEwMDY0 NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9z cmMvYmFja2VuZC9wcm9ncmFtLmNwcAotQEAgLTY5NCw5ICs2OTQsOSBAQCBuYW1lc3BhY2UgZ2Jl IHsKLSAjZW5kaWYKLSAgICAgICAgICAgICAgICAgKTsKLSAKLSsgICAgbGx2bTo6Y2w6OlJlc2V0 QWxsT3B0aW9uT2NjdXJyZW5jZXMoKTsKLSAgICAgY2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbjo6 Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmYXJnc1swXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmFyZ3NbMF0gKyBhcmdzLnNpemUoKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihh cmdzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlh Z3MpOwotICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGluc3RhbmNlCi0gICAgIGNsYW5nOjpD b21waWxlckluc3RhbmNlIENsYW5nOwotQEAgLTEyNDIsOCArMTI0Miw3IEBAIEVYVEVORF9RVU9U RToKLSAgICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGludm9jYXRpb24KLSAgICAgICBzdGQ6 OnVuaXF1ZV9wdHI8Y2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbj4gQ0kobmV3IGNsYW5nOjpDb21w aWxlckludm9jYXRpb24pOwotICAgICAgIHJldHVybiBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9u OjpDcmVhdGVGcm9tQXJncygqQ0ksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bGFuZzo6QXJyYXlSZWY8Y29uc3QgY2hhcio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWFncyk7Ci0gICAgIH0KLSAjZW5k aWYKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNr ZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1pbmRleCBjNmZjMzBkLi44MjQ0MWQ4 IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotQEAgLTU3NSwxMCArNTc1 LDEyIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICAgIGhhc19lcnJvcnMoZmFsc2UpLAotICAgICAg ICAgbGVnYWN5TW9kZSh0cnVlKQotICAgICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEw Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3 Ci0gICAgICAgaW5pdGlhbGl6ZUxvb3BJbmZvV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6 OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1Bh c3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgot ICAgICAgIHBhc3MgPSBQQVNTX0VNSVRfUkVHSVNURVJTOwotICAgICB9Ci1kaWZmIC0tZ2l0IGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAgYmFja2VuZC9zcmMvbGx2bS9sbHZt X2dlbl9iYWNrZW5kLmhwcAotaW5kZXggYjQ3MTViMS4uOGU3NGY3YSAxMDA2NDQKLS0tLSBhL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9nZW5fYmFja2VuZC5ocHAKLUBAIC0xMzAsMTAgKzEzMCwxMCBAQCBuYW1lc3BhY2Ug Z2JlCi0gICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUdlblBhc3MoaXI6OlVuaXQgJnVuaXQp OwotIAotICAgLyohIFJlbW92ZSB0aGUgR0VQIGluc3RydWN0aW9ucyAqLwotLSAgbGx2bTo6QmFz aWNCbG9ja1Bhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpOwot KyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0 ICZ1bml0KTsKLSAKLSAgIC8qISBNZXJnZSBsb2FkL3N0b3JlIGlmIHBvc3NpYmxlICovCi0tICBs bHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpOwot KyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCk7 Ci0gCi0gICAvKiEgU2NhbGFyaXplIGFsbCB2ZWN0b3Igb3AgaW5zdHJ1Y3Rpb25zICovCi0gICBs bHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0ZVNjYWxhcml6ZVBhc3MoKTsKLUBAIC0xNDEsNyArMTQx LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgbGx2bTo6TW9kdWxlUGFzcyogY3JlYXRlQmFycmllck5v ZHVwUGFzcyhib29sKTsKLSAKLSAgIC8qISBDb252ZXJ0IHRoZSBJbnRyaW5zaWMgY2FsbCB0byBn ZW4gZnVuY3Rpb24gKi8KLS0gIGxsdm06OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5zaWNM b3dlcmluZ1Bhc3MoKTsKLSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93 ZXJpbmdQYXNzKCk7Ci0gCi0gICAvKiEgUGFzc2VyIHRoZSBwcmludGYgZnVuY3Rpb24gY2FsbC4g Ki8KLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyogY3JlYXRlUHJpbnRmUGFyc2VyUGFzcyhpcjo6VW5p dCAmdW5pdCk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93 ZXJpbmcuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1p bmRleCA5NGYwY2U2Li5iNTUzOWU5IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2ludHJpbnNpY19sb3dlcmluZy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRy aW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAtMjksMTIgKzI5LDEyIEBACi0gdXNpbmcgbmFtZXNwYWNl IGxsdm07Ci0gCi0gbmFtZXNwYWNlIGdiZSB7Ci0tICAgIGNsYXNzIEluc3RyaW5zaWNMb3dlcmlu ZyA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcwotKyAgICBjbGFzcyBJbnN0cmluc2ljTG93ZXJpbmcg OiBwdWJsaWMgRnVuY3Rpb25QYXNzCi0gICAgIHsKLSAgICAgcHVibGljOgotICAgICAgIHN0YXRp YyBjaGFyIElEOwotICAgICAgIEluc3RyaW5zaWNMb3dlcmluZygpIDoKLS0gICAgICAgIEJhc2lj QmxvY2tQYXNzKElEKSB7fQotKyAgICAgICAgRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICAg IHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotIAotQEAg LTkzLDkgKzkzLDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICBDSS0+ZXJhc2VGcm9tUGFy ZW50KCk7Ci0gICAgICAgICByZXR1cm4gTmV3Q0k7Ci0gICAgICAgfQotLSAgICAgIHZpcnR1YWwg Ym9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpCi0rICAgICAgdmlydHVhbCBib29s IHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpCi0gICAgICAgewotLSAgICAgICAgYm9vbCBjaGFu Z2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g ICAgICAgICBNb2R1bGUgKk0gPSBCQi5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gCi0gICAg ICAgICBEYXRhTGF5b3V0IFREKE0pOwotQEAgLTE1OSwxMyArMTU5LDE0IEBAIG5hbWVzcGFjZSBn YmUgewotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAg cmV0dXJuIGNoYW5nZWRCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiB0cnVlOwot ICAgICAgIH0KLSAgICAgfTsKLSAKLSAgICAgY2hhciBJbnN0cmluc2ljTG93ZXJpbmc6OklEID0g MDsKLSAKLS0gICAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygp IHsKLSsgICAgRnVuY3Rpb25QYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKSB7Ci0g ICAgICAgcmV0dXJuIG5ldyBJbnN0cmluc2ljTG93ZXJpbmcoKTsKLSAgICAgfQotIH0gLy8gZW5k IG5hbWVzcGFjZQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29w dGltaXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRp b24uY3BwCi1pbmRleCA1YWEzOGJlLi5lMzE0MzAyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBAIC0yNiwxMyArMjYsMTMgQEAK LSAKLSB1c2luZyBuYW1lc3BhY2UgbGx2bTsKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gIGNsYXNzIEdl bkxvYWRTdG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcyB7Ci0rICBjbGFz cyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24gOiBwdWJsaWMgRnVuY3Rpb25QYXNzIHsKLSAKLSAg IHB1YmxpYzoKLSAgICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAgIFNjYWxhckV2b2x1dGlvbiAqU0U7 Ci0gICAgIGNvbnN0IERhdGFMYXlvdXQgKlREOwotLSAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRp b24oKSA6IEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRp b24oKSA6IEZ1bmN0aW9uUGFzcyhJRCkge30KLSAKLSAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdl KEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci1AQCAtNDUsNyArNDUsOSBAQCBuYW1lc3BhY2Ug Z2JlIHsKLSAgICAgICBBVS5zZXRQcmVzZXJ2ZXNDRkcoKTsKLSAgICAgfQotIAotLSAgICB2aXJ0 dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sgJkJCKSB7Ci0rICAgIHZpcnR1YWwg Ym9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKSB7Ci0rICAgICAgICBib29sIGNoYW5nZWRB bnlCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSAg ICAgICBTRSA9ICZnZXRBbmFseXNpczxTY2FsYXJFdm9sdXRpb25XcmFwcGVyUGFzcz4oKS5nZXRT RSgpOwotICNlbHNlCi1AQCAtNTksNyArNjEsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAj ZWxzZQotICAgICAgICAgVEQgPSBnZXRBbmFseXNpc0lmQXZhaWxhYmxlPERhdGFMYXlvdXQ+KCk7 Ci0gICAgICAgI2VuZGlmCi0tICAgICAgcmV0dXJuIG9wdGltaXplTG9hZFN0b3JlKEJCKTsKLSsg ICAgICAgICAgIGNoYW5nZWRBbnlCbG9jayA9IG9wdGltaXplTG9hZFN0b3JlKEJCKSB8IGNoYW5n ZWRBbnlCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7 Ci0gICAgIH0KLSAgICAgVHlwZSAgICAqZ2V0VmFsdWVUeXBlKFZhbHVlICppbnNuKTsKLSAgICAg VmFsdWUgICAqZ2V0UG9pbnRlck9wZXJhbmQoVmFsdWUgKkkpOwotQEAgLTE0OCw3ICsxNTIsNyBA QCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICB2YWx1ZXMucHVzaF9iYWNrKG1lcmdlZFtpXSk7Ci0g ICAgIH0KLSAgICAgTG9hZEluc3QgKmxkID0gY2FzdDxMb2FkSW5zdD4obWVyZ2VkWzBdKTsKLS0g ICAgdW5zaWduZWQgYWxpZ24gPSBsZC0+Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24g YWxpZ24gPSBsZC0+Z2V0QWxpZ24oKTsKLSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gbGQtPmdl dFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSBmaXJzdCBsb2Fk Ci0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwotQEAgLTIzMSw3ICsyMzUsNyBAQCBu YW1lc3BhY2UgZ2JlIHsKLSAKLSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gc3QtPmdldFBvaW50 ZXJBZGRyZXNzU3BhY2UoKTsKLSAKLS0gICAgdW5zaWduZWQgYWxpZ24gPSBzdC0+Z2V0QWxpZ25t ZW50KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBzdC0+Z2V0QWxpZ24oKTsKLSAgICAgLy8g aW5zZXJ0IGJlZm9yZSB0aGUgbGFzdCBzdG9yZQotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50 KG1lcmdlZFtzaXplLTFdKTsKLSAKLUBAIC0zMjUsNyArMzI5LDcgQEAgbmFtZXNwYWNlIGdiZSB7 Ci0gICAgIHJldHVybiBjaGFuZ2VkOwotICAgfQotIAotLSAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0 ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0rICBGdW5jdGlvblBhc3MgKmNyZWF0ZUxv YWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0gICAgIHJldHVybiBuZXcgR2VuTG9hZFN0b3Jl T3B0aW1pemF0aW9uKCk7Ci0gICB9Ci0gfTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX3Bhc3Nlcy5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLWluZGV4IDEw NzUyYTMuLmI4ZjIyODIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2Vz LmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLUBAIC0zNyw3ICsz Nyw3IEBACi0gI2luY2x1ZGUgInN5cy9tYXAuaHBwIgotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZt OwotLQotK3RlbXBsYXRlIGNsYXNzIGNmZzo6VXBkYXRlPEJhc2ljQmxvY2sgKj47Ci0gbmFtZXNw YWNlIGdiZQotIHsKLSAgIGJvb2wgaXNLZXJuZWxGdW5jdGlvbihjb25zdCBsbHZtOjpGdW5jdGlv biAmRikgewotQEAgLTIxOSwxMyArMjE5LDEzIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJu IG9mZnNldDsKLSAgIH0KLSAKLS0gIGNsYXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGljIEJh c2ljQmxvY2tQYXNzCi0rICBjbGFzcyBHZW5SZW1vdmVHRVBQYXNzcyA6IHB1YmxpYyBGdW5jdGlv blBhc3MKLSAgIHsKLSAKLSAgICBwdWJsaWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBH ZW5SZW1vdmVHRVBQYXNzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkgOgotLSAgICAgIEJhc2ljQmxv Y2tQYXNzKElEKSwKLSsgICAgICBGdW5jdGlvblBhc3MoSUQpLAotICAgICAgIHVuaXQodW5pdCkg e30KLSAgICAgY29uc3QgaXI6OlVuaXQgJnVuaXQ7Ci0gICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2Fn ZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotQEAgLTI0MiwxNiArMjQyLDE4IEBAIG5hbWVz cGFjZSBnYmUKLSAKLSAgICAgYm9vbCBzaW1wbGlmeUdFUEluc3RydWN0aW9ucyhHZXRFbGVtZW50 UHRySW5zdCogR0VQSW5zdCk7Ci0gCi0tICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2so QmFzaWNCbG9jayAmQkIpCi0rICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9u ICZGKQotICAgICB7Ci0tICAgICAgYm9vbCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICBi b29sIGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZC QiA6IEYpIHsKLSAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gQkIuZ2V0 SW5zdExpc3QoKS5iZWdpbigpOwotICAgICAgIGZvciAoYXV0byBuZXh0SSA9IEksIEUgPSAtLUJC LmdldEluc3RMaXN0KCkuZW5kKCk7IEkgIT0gRTsgSSA9IG5leHRJKSB7Ci0gICAgICAgICBpcGxp c3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gbmV4dEkrKzsKLSAgICAgICAgIGlmKEdldEVs ZW1lbnRQdHJJbnN0KiBnZXAgPSBkeW5fY2FzdDxHZXRFbGVtZW50UHRySW5zdD4oJipJKSkKLS0g ICAgICAgICAgY2hhbmdlZEJsb2NrID0gKHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfHwg Y2hhbmdlZEJsb2NrKTsKLSsgICAgICAgICAgY2hhbmdlZEFueUJsb2NrID0gKHNpbXBsaWZ5R0VQ SW5zdHJ1Y3Rpb25zKGdlcCkgfCBjaGFuZ2VkQW55QmxvY2spOwotICAgICAgIH0KLS0gICAgICBy ZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAgICAgIHJldHVybiBjaGFuZ2VkQW55 QmxvY2s7Ci0gICAgIH0KLSAgIH07Ci0gCi1AQCAtMzY3LDcgKzM2OSw3IEBAIG5hbWVzcGFjZSBn YmUKLSAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRl UmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkgewotKyAgRnVuY3Rpb25QYXNzICpj cmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSB7Ci0gICAgIHJldHVybiBu ZXcgR2VuUmVtb3ZlR0VQUGFzc3ModW5pdCk7Ci0gICB9Ci0gfSAvKiBuYW1lc3BhY2UgZ2JlICov Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAgYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotaW5kZXggMmEwOTdjOC4uODYzYmU2ZCAx MDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLUBAIC0zMywxMCArMzMsMTIg QEAgbmFtZXNwYWNlIGdiZSB7Ci0gICBjbGFzcyBTYW1wbGVyRml4IDogcHVibGljIEZ1bmN0aW9u UGFzcyB7Ci0gICBwdWJsaWM6Ci0gICAgIFNhbXBsZXJGaXgoKSA6IEZ1bmN0aW9uUGFzcyhJRCkg ewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1Ig KiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICAgICAgIGluaXRpYWxpemVEb21pbmF0 b3JUcmVlV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsK LSAjZWxzZQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlUGFzcygqUGFzc1JlZ2lzdHJ5 OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2VuZGlmCi0gICAgIH0KLSAKLWRpZmYg LS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAgYmFja2VuZC9zcmMvbGx2 bS9sbHZtX3NjYWxhcml6ZS5jcHAKLWluZGV4IGU5YTJhNjYuLmU5ZDJlZTQgMTAwNjQ0Ci0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLUBAIC05NiwxMCArOTYsMTIgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gCi0gICAgIFNjYWxhcml6ZSgpIDogRnVuY3Rpb25QYXNzKElEKQotICAgICB7Ci0rI2lm IExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsg TExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVX cmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNl Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBh c3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAgICAgfQotIAotZGlmZiAtLWdpdCB1 dGVzdHMvQ01ha2VMaXN0cy50eHQgdXRlc3RzL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAzMDBkODdh Li42NDE3OWM3IDEwMDY0NAotLS0tIGEvdXRlc3RzL0NNYWtlTGlzdHMudHh0Ci0rKysgYi91dGVz dHMvQ01ha2VMaXN0cy50eHQKLUBAIC0yNiw4ICsyNiw4IEBAIGlmIChOT1QgTk9UX0JVSUxEX1NU QU5EX0FMT05FX1VURVNUKQotICAgIyBUaHJlYWRzCi0gICBGaW5kX1BhY2thZ2UoVGhyZWFkcykK LSAKLS0gIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9D X0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotLSAgc2V0IChD TUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IikKLSsg IHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9G TEFHU30gLVduby1pbnZhbGlkLW9mZnNldG9mIC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxp YXNpbmciKQotKyAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0Vf Q19DWFhfRkxBR1N9IC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKSAjY29tcGls ZXJfe2RlZ3JlZXMscmFkaWFucyxmdW5jdGlvbl9hcmd1bWVudDJ9IHVzZSBlcXVhbGl0eSBjb21w YXJpc29uIG9mIGZsb2F0cywgY29tcGlsZXJfbG9uZ19iaXRjYXN0IHVzZXMgYWxpYXNpbmcKLSAg IHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9 MSIpCi0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nIC1ER0JF X0RFQlVHPTEiKQotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfTUlOU0laRVJFTCAgICAgIi1PcyAt RE5ERUJVRyAtREdCRV9ERUJVRz0wIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMS5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMzYTQyNzg5NDNjLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsOTM3ICswLDAgQEAKLVNvdXJjZTogU25la3Ryb24KLQotVGhlcmUgd2VyZSBhIGZldyBj aGFuZ2VzIHJlcXVpcmVkIGZvciBMTFZNIDExOgotKiBsbHZtOjpTdHJpbmdSZWYgcmVxdWlyZXMg LnN0cigpLCBpbXBsaWNpdCBjb252ZXJzaW9uIHdhcyByZW1vdmVkCi0qIGxsdm06OkNhbGxTaXRl IHdhcyByZW1vdmVkLCBidXQgdGhlIHJlcXVpcmVkIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiBs bHZtOjpDYWxsSW5zdAotKiBWZWN0b3JUeUlEIHdhcyBzcGxpdCBpbnRvIEZpeGVkVmVjdG9yVHlJ RCBhbmQgU2NhbGFibGVWZWN0b3JUeUlELCBGaXhlZFZlY3RvclR5SUQgd2FzIHVzZWQKLSogQ2Fs bEluc3Q6OmdldENhbGxlZFZhbHVlKCkgd2FzIHJlbmFtZWQgdG8gQ2FsbEluc3Q6OmdldENhbGxl ZE9wZXJhbmQoKQotKiBJbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gTWF5YmVBbGlnbiB0byBBbGln biB3YXMgcmVtb3ZlZCwgc28gTWF5YmVBbGlnbjo6dmFsdWVPck9uZSB3YXMgdXNlZCBpbnN0ZWFk LgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL1N0cmlwQXR0cmlidXRlcy5jcHAJMjAyMC0xMS0w OSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBB dHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5IDE5OjA0OjE5LjY0MTg5NzE0MSArMDEwMAotQEAgLTEw Nyw5ICsxMDcsOCBAQAotICAgICAgICBCQiAhPSBFOyArK0JCKSB7Ci0gICAgIGZvciAoQmFzaWNC bG9jazo6aXRlcmF0b3IgSW5zdCA9IEJCLT5iZWdpbigpLCBFID0gQkItPmVuZCgpOwotICAgICAg ICAgIEluc3QgIT0gRTsgKytJbnN0KSB7Ci0tICAgICAgQ2FsbFNpdGUgQ2FsbCgmKkluc3QpOwot LSAgICAgIGlmIChDYWxsKQotLSAgICAgICAgQ2FsbC5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29u djo6Qyk7Ci0rICAgICAgaWYgKENhbGxJbnN0KiBjYWxsSW5zdCA9IGR5bl9jYXN0PENhbGxJbnN0 PigmKkluc3QpKQotKyAgICAgICAgY2FsbEluc3QtPnNldENhbGxpbmdDb252KENhbGxpbmdDb252 OjpDKTsKLSAgICAgfQotICAgfQotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29k ZV9saW5rLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNzowNDowOS42 MzM3NTM0MjggKzAxMDAKLUBAIC05OCw3ICs5OCw3IEBACi0gICAgICAgICBpZiAoY2FsbEZ1bmMg JiYgY2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0gMCkKLSAgICAgICAgICAgY29udGludWU7 Ci0KLS0gICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCkt PnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGZu TmFtZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0 TmFtZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAoIU1GUy5pbnNlcnQoZm5OYW1lKS5zZWNvbmQp IHsKLSAgICAgICAgICAgY29udGludWU7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2 aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTk6 MDE6NDkuMjAxOTE1MDA4ICswMTAwCi1AQCAtNDUsNyArNDUsNyBAQAotICAgICAgIHJldHVybiBO VUxMOwotCi0gICAgIC8qIFRoaXMgaXMgYSBmYWtlLCB0byBjaGVjayB0aGUgZnVuY3Rpb24gYml0 Y2FzdCBpcyBmb3IgYmxvY2sgb3Igbm90ICovCi0tICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZu LT5nZXROYW1lKCk7Ci0rICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3Ry KCk7Ci0gICAgIGlmKGZuTmFtZS5maW5kKCJfaW52b2tlIikgPT0gc3RkOjpzdHJpbmc6Om5wb3Mp Ci0gICAgICAgcmV0dXJuIE5VTEw7Ci0KLUBAIC0xMTksMTggKzExOSwxOCBAQAotICAgICAgIFBh cmFtVHlzLnB1c2hfYmFjayh0eSk7Ci0gICAgIH0KLSAgICAgRnVuY3Rpb25UeXBlKiBOZXdGVCA9 IEZ1bmN0aW9uVHlwZTo6Z2V0KEZuLT5nZXRSZXR1cm5UeXBlKCksIFBhcmFtVHlzLCBmYWxzZSk7 Ci0tICAgIEZ1bmN0aW9uKiBOZXdGbiA9IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9u OjpFeHRlcm5hbExpbmthZ2UsIEZuLT5nZXROYW1lKCkpOwotKyAgICBGdW5jdGlvbiogTmV3Rm4g PSBGdW5jdGlvbjo6Q3JlYXRlKE5ld0ZULCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+ Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgU21hbGxWZWN0b3I8UmV0dXJuSW5zdCosIDg+IFJldHVy bnM7Ci0KLSAgICAgRnVuY3Rpb246OmFyZ19pdGVyYXRvciBOZXdGbkFyZ0l0ID0gTmV3Rm4tPmFy Z19iZWdpbigpOwotICAgICBmb3IgKEZ1bmN0aW9uOjphcmdfaXRlcmF0b3IgSSA9IEZuLT5hcmdf YmVnaW4oKSwgRSA9IEZuLT5hcmdfZW5kKCk7IEkgIT0gRTsgKytJKSB7Ci0tICAgICAgc3RkOjpz dHJpbmcgQXJnTmFtZSA9IEktPmdldE5hbWUoKTsKLSsgICAgICBzdGQ6OnN0cmluZyBBcmdOYW1l ID0gSS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgIE5ld0ZuQXJnSXQtPnNldE5hbWUoQXJnTmFt ZSk7Ci0gICAgICAgVk1hcFsmKkldID0gJigqTmV3Rm5BcmdJdCsrKTsKLSAgICAgfQotICAgICBD bG9uZUZ1bmN0aW9uSW50byhOZXdGbiwgRm4sIFZNYXAsIC8qTW9kdWxlTGV2ZWxDaGFuZ2VzPSov dHJ1ZSwgUmV0dXJucyk7Ci0KLS0gICAgRm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgp KTsKLSsgICAgRm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAg bW9kLT5nZXRGdW5jdGlvbkxpc3QoKS5wdXNoX2JhY2soTmV3Rm4pOwotICAgICAvL21vZC0+Z2V0 T3JJbnNlcnRGdW5jdGlvbihOZXdGbi0+Z2V0TmFtZSgpLCBOZXdGbi0+Z2V0RnVuY3Rpb25UeXBl KCksCi0gICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0ZuLT5nZXRBdHRyaWJ1dGVz KCkpOwotQEAgLTE0Nyw3ICsxNDcsNyBAQAotICAgICAgIGFyZ1R5cGVOYW1lcy5wdXNoX2JhY2so bGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnQmFzZVR5 cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7 Ci0gICAgICAgYXJnVHlwZVF1YWxzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRl eHQsICIiKSk7Ci0tICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQo Q29udGV4dCwgSS0+Z2V0TmFtZSgpKSk7Ci0rICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06 Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgpLnN0cigpKSk7Ci0gICAgIH0KLQot ICAgICAvL0lmIHJ1biB0byBoZXJlLCBsbHZtIHZlcnNpb24gYWx3YXlzID4gMy45LCBhZGQgdGhl IHZlcnNpb24gY2hlY2sganVzdCBmb3IgYnVpbGQuCi1AQCAtMTk4LDcgKzE5OCw3IEBACi0gICAg ICAgICAgICAqIGludm9rZSBwb2ludGVyIHRvIHN0b3JlIHRoZSBpbmRleCBpbiB0aGUgdW5pdCdz IGJsb2NrIGZ1bmN0aW9ucyBpbmRleC4qLwotICAgICAgICAgICBGdW5jdGlvbiAqRm4gPSBkeW5f Y2FzdDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwotCi0tICAgICAgICAgIHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgIGludCBpbmRleCA9IC0xOwotICAg ICAgICAgICBmb3Ioc2l6ZV90IGk9MDsgaTx1bml0LmJsb2NrRnVuY3Muc2l6ZSgpOyBpKyspIHsK LSAgICAgICAgICAgICBpZih1bml0LmJsb2NrRnVuY3NbaV0gPT0gZm5OYW1lKSB7Ci1AQCAtMjQx LDcgKzI0MSw3IEBACi0gICAgICAgICAgICAgLy91bm5hbWVkIGNhbGwgZnVuY3Rpb24sIHBhcnNl IHRoZSB1c2UgdG8gZmluZCB0aGUgZGVmaW5lIG9mIGNhbGxlZCBmdW5jdGlvbgotICAgICAgICAg ICAgIFNtYWxsVmVjdG9yPFZhbHVlKiwgMTY+IGFyZ3MoQ0ktPm9wX2JlZ2luKCksIENJLT5vcF9l bmQoKS0xKTsKLQotLSAgICAgICAgICAgIFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZFZhbHVlKCk7 Ci0rICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICAg ICAgICAgIEJpdENhc3RJbnN0KiBidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0Pih2KTsKLSAgICAg ICAgICAgICBpZihidCA9PSBOVUxMKQotICAgICAgICAgICAgICAgY29udGludWU7Ci1AQCAtMzE2 LDcgKzMxNiw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHlu X2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAg ICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0 cnVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1 bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3Zd ID0gZi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5h bWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotCi1AQCAt MzMyLDcgKzMzMiw3IEBACi0gICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy9oYW5k bGUgZW5xdWV1ZV9rZXJuZWwgZnVuY3Rpb24gY2FsbAotICAgICAgICAgICAgIEZ1bmN0aW9uICpm biA9IENJLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFt ZSgpLmZpbmQoImVucXVldWVfa2VybmVsIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rICAgICAg ICAgICAgaWYgKGZuLT5nZXROYW1lKCkuc3RyKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBz dGQ6OnN0cmluZzo6bnBvcykKLSAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAg ICAgLy9ibG9jayBwYXJhbWV0ZXIncyBpbmRleCwgMyBvciA2Ci1AQCAtMzYxLDcgKzM2MSw3IEBA Ci0gICAgICAgICAgICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3Rh bnRFeHByPihjLT5nZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5z dCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsK LSAgICAgICAgICAgICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+ Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFt ZSgpOwotKyAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsK LSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gZWxz ZSBpZihpc2E8QWxsb2NhSW5zdD4oYmxvY2spKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTg6 MzM6NTAuOTE5MTE0MzI3ICswMTAwCi1AQCAtMzc2LDcgKzM3Niw3IEBACi0gICAgICAgICAgIEdC RV9BU1NFUlQoaW5kZXggPT0gMCk7Ci0gICAgICAgICAgIHJldHVybiB0aGlzLT5fbmV3U2NhbGFy KHZhbHVlLCBrZXksIHR5cGUsIGluZGV4LCB1bmlmb3JtKTsKLSAgICAgICAgICAgYnJlYWs7Ci0t ICAgICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgICBjYXNlIFR5cGU6OkZpeGVk VmVjdG9yVHlJRDoKLSAgICAgICAgIHsKLSAgICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2Fz dDxWZWN0b3JUeXBlPih0eXBlKTsKLSAgICAgICAgICAgYXV0byBlbGVtZW50VHlwZSA9IHZlY3Rv clR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci1AQCAtNzQzLDIwICs3NDMsMjAgQEAKLSAjdW5kZWYg REVDTF9WSVNJVF9GTgotCi0gICAgIC8vIEVtaXQgcm91bmRpbmcgaW5zdHJ1Y3Rpb25zIGZyb20g Z2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJ bnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0 Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpOwotICAgICAv LyBFbWl0IHVuYXJ5IGluc3RydWN0aW9ucyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAg dm9pZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bj b2RlIG9wY29kZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9GTE9BVCk7Ci0rICAgIHZvaWQgZW1pdFVu YXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGly OjpUWVBFX0ZMT0FUKTsKLSAgICAgLy8gRW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4g bmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENh bGxTaXRlICZDUywgaXI6OkF0b21pY09wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRBdG9taWNJ bnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgd29y a2dyb3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBl bWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwot ICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRTdWJHcm91 cEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUp OwotKyAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBP cHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1pdCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9p ZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJv b2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwot LSAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNp dGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZ UEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJ LCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMy KTsKLSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJv b2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwot Ci0tICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKTsK LSsgICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKTsKLSAgICAg dWludDhfdCBnZXRJbWFnZUlEKENhbGxJbnN0ICZJKTsKLQotICAgICAvLyBUaGVzZSBpbnN0cnVj dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgYWxsCi1AQCAtMTMyMCwxMyArMTMyMCwxMyBAQAot ICNlbmRpZgotCi0gICAgICAgaWYodHlwZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50 eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkp LT5nZXRTdHJpbmcoKTsKLSsgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmlu Zz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwot ICAgICAgIH0KLSAgICAgICBpZih0eXBlQmFzZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5m by50eXBlQmFzZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVy YW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1l PSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICB9Ci0tICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChj YXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5n KCk7Ci0tICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxO b2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgIGxsdm1JbmZvLnR5 cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSkt PmdldFN0cmluZygpLnN0cigpOwotKyAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURT dHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIo KTsKLSAgICAgICBib29sIGlzSW1hZ2UgPSBsbHZtSW5mby5pc0ltYWdlVHlwZSgpOwotICAgICAg IGJvb2wgaXNQaXBlID0gbGx2bUluZm8uaXNQaXBlVHlwZSgpOwotICAgICAgIGlmIChJLT5nZXRU eXBlKCktPmlzUG9pbnRlclR5KCkgfHwgaXNJbWFnZSB8fCBpc1BpcGUpIHsKLUBAIC0xNTMxLDcg KzE1MzEsNyBAQAotICAgICAgICAgICAgIEVsdFR5ID0gZ2V0RWx0VHlwZShFbHRUeSwgVHlwZUlu ZGV4KTsKLSAgICAgICAgIH0KLQotLSAgICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRD b25zdGFudFNldCgpLmdldENvbnN0YW50KHBvaW50ZXItPmdldE5hbWUoKSk7Ci0rICAgICAgICBp cjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRl ci0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBj Yy5nZXRPZmZzZXQoKTsKLSAgICAgICAgIHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnko b2Zmc2V0LCBkZWZPZmZzZXQgKyBjb25zdGFudE9mZnNldCkpOwotCi1AQCAtMTU0Niw3ICsxNTQ2 LDcgQEAKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAgaWYgKGlzYTxHbG9iYWxWYXJpYWJs ZT4oYykpIHsKLS0gICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCku Z2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgpKTsKLSsgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0 LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAg ICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0ID0gY2MuZ2V0T2Zmc2V0KCk7Ci0KLSAgICAgICByZWxv Y3MucHVzaF9iYWNrKGlyOjpSZWxvY0VudHJ5KG9mZnNldCwgZGVmT2Zmc2V0KSk7Ci1AQCAtMTYw OSw3ICsxNjA5LDcgQEAKLSAgICAgICAgICAgfQotICAgICAgICAgICBicmVhazsKLSAgICAgICAg IH0KLS0gICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5 cGU6OlR5cGVJRDo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgICAgewotICAgICAgICAgICBjb25z dCBDb25zdGFudERhdGFTZXF1ZW50aWFsICpjZHMgPSBkeW5fY2FzdDxDb25zdGFudERhdGFTZXF1 ZW50aWFsPihjKTsKLSAgICAgICAgICAgY29uc3QgVmVjdG9yVHlwZSAqdmVjVHkgPSBjYXN0PFZl Y3RvclR5cGU+KHR5cGUpOwotQEAgLTE5MzYsNyArMTkzNiw3IEBACi0gICAgICAgY2FzZSBUeXBl OjpQb2ludGVyVHlJRDoKLSAgICAgICAgIHJlZ1RyYW5zbGF0b3IubmV3U2NhbGFyKHZhbHVlLCBr ZXksIDAsIHVuaWZvcm0pOwotICAgICAgICAgYnJlYWs7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0 b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAg ICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAg ICBjb25zdCB1aW50MzJfdCBlbGVtTnVtID0gdmVjdG9yVHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsK LUBAIC0yMzk1LDcgKzIzOTUsNyBAQAotICNlbmRpZgotICAgICAgICAgfQotICAgICAgICAgaWYo dHlwZU5hbWVOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURT dHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsg ICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2Rl LT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgICAvL0xM Vk0gMy45IGltYWdlJ3MgdHlwZSBuYW1lIGluY2x1ZGUgYWNjZXNzIHF1YWwsIGRvbid0IG1hdGNo IE9wZW5DTCBzcGVjLCBlcmFzZSB0aGVtLgotICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0 cmluZz4gZmlsdGVycyA9IHsiX19yZWFkX29ubHkgIiwgIl9fd3JpdGVfb25seSAifTsKLSAgICAg ICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyBpKyspIHsKLUBA IC0yNDA2LDE2ICsyNDA2LDE2IEBACi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAg IGlmKHR5cGVCYXNlTmFtZU5vZGUpewotLSAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUg PSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURT dHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCku c3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZihhY2Nlc3NRdWFsTm9kZSkgewotLSAgICAg ICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2Rl LT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5h Y2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9w SUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZVF1 YWxOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+ KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAg ICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRP cGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAg aWYoYXJnTmFtZU5vZGUpewotLSAgICAgICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURT dHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAg ICAgICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5n ZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotCi0gICAg ICAgICAvLyBmdW5jdGlvbiBhcmd1bWVudHMgYXJlIHVuaWZvcm0gdmFsdWVzLgotQEAgLTMwMTAs NyArMzAxMCw3IEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICB0aGlzLT5uZXdSZWdp c3Rlcihjb25zdF9jYXN0PEdsb2JhbFZhcmlhYmxlKj4oJnYpKTsKLSAgICAgICAgICAgaXI6OlJl Z2lzdGVyIHJlZyA9IHJlZ1RyYW5zbGF0b3IuZ2V0U2NhbGFyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFy aWFibGUqPigmdiksIDApOwotLSAgICAgICAgICBpcjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0 Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudCh2LmdldE5hbWUoKSk7Ci0rICAgICAgICAgIGlyOjpD b25zdGFudCAmY29uID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFt ZSgpLnN0cigpKTsKLSAgICAgICAgICAgaWYgKCFsZWdhY3lNb2RlKSB7Ci0gICAgICAgICAgICAg aXI6OlJlZ2lzdGVyIHJlZ2xvYWQgPSBjdHgucmVnKGdldEZhbWlseShnZXRUeXBlKGN0eCwgdi5n ZXRUeXBlKCkpKSk7Ci0gICAgICAgICAgICAgY3R4LkxPQURJKGdldFR5cGUoY3R4LCB2LmdldFR5 cGUoKSksIHJlZ2xvYWQsIGN0eC5uZXdJbnRlZ2VySW1tZWRpYXRlKGNvbi5nZXRPZmZzZXQoKSwg Z2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSkpOwotQEAgLTMyMTIsNyArMzIxMiw3IEBACi0gICAg ICAgICBHQkVfQVNTRVJUTShmYWxzZSwgIlVuc3VwcG9ydGVkIGNhbGxpbmcgY29udmVudGlvbiIp OwotICAgICB9Ci0KLS0gICAgY3R4LnN0YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkpOwotKyAgICBj dHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKS5zdHIoKSk7Ci0KLSAgICAgaXI6OkZ1bmN0aW9u ICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotICAgICB0aGlzLT5yZWdUcmFuc2xhdG9yLmNsZWFy KCk7Ci1AQCAtMzgxMCw5ICszODEwLDkgQEAKLQotICAgdm9pZCBHZW5Xcml0ZXI6OnJlZ0FsbG9j YXRlQ2FsbEluc3QoQ2FsbEluc3QgJkkpIHsKLSAgICAgVmFsdWUgKmRzdCA9ICZJOwotLSAgICBW YWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwotKyAgICBWYWx1ZSAqQ2FsbGVlID0g SS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoY3R4LmdldEZ1bmN0aW9uKCku Z2V0UHJvZmlsZSgpID09IGlyOjpQUk9GSUxFX09DTCk7Ci0tICAgIEdCRV9BU1NFUlQoaXNhPElu bGluZUFzbT4oSS5nZXRDYWxsZWRWYWx1ZSgpKSA9PSBmYWxzZSk7Ci0rICAgIEdCRV9BU1NFUlQo aXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRPcGVyYW5kKCkpID09IGZhbHNlKTsKLSAgICAgaWYo SS5nZXROdW1BcmdPcGVyYW5kcygpKSBHQkVfQVNTRVJUKEkuaGFzU3RydWN0UmV0QXR0cigpID09 IGZhbHNlKTsKLQotICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgYSBzbWFsbCBudW1iZXIgb2YgaW50 cmluc2ljcyByaWdodCBub3cKLUBAIC0zODcwLDcgKzM4NzAsNyBAQAotICAgICAgIH0KLSAgICAg fQotICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxl IGl0Ci0tICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVy Q2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxs ZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgYXV0byBnZW5J bnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0gICAgIHN3aXRjaCAoZ2Vu SW50cmluc2ljSUQpIHsKLSAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0dST1VQX0lEMDoKLUBAIC00 MTY2LDcgKzQxNjYsNyBAQAotICAgICB9OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1p dFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBv cGNvZGUpIHsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5z dCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSAgICAgaWYgKEkuZ2V0VHlwZSgpLT5pc0hhbGZU eSgpKSB7Ci0gICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVy KEkuZ2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyY0Zsb2F0ID0g Y3R4LnJlZyhpcjo6RkFNSUxZX0RXT1JEKTsKLUBAIC00MTc3LDE0ICs0MTc3LDE0IEBACi0gICAg ICAgY3R4LkYzMlRPMTYoaXI6OlRZUEVfVTE2LCBpcjo6VFlQRV9GTE9BVCwgZHN0LCBkc3RGbG9h dCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgR0JFX0FTU0VSVChJLmdldFR5cGUoKS0+aXNGbG9h dFR5KCkpOwotLSAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Msb3Bjb2RlKTsKLSsg ICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLG9wY29kZSk7Ci0gICAgIH0KLSAgIH0KLQot LSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0 ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjpl bWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBl IHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNp ZiBHQkVfREVCVUcKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQo KTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAjZW5kaWYgLyog R0JFX0RFQlVHICovCi0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotICAgICBjb25zdCBpcjo6 UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00MjkzLDkgKzQyOTMs OSBAQAotICAgICB0aGlzLT5lbWl0QXRvbWljSW5zdEhlbHBlcihvcGNvZGUsIHR5cGUsIGRzdCwg bGx2bVB0ciwgcGF5bG9hZFR1cGxlKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRB dG9taWNJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2Rl KSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0g ICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2Vu V3JpdGVyOjplbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUp IHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2Vy OjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFF KTsKLSAgICAgVmFsdWUgKmxsdm1QdHIgPSAqQUk7Ci0gICAgIGlyOjpBZGRyZXNzU3BhY2UgYWRk clNwYWNlID0gYWRkcmVzc1NwYWNlTExWTVRvR2VuKGxsdm1QdHItPmdldFR5cGUoKS0+Z2V0UG9p bnRlckFkZHJlc3NTcGFjZSgpKTsKLUBAIC00MzQ4LDcgKzQzNDgsNyBAQAotICAgICB9Ci0gICB9 Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2Fs bFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6 OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkg ewotICAgICBpcjo6RnVuY3Rpb24gJmYgPSBjdHguZ2V0RnVuY3Rpb24oKTsKLQotICAgICBpZiAo Zi5nZXR3Z0Jyb2FkY2FzdFNMTSgpIDwgMCAmJiBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9C Uk9BRENBU1QpIHsKLUBAIC00Mzc4LDggKzQzNzgsOCBAQAotICAgICAgIEdCRV9BU1NFUlQoZi5n ZXR0aWRNYXBTTE0oKSA+PSAwKTsKLSAgICAgfQotCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigp OwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNT RVJUKEFJICE9IEFFKTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxM IHx8IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQzOTEsMTQgKzQzOTEs MTQgQEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgm c3JjWzBdLCAzKTsKLSAgICAgICBjdHguV09SS0dST1VQKG9wY29kZSwgKHVpbnQzMl90KWYuZ2V0 dGlkTWFwU0xNKCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIDMsIGlyOjpUWVBFX1MzMik7 Ci0gICAgIH0gZWxzZSBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7 Ci0tICAgICAgaW50IGFyZ051bSA9IENTLmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9 IEkuYXJnX3NpemUoKTsKLSAgICAgICBzdGQ6OnZlY3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdO dW0pOwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnTnVtOyBpKyspIHsKLSAgICAgICAg IHNyY1tpXSA9IHRoaXMtPmdldFJlZ2lzdGVyKCooQUkrKykpOwotICAgICAgIH0KLSAgICAgICBj b25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0p OwotICAgICAgIGN0eC5XT1JLR1JPVVAoaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsICh1aW50 MzJfdClmLmdldHdnQnJvYWRjYXN0U0xNKCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFy Z051bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBl KCkpKTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgqSS5hcmdfYmVnaW4oKSktPmdldFR5cGUo KSkpOwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0YW50SW50ICpzaWduID0gZHluX2Nhc3Q8 Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNTRVJUKHNpZ24pOwotQEAgLTQ0MjMsOSAr NDQyMyw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdl bldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6 V29ya0dyb3VwT3BzIG9wY29kZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0g Q1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdf ZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwg aXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJ LmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwot ICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JL R1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQ0 MzUsNyArNDQzNSw3IEBACi0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFy cmF5VHVwbGUoJnNyY1swXSwgMSk7Ci0gICAgICAgY3R4LlNVQkdST1VQKG9wY29kZSwgZ2V0UmVn aXN0ZXIoJkkpLCBzcmNUdXBsZSwgMSwgaXI6OlRZUEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChv cGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVt ID0gQ1MuYXJnX3NpemUoKTsKLSsgICAgICBpbnQgYXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAg ICAgIEdCRV9BU1NFUlQoYXJnTnVtID09IDIpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdp c3Rlcj4gc3JjKGFyZ051bSk7Ci0gICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkr KykgewotQEAgLTQ0NDMsNyArNDQ0Myw3IEBACi0gICAgICAgfQotICAgICAgIGNvbnN0IGlyOjpU dXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0sIGFyZ051bSk7Ci0gICAgICAg Y3R4LlNVQkdST1VQKGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNULCBnZXRSZWdpc3RlcigmSSks IHNyY1R1cGxlLCBhcmdOdW0sCi0tICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdp bigpKS0+Z2V0VHlwZSgpKSk7Ci0rICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2lu KCkpLT5nZXRUeXBlKCkpKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAqc2ln biA9IGR5bl9jYXN0PENvbnN0YW50SW50PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWduKTsK LUBAIC00NDY2LDkgKzQ0NjYsOSBAQAotICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0K LQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3Qg JkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlw ZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4o KTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZv aWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29s IGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6 b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBB RSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBWYWx1 ZSAqbGx2bVB0ciA9ICooQUkrKyk7Ci1AQCAtNDUyMiw5ICs0NTIyLDkgQEAKLSAgICAgR0JFX0FT U0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1 aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRl cmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBB RSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6 OlR5cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7 Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NF UlQoQUkgIT0gQUUpOwotCi0gICAgIGNvbnN0IHVpbnQ4X3QgaW1hZ2VJRCA9IGdldEltYWdlSUQo SSk7Ci1AQCAtNDU1Nyw3ICs0NTU3LDcgQEAKLQotICAgLyogYXBwZW5kIGEgbmV3IHNhbXBsZXIu IHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSByZWZlcmVuY2UgdG8KLSAgICAqIGEgc2FtcGxl cl90IHZhbHVlLiAqLwotLSAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBSSkgewotKyAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBs ZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkpIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAg KyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgQ2FsbEluc3QgKlRDID0gZHluX2Nhc3Q8 Q2FsbEluc3Q+KCpBSSk7Ci0gICAgIENvbnN0YW50ICpDUFYgPSBUQyA/IGR5bl9jYXN0PENvbnN0 YW50PihUQy0+Z2V0T3BlcmFuZCgwKSkgOiBOVUxMOwotQEAgLTQ1OTUsMTAgKzQ1OTUsOSBAQAot ICAgICAgICAgY29uc3QgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0g ICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUg Q1MoJkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdp bigpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNp ZiBHQkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdf ZW5kKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNl bmRpZiAvKiBHQkVfREVCVUcgKi8KLSAgICAgICAgIHN3aXRjaCAoRi0+Z2V0SW50cmluc2ljSUQo KSkgewotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3RhY2tzYXZlOgotQEAgLTQ3NjQsMTcg KzQ3NjMsMTcgQEAKLSAgICAgICAgICAgICBjdHguTUFEKHNyY1R5cGUsIGRzdCwgc3JjMCwgc3Jj MSwgc3JjMik7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgIGNh c2UgSW50cmluc2ljOjpzcXJ0OiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9T UVIpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRS b3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JORFUpOyBicmVhazsKLS0gICAgICAgICAgY2Fz ZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpP UF9STkRaKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpyaW50OiB0aGlzLT5l bWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRFKTsgYnJlYWs7Ci0tICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxp cjo6T1BfUk5ERCk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TSU4pOyBicmVhazsKLS0gICAgICAgICAg Y2FzZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1Bf Q09TKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9MT0cpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJ bnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0VYUCk7 IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5 Q2FsbEluc3QoSSxpcjo6T1BfU1FSKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2lj OjpjZWlsOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRVKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2Fs bEluc3QoSSxpcjo6T1BfUk5EWik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6 cmludDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5ERSk7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJ bnN0KEksaXI6Ok9QX1JOREQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNp bjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU0lOKTsgYnJlYWs7Ci0rICAgICAg ICAgIGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9Q X0NPUyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1p dFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfTE9HKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50 cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9FWFApOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmJzd2FwOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4 LCBJLmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxs SW5zdChJLGlyOjpPUF9CU1dBUCwgZ2V0VW5zaWduZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpwb3c6Ci0gICAgICAgICAgIHsKLSAg ICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjMCA9IHRoaXMtPmdldFJlZ2lzdGVyKCpB SSk7ICsrQUk7Ci1AQCAtNDc5NCwyMSArNDc5MywyMCBAQAotICAgICAgICAgfQotICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBh bmQgaGFuZGxlIGl0Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgp OwotLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50 ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxs ZWRPcGVyYW5kKCk7Ci0rICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUt PnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgIGF1dG8gZ2Vu SW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUpOwotCi0gICAgICAgICAvLyBH ZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAg ICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAg ICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcK LS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAg ICAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVf REVCVUcgKi8KLQotICAgICAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJRCkgewotLSAgICAgICAg ICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9G QkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0 aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJy ZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQ0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxDUyxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5cGUo KSkpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5 Q2FsbEluc3QoSSxpcjo6T1BfRkJILCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAg Y2FzZSBHRU5fT0NMX0ZCTDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJMLCBp cjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgq QUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BQlM6Ci0g ICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+ Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00OTE1LDggKzQ5MTMsOCBAQAotICAgICAgICAgICAgIGN0 eC5SRUdJT04oZHN0LCBzcmMsIHguZ2V0SW50ZWdlclZhbHVlKCkpOwotICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1JTUSk7IGJyZWFrOwotLSAgICAgICAgICBjYXNl IEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SQ1ApOyBi cmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRo aXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1JDUCk7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDg6IGN0eC5zZXRTaW1kV2lkdGgoOCk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDE2OiBjdHguc2V0U2ltZFdpZHRoKDE2KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9MQkFSUklFUjogY3R4LlNZTkMoaXI6OnN5 bmNMb2NhbEJhcnJpZXIpOyBicmVhazsKLUBAIC00OTQ3LDMxICs0OTQ1LDMxIEBACi0gICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19BREQwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9BREQpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNf T1BfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMDoKLS0g ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LENTLGlyOjpBVE9NSUNfT1BfU1VCKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9B VE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1NVQik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDA6Ci0tICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfQU5EMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRP TUlDX09QX0FORCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9BTkQpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9B VE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfT1IpOyBi cmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9t aWNJbnN0KEksaXI6OkFUT01JQ19PUF9PUik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX1hPUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhp cy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6 OkFUT01JQ19PUF9YT1IpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19Y Q0hHMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlD X09QX1hDSEcpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMwOgot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0 KEksQ1MsaXI6OkFUT01JQ19PUF9JTkMpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU5DKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMDoKLS0gICAgICAgICAg Y2FzZSBHRU5fT0NMX0FUT01JQ19ERUMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpB VE9NSUNfT1BfREVDKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVD MTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1Bf VU1JTik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1BWCk7 IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0lNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lN SU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFr OwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWlj SW5zdChJLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0lNQVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0NNUFhDSEcwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWlj SW5zdChJLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfR0VUX0lNQUdFX1dJRFRIOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdF X0hFSUdIVDoKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9JTUFHRV9ERVBUSDoKLUBAIC01 NDI5LDQ4ICs1NDI3LDQ4IEBACi0gICAgICAgICAgICAgY3R4LldBSVQoKTsKLSAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgfQotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9V UF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FM TCk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMt PmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQUxMKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2Ug R0VOX09DTF9XT1JLX0dST1VQX0FOWTogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldP UktHUk9VUF9PUF9BTlkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JP VVBfQlJPQURDQVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVE VUNFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfV09SS19HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3Jr R3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JF RFVDRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVE VUNFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6 OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9P UF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAg ICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3Qo SSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf TUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6 OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9X T1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9P UF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dS T1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNM VVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQlJP QURDQVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpX T1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1 Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dS T1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9SRURVQ0VfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg Q1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JF RFVDRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JP VVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhD TFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1ND QU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01J Tik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVT SVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6 V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5l bWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQ X09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAg ICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xV U0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfTFJQOgotICAgICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lz dGVyIGRzdCAgPSB0aGlzLT5nZXRSZWdpc3RlcigmSSk7Ci1AQCAtNTQ4NCw2OSArNTQ4Miw2OSBA QAotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU0yOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNl LCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBmYWxzZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X0JMT0NLX1JFQURfVUlfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDQpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTTg6Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4 KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VUlfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwg Q1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KEksIHRydWUsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VSV9NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU00OgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRy dWUsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19X UklURV9VSV9NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDEpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lN QUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg Q1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgNCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1B R0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBD UywgZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgZmFsc2UsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdF MjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1Ms IHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFODoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRy dWUsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1JFQURfVVNfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxLCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19SRUFEX1VTX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVt SW5zdChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURf VVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEks IENTLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU04 OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZh bHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU06Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMSwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU0yOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRy dWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4LCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19SRUFEX1VTX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMSwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfUkVBRF9VU19JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyLCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19SRUFEX1VTX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDQsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NL X1JFQURfVVNfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCBDUywgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZ UEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tf V1JJVEVfVVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1h Z2VJbnN0KEksIENTLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVVNfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRF X1VTX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUlu c3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9V U19JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfUElQRToKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX01BS0VfUklEOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1JJRDoKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxNjo0ODoy MC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5o cHAJMjAyMC0xMS0wOSAxOTowMDowOS45NTU5MjY3OTUgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDYg QEAKLQotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSAzNQotICNpbmNsdWRlICJsbHZtL0lSL01hbmdsZXIuaCIKLS0jaW5jbHVkZSAibGx2bS9JUi9D YWxsU2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NGRy5oIgotICNpbmNsdWRlICJsbHZtL0lS L0luc3RWaXNpdG9yLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvSVJQcmludGluZ1Bhc3Nlcy5oIgot LS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIw MjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAJMjAyMC0xMS0wOSAxOToxMDozNy4xNDE4 NTIzMDggKzAxMDAKLUBAIC0xNjAsNyArMTYwLDcgQEAKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1 aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRk clNwYWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2 ZWNQdHIpOwotLSAgICB2ZWNWYWx1ZS0+c2V0QWxpZ25tZW50KGFsaWduKTsKLSsgICAgdmVjVmFs dWUtPnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkpOwotCi0gICAgIGZvciAodW5zaWdu ZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICBWYWx1ZSAqUyA9IEJ1aWxkZXIuQ3Jl YXRlRXh0cmFjdEVsZW1lbnQodmVjVmFsdWUsIEJ1aWxkZXIuZ2V0SW50MzIoaSkpOwotQEAgLTI1 MSw3ICsyNTEsNyBAQAotICAgICAgIHJldHVybjsKLSAgICAgVmFsdWUgKm5ld1B0ciA9IEJ1aWxk ZXIuQ3JlYXRlQml0Q2FzdChzdFBvaW50ZXIsIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJT cGFjZSkpOwotICAgICBTdG9yZUluc3QgKm5ld1NUID0gQnVpbGRlci5DcmVhdGVTdG9yZShwYXJl bnQsIG5ld1B0cik7Ci0tICAgIG5ld1NULT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAgICBuZXdT VC0+c2V0QWxpZ25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7Ci0gICB9Ci0KLSAgIC8vIEZpbmQg dGhlIHNhZmUgaXRlcmF0b3Igd2UgY2FuIHBvaW50IHRvLiBJZiByZW9yZGVyIGhhcHBlbnMsIHdl IG5lZWQgdG8KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cGFzc2VzLmNwcAkyMDIwLTExLTA5IDE4OjQ4OjU1Ljk5NzAwNjgzNyArMDEwMAotQEAgLTk1LDcg Kzk1LDcgQEAKLSAgIHsKLSAgICAgc3dpdGNoIChUeS0+Z2V0VHlwZUlEKCkpIHsKLSAgICAgICBj YXNlIFR5cGU6OlZvaWRUeUlEOiBOT1RfU1VQUE9SVEVEOwotLSAgICAgIGNhc2UgVHlwZTo6VmVj dG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0g ICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwot ICAgICAgICAgdWludDMyX3QgZWxlbU51bSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAg LTEzOCw3ICsxMzgsNyBAQAotICAgICAgIGNhc2UgVHlwZTo6SGFsZlR5SUQ6ICAgIHJldHVybiAx NjsKLSAgICAgICBjYXNlIFR5cGU6OkZsb2F0VHlJRDogICByZXR1cm4gMzI7Ci0gICAgICAgY2Fz ZSBUeXBlOjpEb3VibGVUeUlEOiAgcmV0dXJuIDY0OwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9y VHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAg ICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAg ICAgICAgdWludDMyX3QgbnVtRWxlbSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTE4 NCwxMCArMTg0LDEyIEBACi0gICAgIFR5cGUgKmVsZW1lbnRUeXBlID0gTlVMTDsKLSAgICAgaWYg KFBvaW50ZXJUeXBlKiBwdHJUeXBlID0gZHluX2Nhc3Q8UG9pbnRlclR5cGU+KGVsdFR5KSkKLSAg ICAgICBlbGVtZW50VHlwZSA9IHB0clR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2Ug aWYoU2VxdWVudGlhbFR5cGUgKiBzZXFUeXBlID0gZHluX2Nhc3Q8U2VxdWVudGlhbFR5cGU+KGVs dFR5KSkKLS0gICAgICBlbGVtZW50VHlwZSA9IHNlcVR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0t ICAgIGVsc2UgaWYoQ29tcG9zaXRlVHlwZSAqIGNvbXBUeT0gZHluX2Nhc3Q8Q29tcG9zaXRlVHlw ZT4oZWx0VHkpKQotLSAgICAgIGVsZW1lbnRUeXBlID0gY29tcFR5LT5nZXRUeXBlQXRJbmRleChp bmRleCk7Ci0rICAgIGVsc2UgaWYgKEFycmF5VHlwZSAqIGFyclR5cGUgPSBkeW5fY2FzdDxBcnJh eVR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IGFyclR5cGUtPmdldEVsZW1lbnRU eXBlKCk7Ci0rICAgIGVsc2UgaWYoVmVjdG9yVHlwZSAqIHZlY1R5cGUgPSBkeW5fY2FzdDxWZWN0 b3JUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSB2ZWNUeXBlLT5nZXRFbGVtZW50 VHlwZSgpOwotKyAgICBlbHNlIGlmKFN0cnVjdFR5cGUgKiBzdHJ1Y3RUeXBlID0gZHluX2Nhc3Q8 U3RydWN0VHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gc3RydWN0VHlwZS0+Z2V0 VHlwZUF0SW5kZXgoaW5kZXgpOwotICAgICBHQkVfQVNTRVJUKGVsZW1lbnRUeXBlKTsKLSAgICAg cmV0dXJuIGVsZW1lbnRUeXBlOwotICAgfQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3By aW50Zl9wYXJzZXIuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxODo1 Nzo1Mi42MTg5NDMxMDUgKzAxMDAKLUBAIC0zMjMsOCArMzIzLDcgQEAKLQotICAgYm9vbCBQcmlu dGZQYXJzZXI6OnBhcnNlT25lUHJpbnRmSW5zdHJ1Y3Rpb24oQ2FsbEluc3QgKiBjYWxsKQotICAg ewotLSAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBD SV9GTVQgPSBDUy5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0lfRk1UID0g Y2FsbC0+YXJnX2JlZ2luKCk7Ci0gICAgIGludCBwYXJhbV9udW0gPSAwOwotCi0gICAgIGxsdm06 OkNvbnN0YW50KiBhcmcwID0gZHluX2Nhc3Q8bGx2bTo6Q29uc3RhbnRFeHByPigqQ0lfRk1UKTsK LUBAIC0zNDEsNyArMzQwLDcgQEAKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLQotLSAg ICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgc3RkOjpz dHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgIGlmIChmbXQu c2l6ZSgpID09IDApCi0gICAgICAgcmV0dXJuIGZhbHNlOwotCi1AQCAtNDM3LDggKzQzNiw4IEBA Ci0gICAgICAgICBpZiAoIGNhbGxGdW5jLT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAgICAg ICAgIGNvbnRpbnVlOwotCi0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVk VmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0 TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQo KTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgp LnN0cigpOwotCi0gICAgICAgICBpZiAoZm5OYW1lICE9ICJfX2dlbl9vY2xfcHJpbnRmX3N0dWIi ICYmIGZuTmFtZSAhPSAiX19nZW5fb2NsX3B1dHNfc3R1YiIpCi0gICAgICAgICAgIGNvbnRpbnVl OwotQEAgLTU4Miw3ICs1ODEsNyBAQAotICAgICAgICAgICAgIGlmICghZm10X2FyZyB8fCAhZm10 X2FyZy0+aXNDU3RyaW5nKCkpIHsKLSAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgc2xvdC5zdGF0ZS5zdHIgPSBmbXRfYXJnLT5nZXRBc0NT dHJpbmcoKTsKLSsgICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9IGZtdF9hcmctPmdldEFzQ1N0 cmluZygpLnN0cigpOwotICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICB9Ci0g ICAgICAgICAgIGNhc2UgUFJJTlRGX0NPTlZFUlNJT05fUDogewotQEAgLTU5NSwxMCArNTk0LDEw IEBACi0KLSAgICAgICAgIGJyZWFrOwotCi0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOiB7 Ci0tICAgICAgICBUeXBlKiB2ZWN0X3R5cGUgPSBhcmctPmdldFR5cGUoKTsKLS0gICAgICAgIFR5 cGUqIGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpOwotLSAgICAg ICAgaW50IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCk7Ci0rICAg ICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6IHsKLSsgICAgICAgIFZlY3RvclR5cGUqIHZl Y3RfdHlwZSA9IGR5bl9jYXN0PFZlY3RvclR5cGU+KGFyZy0+Z2V0VHlwZSgpKTsKLSsgICAgICAg IFR5cGUqIGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICAgICAg aW50IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAgICBib29s IHNpZ24gPSBmYWxzZTsKLQotICAgICAgICAgaWYgKHZlY19udW0gIT0gc2xvdC5zdGF0ZS52ZWN0 b3JfbikgewotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0x MS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9wcm9maWxpbmcuY3BwCTIwMjAtMTEtMDkgMTg6NTk6NTAuMTIwOTI5MTUwICswMTAwCi1AQCAt MzUsNyArMzUsNiBAQAotICNpbmNsdWRlICJsbHZtL0lSL0lSQnVpbGRlci5oIgotCi0gI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0tI2luY2x1 ZGUgImxsdm0vSVIvQ2FsbFNpdGUuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAjZWxz ZQotICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvQ2FsbFNpdGUuaCIKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0x MS0wOSAxNzowMTowOS40MDc3NzQ4MzIgKzAxMDAKLUBAIC00NSw4ICs0NSw4IEBACi0gICAgIGJv b2wgdmlzaXRDYWxsSW5zdChDYWxsSW5zdCAqSSkgewotICAgICAgIGlmKCFJKQotICAgICAgICAg cmV0dXJuIGZhbHNlOwotLSAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRWYWx1ZSgp OwotLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwot KyAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgY29u c3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAg Ym9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgVHlwZSAqYm9vbFR5ID0gSW50ZWdlclR5cGU6 OmdldChJLT5nZXRDb250ZXh0KCksIDEpOwotICAgICAgIFR5cGUgKmkzMlR5ID0gSW50ZWdlclR5 cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDMyKTsKLUBAIC01OSw3ICs1OSw3IEBACi0gICAgICAg ICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZN X1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgIENhbGxJbnN0ICppbml0ID0gZHluX2Nhc3Q8 Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+ Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJf aW5pdGlhbGl6ZXIiKSkKLSsgICAgICAgIGlmIChpbml0ICYmIGluaXQtPmdldENhbGxlZE9wZXJh bmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIi KSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3QgQ29uc3RhbnRJbnQgKmNpID0gZHluX2Nh c3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQoMCkpOwotICAgICAgICAgICB1aW50MzJf dCBzYW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgpOwotQEAgLTExMyw3ICsxMTMsNyBAQAot ICAgICAgICAgVmFsdWUgKm5lZWRGaXhWYWw7Ci0gICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBk eW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAm JiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVf c2FtcGxlcl9pbml0aWFsaXplciIpKQotKyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2Fs bGVkT3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0 aWFsaXplciIpKQotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kg PSBkeW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAg IHVpbnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7Ci0tLS0gYS9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjEx MiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0x MS0wOSAxODo1MToxNi44ODg5OTAxMDQgKzAxMDAKLUBAIC0xNzgsNyArMTc4LDcgQEAKLSAgICAg ICBpZighdHlwZSkKLSAgICAgICAgIHJldHVybiB0eXBlOwotICAgICAgIHN3aXRjaCh0eXBlLT5n ZXRUeXBlSUQoKSkgewotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNl IFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICBjYXNlIFR5cGU6OkFycmF5VHlJRDoKLSAg ICAgICAgIHJldHVybiBHZXRCYXNpY1R5cGUodHlwZS0+Z2V0Q29udGFpbmVkVHlwZSgwKSk7Ci0g ICAgICAgZGVmYXVsdDoKLUBAIC0xODgsNyArMTg4LDcgQEAKLSAgICAgfQotCi0gICAgIGludCBH ZXRDb21wb25lbnRDb3VudChjb25zdCBUeXBlKiB0eXBlKSAgewotLSAgICAgIGlmICh0eXBlICYm IHR5cGUtPmdldFR5cGVJRCgpID09IFR5cGU6OlZlY3RvclR5SUQpCi0rICAgICAgaWYgKHR5cGUg JiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6Rml4ZWRWZWN0b3JUeUlEKQotICAgICAgICAg cmV0dXJuIGxsdm06OmR5bl9jYXN0PFZlY3RvclR5cGU+KHR5cGUpLT5nZXROdW1FbGVtZW50cygp OwotICAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybiAxOwotQEAgLTY1MiwxMyArNjUyLDEyIEBA Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUg KkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgYXV0byBn ZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAgICAgIC8v IEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUyhjYWxsKTsK LS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQ0kgPSBDUy5hcmdfYmVnaW4oKSArIDE7 Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBDSSA9IGNhbGwtPmFyZ19iZWdpbigpICsgMTsK LQotICAgICAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJRCkgewotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfTk9UX0ZPVU5EOgotQEAgLTcyOSw3ICs3MjgsNyBAQAotICAgICAgICAgICAgIGV4dHJh Y3RGcm9tVmVjdG9yKGNhbGwpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfUFJJTlRGOgotLSAgICAgICAgICAgIGZvciAoOyBDSSAhPSBDUy5hcmdfZW5kKCk7 ICsrQ0kpCi0rICAgICAgICAgICAgZm9yICg7IENJICE9IGNhbGwtPmFyZ19lbmQoKTsgKytDSSkK LSAgICAgICAgICAgICAgIGlmICgoKkNJKS0+Z2V0VHlwZSgpLT5pc1ZlY3RvclR5KCkpCi0gICAg ICAgICAgICAgICAgICpDSSA9IEluc2VydFRvVmVjdG9yKGNhbGwsICpDSSk7Ci0gICAgICAgICAg ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0 Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDZmOGFiMDA1YzE0OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCww IEBACi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAg YmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMTMu LjI3MDgwMzgwIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVn ZXJzLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAot QEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgVmFsdWUgKmJ1aWxkVmVjdG9yT3JTY2FsYXIoQ29u dmVyc2lvblN0YXRlICZTdGF0ZSwgSVJCdWlsZGVyPD4gJklSQiwgU21hbAotICAgICAvLyBzcGxp dGVkLCB0aGF0J3Mgd2h5IHRoZXNlIHRlbXBvcmFyeSB2YWx1ZXMgc2hvdWxkIGJlIGVyYXNlZC4K LSAgICAgYm9vbCBLZWVwSW5zZXJ0ID0gaXNMZWdhbEJpdFNpemUoRWxlbVR5LT5nZXRQcmltaXRp dmVTaXplSW5CaXRzKCkgKiBFbGVtTm8pOwotICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg RWxlbU5vOyArK2kpIHsKLS0gICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1 ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObykpOwotKyAgICAgIFZhbHVlICp0 bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwg RWxlbU5vLCBmYWxzZSkpOwotICAgICAgIFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KElu dFR5LCBpKTsKLSAgICAgICB2ZWMgPSBJUkIuQ3JlYXRlSW5zZXJ0RWxlbWVudCh0bXAsIEVsZW1l bnRzW2ldLCBpZHgpOwotICAgICAgIGlmICghS2VlcEluc2VydCAmJiAhaXNhPENvbnN0YW50Pih2 ZWMpKSB7Ci1AQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyB2b2lkIHVuaWZ5RWxlbWVudFR5cGUo SVJCdWlsZGVyPD4gJklSQiwgU21hbGxWZWN0b3I8VmFsdWUgKiwgMTY+ICZTcmMsIFNtCi0gICAg ICAgYXNzZXJ0KChTaXplICUgTWluV2lkdGgpID09IDApOwotIAotICAgICAgIGlmIChTaXplID4g TWluV2lkdGgpIHsKLS0gICAgICAgIFZlY3RvclR5cGUgKlZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0 KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCk7Ci0rICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9IFZl Y3RvclR5cGU6OmdldChFbGVtVHksIFNpemUvTWluV2lkdGgsIGZhbHNlKTsKLSAgICAgICAgIFZh bHVlICpDYXN0ZWQgPSBJUkIuQ3JlYXRlQml0Q2FzdChTcmNbaV0sIFZlY1R5KTsKLSAgICAgICAg IGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBTaXplL01pbldpZHRoOyBqKyspCi0gICAgICAgICAg IERzdC5wdXNoX2JhY2soSVJCLkNyZWF0ZUV4dHJhY3RFbGVtZW50KENhc3RlZCwgQ29uc3RhbnRJ bnQ6OmdldChJbnRUeSwgaikpKTsKLUBAIC00NjIsNyArNDYyLDcgQEAgc3RhdGljIHZvaWQgY29u dmVydEluc3RydWN0aW9uKEluc3RydWN0aW9uICpJbnN0LCBDb252ZXJzaW9uU3RhdGUgJlN0YXRl LAotICAgICAgIHVuc2lnbmVkIEVsZW1ObyA9IFVuaWZpZWQuc2l6ZSgpOwotICAgICAgIFR5cGUg KkVsZW1UeSA9IFVuaWZpZWRbMF0tPmdldFR5cGUoKTsKLSAgICAgICBmb3IgKHVuc2lnbmVkIGkg PSAwOyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMg OiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAg ICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6 OmdldChFbGVtVHksIEVsZW1ObywgZmFsc2UpKTsKLSAgICAgICAgIFZhbHVlICppZHggPSBDb25z dGFudEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRF bGVtZW50KHRtcCwgVW5pZmllZFtpXSwgaWR4KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dl bl9iYWNrZW5kLmNwcAotaW5kZXggYzkzZDg5Y2MuLjY0ZDViMGU1IDEwMDY0NAotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotQEAgLTMwNCw3ICszMDQsNyBAQCBuYW1lc3BhY2UgZ2Jl Ci0gICAgICAgVFlQRVNJWkVWRUMobG9uZyw4KQotICAgICAgIFRZUEVTSVpFVkVDKHVuc2lnbmVk IGxvbmcsOCkKLSAgICAgICBlbHNlewotLSAgICAgICAgU3RydWN0VHlwZSAqU3RyVHkgPSBNLT5n ZXRUeXBlQnlOYW1lKCJzdHJ1Y3QuIituYW1lKTsKLSsgICAgICAgIFN0cnVjdFR5cGUgKlN0clR5 ID0gU3RydWN0VHlwZTo6Z2V0VHlwZUJ5TmFtZShNLT5nZXRDb250ZXh0KCksICJzdHJ1Y3QuIitu YW1lKTsKLSAgICAgICAgIGlmKFN0clR5KQotICAgICAgICAgICByZXR1cm4gZ2V0VHlwZUJ5dGVT aXplKHVuaXQsU3RyVHkpOwotICAgICAgIH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fk c3RvcmVfb3B0aW1pemF0aW9uLmNwcAotaW5kZXggNWFhMzhiZWYuLjZiNWMxYmFkIDEwMDY0NAot LS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBA IC0xNTIsNyArMTUyLDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIHVuc2lnbmVkIGFkZHJTcGFj ZSA9IGxkLT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUg Zmlyc3QgbG9hZAotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KGxkKTsKLS0gICAgVmVjdG9y VHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdldFR5cGUoKSwgc2l6ZSk7Ci0rICAg IFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBlKCksIHNpemUs IGZhbHNlKTsKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+ Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0 ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQdHIpOwotQEAgLTIzNiw3ICsyMzYs NyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChtZXJnZWRb c2l6ZS0xXSk7Ci0gCi0gICAgIFR5cGUgKmRhdGFUeSA9IHN0LT5nZXRWYWx1ZU9wZXJhbmQoKS0+ Z2V0VHlwZSgpOwotLSAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRh VHksIHNpemUpOwotKyAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRh VHksIHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKiBwYXJlbnQgPSBVbmRlZlZhbHVlOjpnZXQo dmVjVHkpOwotICAgICBmb3IodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAg ICBwYXJlbnQgPSBCdWlsZGVyLkNyZWF0ZUluc2VydEVsZW1lbnQocGFyZW50LCB2YWx1ZXNbaV0s IENvbnN0YW50SW50OjpnZXQoSW50ZWdlclR5cGU6OmdldChzdC0+Z2V0Q29udGV4dCgpLCAzMiks IGkpKTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3Bw IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAotaW5kZXggNmJiN2M1MmEu LmFmNDU5Y2QyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJz ZXIuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLUBA IC02MzAsNyArNjMwLDcgQEAgZXJyb3I6Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlICE9IGVs dF9kc3RfdHlwZSkgewotICAgICAgICAgICAgICAgVmFsdWUgKklJID0gTlVMTDsKLSAgICAgICAg ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjX251bTsgaSsrKSB7Ci0tICAgICAgICAgICAg ICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6Omdl dChlbHRfZHN0X3R5cGUsIHZlY19udW0pKTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9 IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwg dmVjX251bSwgZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3RhbnRJ bnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsKLSAg ICAgICAgICAgICAgICAgVmFsdWUgKm9yZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVtZW50 KGFyZywgY3YpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3Z0ID0gYnVpbGRlci0+Q3JlYXRl SW50Q2FzdChvcmcsIGVsdF9kc3RfdHlwZSwgc2lnbik7Ci1AQCAtNjU4LDcgKzY1OCw3IEBAIGVy cm9yOgotICAgICAgICAgICAgIGlmIChlbHRfdHlwZS0+Z2V0VHlwZUlEKCkgIT0gVHlwZTo6Rmxv YXRUeUlEKSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkgPSBOVUxMOwotICAgICAgICAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKyspIHsKLS0gICAgICAgICAgICAgICAg VmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5 cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19udW0pKTsKLSsgICAg ICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9y VHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19u dW0sIGZhbHNlKSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdiA9IENvbnN0YW50SW50Ojpn ZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgaSk7Ci0gICAgICAg ICAgICAgICAgIFZhbHVlICpvcmcgPSBidWlsZGVyLT5DcmVhdGVFeHRyYWN0RWxlbWVudChhcmcs IGN2KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUqIGN2dCAgPSBidWlsZGVyLT5DcmVhdGVGUENh c3Qob3JnLCBUeXBlOjpnZXRGbG9hdFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSk7Ci1kaWZmIC0t Z2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2 bV90b19nZW4uY3BwCi1pbmRleCA3ZjdkZWZmZS4uOWU4Y2NjNjcgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3RvX2dlbi5jcHAKLUBAIC0zNTgsNyArMzU4LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNz ZXMuYWRkKGNyZWF0ZVNjYWxhclJlcGxBZ2dyZWdhdGVzUGFzcyg2NCwgdHJ1ZSwgLTEsIC0xLCA2 NCkpOwotICNlbmRpZgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlv blBhc3MoKSk7Ci0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3Mo KSk7Ci0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsK LSAgICAgcGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MoKSk7Ci0g ICAgIGlmKG9wdExldmVsID4gMCkKLSAgICAgICBwYXNzZXMuYWRkKGNyZWF0ZUdWTlBhc3MoKSk7 ICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgcmVkdW5kYW5jaWVzCi1AQCAtMzY3LDExICszNjcs MTEgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhcml6ZVBhc3Mo KSk7ICAgICAgICAgICAgIC8vIEV4cGFuZCBhbGwgdmVjdG9yIG9wcwotICAgICBwYXNzZXMuYWRk KGNyZWF0ZUV4cGFuZExhcmdlSW50ZWdlcnNQYXNzKCkpOyAgIC8vIGxlZ2FsaXplIGxhcmdlIGlu dGVnZXIgb3BlcmF0aW9uCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlSW5zdHJ1Y3Rpb25Db21iaW5p bmdQYXNzKCkpOyAgLy8gbGVnYWxpemUgd2lsbCBnZW5lcmF0ZSBzb21lIHNpbGx5IGluc3RydWN0 aW9ucwotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAg IC8vIHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSsgICAgLy9w YXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0 ZSBjb25zdGFudCBhZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSAgICAgcGFzc2VzLmFkZChjcmVh dGVFeHBhbmRDb25zdGFudEV4cHJQYXNzKCkpOyAgICAvLyBjb25zdGFudCBwcm9wIG1heSBnZW5l cmF0ZSBDb25zdGFudEV4cHIKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlSW50ZWdlcnNQ YXNzKCkpOyAgICAgICAvLyBhbGlnbiBpbnRlZ2VyIHNpemUgdG8gcG93ZXIgb2YgdHdvCi0gICAg IHBhc3Nlcy5hZGQoY3JlYXRlUmVtb3ZlR0VQUGFzcyh1bml0KSk7ICAgICAgICAgLy8gQ29uc3Rh bnQgcHJvcCBtYXkgZ2VuZXJhdGUgZ2VwCi0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RF bGltaW5hdGlvblBhc3MoKSk7ICAgLy8gUmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0r ICAgIC8vcGFzc2VzLmFkZChjcmVhdGVEZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBS ZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVjdGlvbnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVDRkdT aW1wbGlmaWNhdGlvblBhc3MoKSk7ICAgICAvLyBNZXJnZSAmIHJlbW92ZSBCQnMKLSAgICAgcGFz c2VzLmFkZChjcmVhdGVMb3dlclN3aXRjaFBhc3MoKSk7ICAgICAgICAgICAvLyBzaW1wbGlmeSBj Zmcgd2lsbCBnZW5lcmF0ZSBzd2l0Y2gtY2FzZSBpbnN0cnVjdGlvbgotICAgICBpZiAocHJvZmls aW5nKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoIGIv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggY2VmYWZiYjY1NTg4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0 L3BhdGNoZXMvbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBh L2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuL2dlbl9tZXNhX2Rpc2FzbS5jCi0rKysgYi9iYWNrZW5k L3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVzYV9kaXNhc20uYwotQEAgLTExMzcsNyArMTEzNyw3IEBA IHN0YXRpYyB1aW50MzJfdCBfX2NvbnZfaGFsZl90b19mbG9hdCh1aW50MTZfdCBoKQotICAgICAg IC8vIEFkanVzdCBtYW50aXNzYSBzbyBpdCdzIG5vcm1hbGl6ZWQgKGFuZCBrZWVwCi0gICAgICAg Ly8gdHJhY2sgb2YgZXhwb25lbnQgYWRqdXN0bWVudCkKLSAgICAgICBpbnQgZSA9IC0xOwotLSAg ICAgIHVpbnQgbSA9IGkubWFudGlzc2E7Ci0rICAgICAgdW5zaWduZWQgaW50IG0gPSBpLm1hbnRp c3NhOwotICAgICAgIGRvIHsKLSAgICAgICAgIGUrKzsKLSAgICAgICAgIG0gPDw9IDE7CmRpZmYg LS1naXQgYS9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUgYi9zcmNwa2dzL2JlaWduZXQvdGVtcGxh dGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTZiYmI3YWUyNC4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIy ICswLDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JlaWduZXQnCi1wa2duYW1lPWJlaWduZXQK LXZlcnNpb249MS4zLjIKLXJldmlzaW9uPTEwCi1hcmNocz0iaTY4NiogeDg2XzY0KiIKLXdya3Ny Yz0iQmVpZ25ldC0ke3ZlcnNpb259LVNvdXJjZSIKLWJ1aWxkX3N0eWxlPWNtYWtlCi1ob3N0bWFr ZWRlcGVuZHM9ImNsYW5nIGxsdm0gcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJNZXNhTGliLWRl dmVsIGxpYmVkaXQtZGV2ZWwgbGliZmZpLWRldmVsIG9jbC1pY2QtZGV2ZWwgemxpYi1kZXZlbAot IGxpYlhmaXhlcy1kZXZlbCIKLWRlcGVuZHM9Im9jbC1pY2QiCi1zaG9ydF9kZXNjPSJCZWlnbmV0 IEdQR1BVIFN5c3RlbSBmb3IgSW50ZWwgR1BVcyIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBo YW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdl PSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3YXJlL0JlaWduZXQvIgotZGlz dGZpbGVzPSJodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzLyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS1zb3VyY2UudGFyLmd6IgotY2hlY2tzdW09YzU1NWVkYmExNDlkZTIzMjQzOTY1YTcw M2YzOWY3OWZhMDZmMTViY2ZmNWEzNzYyYjU1NDRiMDkyNTAxMGI0MwotCi1wb3N0X2luc3RhbGwo KSB7Ci0JIyByZW1vdmUgQ0wgaGVhZGVycywgd2UgZG8gdXNlIG9wZW5jbC1oZWFkZXJzIGluc3Rl YWQuCi0Jcm0gLXIgJHtERVNURElSfS91c3IvaW5jbHVkZQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9iZWlnbmV0L3VwZGF0ZSBiL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGNhNDFlMGFmZTYwYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv YmVpZ25ldC91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zaXRlPSJodHRwczov LzAxLm9yZy9iZWlnbmV0L2Rvd25sb2FkcyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1w YWNrYWdlcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRl eCBjMTRhZWIwMTY3ZjcuLmY5ODg5M2ZkNzI3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVk LXBhY2thZ2VzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0 ZQpAQCAtMjEsNiArMjEsNyBAQCByZXBsYWNlcz0iCiAgYXRvbTw9MS40NC4wXzEKICBhdm9nYWRy by1kZXZlbDw9MS4yLjBfOAogIGF2b2dhZHJvPD0xLjIuMF84CisgYmVpZ25ldDw9MS4zLjIKICBi b2trZW48PTEuOF8zCiAgYm9taTw9MC45LjExXzE3CiAgYnVycC1jbGllbnQ8PTEuNC40MF8xMwo= --===============3882514330260512520==--