From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27593 invoked from network); 3 Mar 2021 15:40:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 15:40:45 -0000 Content-Type: multipart/mixed; boundary="===============2008725067389653061==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIFtXSVBdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy?= To: ml@inbox.vuxu.org From: pullmoll Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 03 Mar 2021 16:40:43 +0100 List-Id: Message-ID: <20210303154043.P7Y5RpHXtUNVu7GAkdWh8fKzgyK2EkAyajCVtr8LoeU@z> GitHub notification mails are now in MIME to allow UTF8. --===============2008725067389653061== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHVsbG1vbGwgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3B1 bGxtb2xsL3ZvaWQtcGFja2FnZXMgY2hyb21pdW0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5MjA1CgpbV0lQXSBjaHJvbWl1bTogdXBkYXRlIHRvIDg5 LjAuNDM4OS43MgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5 IGN1cnNvcnkgYW5kIHNlZW1zIHRvIHdvcmsNCisgaTY4NiBwYXRjaCBhcHBsaWVzIHcvbyBjaGFu Z2UsIGJ1aWx0LCBub3QgeWV0IHRlc3RlZA0KKyB4ODZfNjQtbXVzbCBwYXRjaCBzZXQgdXBkYXRl ZCwgY3VycmVudGx5IGJ1bGRpbmcsIG5vdCB5ZXQgdGVzdGVkDQorIHBwYzY0bGUgcGF0Y2ggcmVt b3ZlZCBmb3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPyBuZWVk IHRvIGNoZWNrIGFnYWluKQ0KKyBvcHVzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBz aGltIGhlYWRlciBvcHVzLmggdHJpZXMgdG8gaW5jbHVkZSA8b3B1cy5oPiBhbmQgZmFpbHMNCisg bm90IHN1cmUgaWYgbGliY19tYWxsb2MucGF0Y2ggaXMgb2ssIGkuZS4gc2ltcGx5IHVzZSBtYWxs b2MoKSBpbnN0ZWFkIG9mIF9fbGliY19tYWxsb2MoKS4NCisgbW9yZSB0byBkbw0KDQpbY2kgc2tp cF0NCg0KSWYgeW91IGRvbid0IHdhbnQgdG8gYnVpbGQgeW91cnNlbGY6DQpodHRwczovL3JlcG8u dm9pZGxpbnV4LmRlL3g4Nl82NC9jaHJvbWl1bS04OS4wLjQzODkuNzJfMS54ODZfNjQueGJwcw0K aHR0cHM6Ly9yZXBvLnZvaWRsaW51eC5kZS9pNjg2L2Nocm9taXVtLTg5LjAuNDM4OS43Ml8xLmk2 ODYueGJwcw0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMjkyMDUucGF0Y2ggaXMgYXR0YWNoZWQ= --===============2008725067389653061== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSBmNWFlYmM3MzE1NmU2M2Y1MDc1YWFiYTcxY2U2YzZjZjc3MWE2YTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5IGN1cnNvcnkg YW5kIHNlZW1zIHRvIHdvcmsKKyBpNjg2IHBhdGNoIGFwcGxpZXMgdy9vIGNoYW5nZSwgYnVpbHQs IGN1cnNvcnkgdGVzdCBpbiBhIFZNCisgeDg2XzY0LW11c2wgcGF0Y2ggc2V0IHVwZGF0ZWQsIGN1 cnJlbnRseSBidWxkaW5nLCBub3QgeWV0IHRlc3RlZAorIHBwYzY0bGUgcGF0Y2ggcmVtb3ZlZCBm b3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPykKKyBzeXN0ZW0g b3B1cyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIgb3B1cy5oIHRy aWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4gYW5kIGZhaWxzCisgbm90IHN1cmUgaWYgbGliY19tYWxs b2MucGF0Y2ggaXMgb2ssIGkuZS4gc2ltcGx5IHVzZSBtYWxsb2MoKSBpbnN0ZWFkIG9mIF9fbGli Y19tYWxsb2MoKS4KKyBtb3JlIHRvIGRvCgpbY2kgc2tpcF0KLS0tCiAuLi4vZGVmYXVsdC1wdGhy ZWFkLXN0YWNrc2l6ZS5wYXRjaCAgICAgICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtZml4ZXMucGF0Y2ggICAgICAgfCAgIDQwICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtaGFja3MucGF0Y2ggICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtbGliYysrLnBhdGNoICAgICAgfCAgICA2ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtc2FuZGJveC5wYXRjaCAgICAgfCAgIDEyICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoICAgICAgfCAgICA2ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL3Jlc29sdmVyLnBhdGNoICAgICAgICAgfCAgICAyICstCiAuLi4vbXVzbC1wYXRjaGVz L3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggICAgfCAgMTEwICstCiBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvYnJvd3Nlci1zaXplX3QucGF0Y2ggfCAgIDEwIC0KIC4uLi9jaHJvbWl1bS04OC1B WFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5wYXRjaCB8ICAgMjcgLQogLi4uaXVtLTg4LUJvb2ttYXJr TW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNoIHwgICAyMSAtCiAuLi51bS04OC1Db21wb3NpdG9y RnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2ggfCAgIDM2IC0KIC4uLi9jaHJvbWl1bS04OC1TdHJp bmdQb29sLWluY2x1ZGUucGF0Y2ggICAgICB8ICAgMjAgLQogLi4ucm9taXVtLTg4LWZlZGVyYXRl ZF9sZWFybmluZy1pbmNsdWRlLnBhdGNoIHwgICAyMSAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04 OC1nbGliYy0yLjMzLnBhdGNoICAgICAgfCAgMTQ0IC0KIC4uLmhyb21pdW0tODgtaWRlb2dyYXBo aWNTcGFjZUNoYXJhY3Rlci5wYXRjaCB8ICAgMjcgLQogLi4uL3BhdGNoZXMvY2hyb21pdW0tODgt aXR5cC1pbmNsdWRlLnBhdGNoICAgIHwgICAyNSAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04OC12 YWFwaS1hdHRyaWJ1dGUucGF0Y2ggfCAgIDM5IC0KIC4uLnVtLTg5LUNvbXBvc2l0b3JGcmFtZVJl cG9ydGVyLWRjaGVjay5wYXRjaCB8ICAgMTEgKwogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xp YmNfbWFsbG9jLnBhdGNoICAgIHwgICAyMyArLQogLi4ucmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBp bGVyLXdhcm5pbmdzLnBhdGNoIHwgICAyNiAtCiAuLi4tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29u dF90aW1lZHdhaXQucGF0Y2ggfCAgIDI0IC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1l eGVjaW5mby5wYXRjaCAgICB8ICAgNjUgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1n ZXRjb250ZXh0LnBhdGNoICB8ICAgMjcgLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLXN0 ZC10aW1lLnBhdGNoICAgIHwgICAxMSArCiAuLi4vY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1l bWJhcnJpZXIucGF0Y2ggfCAgIDYwIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQu cGF0Y2ggICAgICAgICB8IDM2NTYgLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvY2hyb21pdW0v dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIDI4IGZpbGVzIGNoYW5nZWQs IDYxIGluc2VydGlvbnMoKyksIDQ0MDQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jyb3dzZXItc2l6ZV90LnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1h dHRlci1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTg4LUJvb2ttYXJrTW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNv bXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t ODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVv Z3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRy aWJ1dGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9y dGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0 Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9uby1zdGQtdGltZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVhZC1z dGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9kZWZh dWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCmluZGV4IDE2ZTRkMjFlNmVkLi44YmY5YTNkZmIz NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvZGVmYXVs dC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211 c2wtcGF0Y2hlcy9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCkBAIC0xLDEyICsxLDEy IEBACiAtLS0gYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjLm9yaWcKICsr KyBiYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKLUBAIC05OSArOTksMiBA QCBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwCitAQCAtNDQwICs0NDAs MiBAQCBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwCiAtICByZXR1cm4g MDsKICsgIC8vIHVzZSA4bWIgbGlrZSBnbGliYyB0byBhdm9pZCBydW5uaW5nIG91dCBvZiBzcGFj ZQogKyAgcmV0dXJuICgxIDw8IDIzKTsKIC0tLSBjaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9o YW5kbGVyc19wb3NpeC5jYy5vcmlnCiArKysgY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFu ZGxlcnNfcG9zaXguY2MKLUBAIC0xODQsMTEgKzE4NCwxOSBAQAorQEAgLTE4NywxMSArMTg3LDE5 IEBACiAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCA9IHBpcGVmZFswXTsKICAgIGdfc2h1dGRv d25fcGlwZV93cml0ZV9mZCA9IHBpcGVmZFsxXTsKICAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5J VElaRVIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9t dXNsLWZpeGVzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVz bC1maXhlcy5wYXRjaAppbmRleCBhNzgzMmZmMzJlOC4uMWYxMmZmOGIwOGQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2gKKysr IGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1maXhlcy5wYXRjaApA QCAtMSw2ICsxLDYgQEAKIC0tLSAuL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBv cnQuaC5vcmlnCiArKysgLi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK LUBAIC0xMTI3LDYgKzExMjcsMTIgQEAKK0BAIC0xMjU4LDYgKzEyNTgsMTIgQEAKICAjaWZuZGVm IF9fTlJfZmFsbG9jYXRlCiAgI2RlZmluZSBfX05SX2ZhbGxvY2F0ZSAgICAgICAgICAyODUKICAj ZW5kaWYKQEAgLTE1LDcgKzE1LDcgQEAKICAjaWYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkz MgogLS0tIC4vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgub3JpZwogKysrIC4vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dWNvbnRleHRfcmVhZGVyLmgKLUBAIC0zNyw2ICszNywxMCBAQAorQEAgLTM4LDYgKzM4LDEwIEBA CiAgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnkuaCIKICAjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFk L2NvbW1vbi9taW5pZHVtcF9mb3JtYXQuaCIKICAKQEAgLTI4LDcgKzI4LDcgQEAKICAvLyBXcmFw cyBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFjY2Vzc29ycyB0byB1Y29u dGV4dF90IHN0cnVjdHMuCiAtLS0gLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaC5vcmlnCiArKysgLi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAotQEAgLTM2LDYg KzM2LDcgQEAKK0BAIC0zNyw2ICszNyw3IEBACiAgI2luY2x1ZGUgPGVsZi5oPgogICNpbmNsdWRl IDxsaW5rLmg+CiAgI2luY2x1ZGUgPHN0ZGRlZi5oPgpAQCAtMzgsNyArMzgsNyBAQAogIAogLS0t IC4vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oLm9yaWcKICsrKyAuL3NhbmRib3gv bGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAotQEAgLTExLDYgKzExLDE0IEBACitAQCAtMTIsNiAr MTIsMTQgQEAKICAjaW5jbHVkZSA8c3RkYm9vbC5oPgogICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K ICAKQEAgLTY2LDcgKzY2LDcgQEAKICAjaWYgZGVmaW5lZChfX21pcHNfXykKIC0tLSAuL3RoaXJk X3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMub3JpZwogKysrIC4vdGhpcmRfcGFydHkvZmZt cGVnL2xpYmF2dXRpbC9jcHUuYwotQEAgLTM4LDcgKzM4LDYgQEAKK0BAIC00MSw3ICs0MSw2IEBA CiAgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogICNlbmRpZgogICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KQEAgLTc0LDI4ICs3NCw2IEBACiAgI2VuZGlmCiAgI2lmIEhBVkVfVU5JU1REX0gKICAjaW5j bHVkZSA8dW5pc3RkLmg+Ci1kaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJv bWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MgYi9jaHJvbWUvYnJvd3Nlci9t ZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwotLS0tIGNo cm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRy aWNzLmNjCi0rKysgY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4 dHJhX3BhcnRzX21ldHJpY3MuY2MKLUBAIC0zOSw3ICszOSw5IEBACi0gI2VuZGlmICAvLyBkZWZp bmVkKE9TX0FORFJPSUQpICYmIGRlZmluZWQoX19hcm1fXykKLSAKLSAjaWYgZGVmaW5lZChPU19M SU5VWCkgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKQot ICNpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+Ci0rI2VuZGlmCi0gCi0gI2luY2x1ZGUgImJh c2UvbGludXhfdXRpbC5oIgotICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0Lmgi Ci1AQCAtMjk1LDcgKzI5Nyw3IEBAIHZvaWQgUmVjb3JkTGludXhEaXN0cm8oKSB7Ci0gI2VuZGlm ICAvLyBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSAKLSB2b2lk IFJlY29yZExpbnV4R2xpYmNWZXJzaW9uKCkgewotLSNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAh ZGVmaW5lZChPU19DSFJPTUVPUykKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KE9TX0NIUk9NRU9TKQotICAgYmFzZTo6VmVyc2lvbiB2ZXJzaW9uKGdudV9nZXRfbGliY192ZXJz aW9uKCkpOwotIAotICAgVU1BTGludXhHbGliY1ZlcnNpb24gZ2xpYmNfdmVyc2lvbl9yZXN1bHQg PSBVTUFfTElOVVhfR0xJQkNfTk9UX1BBUlNFQUJMRTsKIC0tLSBzZXJ2aWNlcy9kZXZpY2Uvc2Vy aWFsL3NlcmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNjLm9yaWcJMjAxOS0wNy0wMyAxMDo1NzozMi41 NjgxNzE4MzUgLTA0MDAKICsrKyBzZXJ2aWNlcy9kZXZpY2Uvc2VyaWFsL3NlcmlhbF9pb19oYW5k bGVyX3Bvc2l4LmNjCTIwMTktMDctMDMgMTA6NTc6MTYuODY3OTgzMDMxIC0wNDAwCiBAQCAtNiw2 ICs2LDcgQEAKQEAgLTEzMSw3ICsxMDksNyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvb3Rz L2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9vdHMvaW5jbAogICAg ICBiYXNlOjpkZWJ1Zzo6U3RhY2tUcmFjZSBzdGFja190cmFjZTsKIC0tLSAuL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjLm9yaWcKICsrKyAuL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCi1AQCAt MjgsNyArMjgsNyBAQAorQEAgLTI5LDcgKzI5LDcgQEAKICAvLyBGSVhNRTogT24gTWFjIE9TWCBh bmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCiAgLy8gY29y cmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCiAgCkBAIC0xNDAsNyArMTE4LDcgQEAgZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L290cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhp cmRfcGFydHkvb3RzL2luY2wKICAgICAgZGVmaW5lZChPU19GVUNIU0lBKQogICAgLy8gcHRocmVh ZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQog ICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3Vu aXR0ZXN0cykuCi1AQCAtOTYsNyArOTYsNyBAQAorQEAgLTk3LDcgKzk3LDcgQEAKICB9CiAgCiAg dm9pZCogR2V0U3RhY2tTdGFydCgpIHsKQEAgLTE1MSw3ICsxMjksNyBAQCBkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0 eS9vdHMvaW5jbAogICAgaW50IGVycm9yOwogLS0tIC4vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZp Y2VfcG9zaXguY2Mub3JpZwogKysrIC4vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXgu Y2MKLUBAIC0xMjIsNyArMTIyLDcgQEAKK0BAIC0xNTAsNyArMTUwLDcgQEAKICAgIENvbmZpZ1Bh cnNlUG9zaXhSZXN1bHQgcmVzdWx0OwogICAgY29uZmlnLT51bmhhbmRsZWRfb3B0aW9ucyA9IGZh bHNlOwogIC8vIFRPRE8oZnVjaHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3MgaW1wbGVt ZW50ZWQgb24gRnVjaHNpYS4KQEAgLTE4MSw3ICsxNTksNyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9vdHMv aW5jbAogIAogLS0tIHRoaXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jLm9yaWcJMjAx OS0wNy0wMyAxMjoyMzowNS4wMjE5NDk4OTUgLTA0MDAKICsrKyB0aGlyZF9wYXJ0eS9uYXNtL25h c21saWIvcmVhbHBhdGguYwkyMDE5LTA3LTAzIDEyOjI0OjI0LjI0Njg2MjY2NSAtMDQwMAotQEAg LTQ5LDcgKzQ5LDcgQEAKK0BAIC00Nyw3ICs0Nyw3IEBACiAgCiAgI2luY2x1ZGUgIm5hc21saWIu aCIKICAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211 c2wtaGFja3MucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNs LWhhY2tzLnBhdGNoCmluZGV4IGVkYzFiMDYwZGZiLi45Mjc2ZTQ4YWI4ZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaAorKysg Yi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWhhY2tzLnBhdGNoCkBA IC0xLDYgKzEsNiBAQAogLS0tIGJhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2Mub3JpZwkyMDE4LTEy LTA4IDE0OjExOjI1LjMwMzQ3NTExNiArMDEwMAogKysrIGJhc2UvZGVidWcvc3RhY2tfdHJhY2Uu Y2MJMjAxOC0xMi0wOCAxODowMDo0My44NzQ5NDY5OTkgKzAxMDAKLUBAIC0yMjksNyArMjI5LDcg QEAKK0BAIC0yMjUsNyArMjI1LDcgQEAKICB9CiAgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9T dHJpbmdXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKICAgIHN0 ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKQEAgLTExLDcgKzExLDcgQEAKICAgIHJldHVybiBzdHJl YW0uc3RyKCk7CiAtLS0gbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjLm9yaWcJMjAxOS0w Ny0wMyAxMzoxMzo0Ni4wMzQzNDI2NDkgLTA0MDAKICsrKyBuZXQvc29ja2V0L3VkcF9zb2NrZXRf cG9zaXguY2MJMjAxOS0wNy0wMyAxMzoyMzo1My4xMTcwODE5MDkgLTA0MDAKLUBAIC0xMTk0LDcg KzExOTQsNyBAQAorQEAgLTExNTMsNyArMTE1Myw3IEBACiAgICAgIG1zZ19pb3YtPnB1c2hfYmFj ayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7 CiAgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOwogICAgZm9yIChzaXplX3QgaiA9 IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWxpYmMrKy5wYXRjaAppbmRleCAwODhkODBmYWQ1Mi4u ZTA3NzY4MjM0MDIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtbGliYysrLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtbGliYysrLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBkaWZmIC0tZ2l0IGEvYnVp bGR0b29scy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUgYi9idWlsZHRv b2xzL3RoaQogaW5kZXggZDI5YTJkYy4uNTM5OThiYyAxMDA2NDQKIC0tLSBidWlsZHRvb2xzL3Ro aXJkX3BhcnR5L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2FsZQogKysrIGJ1aWxkdG9vbHMvdGhp cmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlCi1AQCAtMTEsNiArMTEsMTUgQEAK K0BAIC0xMCw2ICsxMCwxNSBAQAogICNpZm5kZWYgX0xJQkNQUF9MT0NBTEUKICAjZGVmaW5lIF9M SUJDUFBfTE9DQUxFCiAgCkBAIC0yMiw3ICsyMiw3IEBAIGRpZmYgLS1naXQgYS9idWlsZHRvb2xz L3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcCBiL2J1aWxkdG9vbHMvdGhp CiBpbmRleCA0MTYzYzJjLi4zZDE5MDJhIDEwMDY0NAogLS0tIGEvYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAKICsrKyBidWlsZHRvb2xzL3RoaXJkX3Bh cnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcAotQEAgLTEwMjgsMTEgKzEwMjgsMTEgQEAg Y3R5cGU8Y2hhcj46OmRvX25hcnJvdyhjb25zdCBjaGFyX3R5cGUqIGxvdywgY29uc3QgY2hhcl90 eXBlKiBoaWdoLCBjaGFyIGRmYXVsdCwKK0BAIC0xMDE5LDExICsxMDE5LDExIEBAIGN0eXBlPGNo YXI+Ojpkb19uYXJyb3coY29uc3QgY2hhcl90eXBlKiBsb3csIGNvbnN0IGNoYXJfdHlwZSogaGln aCwgY2hhciBkZmF1bHQsCiAgICAgIHJldHVybiBsb3c7CiAgfQogIApAQCAtMzYsNyArMzYsNyBA QCBpbmRleCA0MTYzYzJjLi4zZDE5MDJhIDEwMDY0NAogIAogICNpZmRlZiBfTElCQ1BQX1BST1ZJ REVTX0RFRkFVTFRfUlVORV9UQUJMRQogIGNvbnN0IGN0eXBlPGNoYXI+OjptYXNrKgotQEAgLTEx MzYsMTIgKzExMzYsMTAgQEAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSAgX05PRVhDRVBU CitAQCAtMTEyNywxMiArMTEyNywxMCBAQCBjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSgpICBf Tk9FWENFUFQKICAjZWxpZiBkZWZpbmVkKF9BSVgpCiAgICAgIHJldHVybiAoY29uc3QgdW5zaWdu ZWQgaW50ICopX19sY19jdHlwZV9wdHItPm9iai0+bWFzazsKICAjZWxzZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoCmlu ZGV4IDIzMGJiN2JiZDI5Li4wYjk4MjUzZjRkNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hy b21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaApAQCAtMSw2ICsxLDYg QEAKIC0tLSAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFt ZXRlcnNfcmVzdHJpY3Rpb25zLmNjLm9yaWcJMjAxOS0wNy0wMyAxMTo1MzoyMS4yMTM0Nzk3MzYg LTA0MDAKICsrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCTIwMTktMDctMDMgMTE6NTc6MDEuMzA0OTk4MjUzIC0w NDAwCi1AQCAtMTQwLDMxICsxNDAsMTQgQEAKK0BAIC0xMzEsMzEgKzEzMSwxNCBAQAogIFJlc3Vs dEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKICAgIGNvbnN0IEFy Zzx1bnNpZ25lZCBsb25nPiBmbGFncygwKTsKICAKQEAgLTQxLDcgKzQxLDcgQEAKICAKIC0tLSAu L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mub3JpZwog KysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwot QEAgLTQ5NCw2ICs0OTQsNyBAQAorQEAgLTUyMSw2ICs1MjEsNyBAQAogICAgICBjYXNlIF9fTlJf bWxvY2s6CiAgICAgIGNhc2UgX19OUl9tdW5sb2NrOgogICAgICBjYXNlIF9fTlJfbXVubWFwOgpA QCAtNDksNyArNDksNyBAQAogICAgICAgIHJldHVybiB0cnVlOwogICAgICBjYXNlIF9fTlJfbWFk dmlzZToKICAgICAgY2FzZSBfX05SX21pbmNvcmU6Ci1AQCAtNTA5LDcgKzUxMCw2IEBACitAQCAt NTQwLDcgKzU0MCw2IEBACiAgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgogICNlbmRpZgogICAg ICBjYXNlIF9fTlJfbXByb3RlY3Q6CkBAIC02MSw3ICs2MSw3IEBAIGRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjIGIvc2FuZGJveC9s aW51eC9zCiBpbmRleCA4MGYwMmMwLi4yMWZiZTIxIDEwMDY0NAogLS0tIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKICsrKyBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAtMzczLDYgKzM3Myw3IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7 CitAQCAtNDAwLDYgKzQwMCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NT dGFydE9yRGVhdGgoaW50IHN5c25vKSB7CiAgI2lmIGRlZmluZWQoX19pMzg2X18pCiAgICAgIGNh c2UgX19OUl93YWl0cGlkOgogICNlbmRpZgpAQCAtNjksNyArNjksNyBAQCBpbmRleCA4MGYwMmMw Li4yMWZiZTIxIDEwMDY0NAogICAgICAgIHJldHVybiB0cnVlOwogICAgICBjYXNlIF9fTlJfY2xv bmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCiAgICAgIGNhc2UgX19OUl9z ZXRuczogIC8vIFByaXZpbGVnZWQuCi1AQCAtMzg1LDcgKzM4Niw2IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7CitAQCAtNDEzLDcg KzQxMyw2IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgo aW50IHN5c25vKSB7CiAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKICAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToK ICAjZW5kaWYKQEAgLTc5LDcgKzc5LDcgQEAgaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQK ICAgICAgY2FzZSBfX05SX3Zmb3JrOgogLS0tIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKICsrKyBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVy ZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTAwLDkgKzEwMCw5IEBACitAQCAtOTUsOSArOTUsOSBA QAogICAgICBjYXNlIF9fTlJfdW5hbWU6CiAgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToK ICAgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoIGIvc3JjcGtncy9j aHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKaW5kZXggMjU0YTFm NjMyZGEuLjE2ZTdlMzY4MTc1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211 c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVz L211c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaApAQCAtMSw2ICsxLDYgQEAKIC0tLSBiYXNl L3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjLm9yaWcKICsrKyBiYXNlL3RyYWNl X2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCi1AQCAtMjQzLDcgKzI0Myw3IEBACitAQCAt MTg0LDcgKzE4NCw3IEBACiAgICBhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCA9IG1haW5faGVhcF9p bmZvLmJsb2NrX2NvdW50OwogICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKICAvLyBUT0RPKGZ1 Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgpAQCAtMzAsNyArMzAs NyBAQAogICNlbmRpZgogLS0tIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1Byb2Nlc3MuaW5jCiArKysgdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2xpYi9TdXBwb3J0L1VuaXgvUHJv Y2Vzcy5pbmMub3JpZwotQEAgLTg0LDcgKzg0LDcgQEAKK0BAIC04Niw3ICs4Niw3IEBACiAgfQog IAogIHNpemVfdCBQcm9jZXNzOjpHZXRNYWxsb2NVc2FnZSgpIHsKQEAgLTQyLDcgKzQyLDcgQEAK IAogLS0tIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9jb25m aWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgub3JpZwkyMDE5LTA5LTMwIDEz OjAzOjQyLjU1Njg4MDUzNyAtMDQwMAogKysrIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJk X3BhcnR5L2xsdm0tMTAuMC9jb25maWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmln LmgJMjAxOS0wOS0zMCAxMzowNzoyNy45ODk4MjEyMjcgLTA0MDAKLUBAIC0xMjIsNyArMTIyLDkg QEAKK0BAIC0xMjUsNyArMTI1LDkgQEAKICAvKiAjdW5kZWYgSEFWRV9NQUxMQ1RMICovCiAgCiAg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9yZXNvbHZlci5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNo CmluZGV4IDI5ZmUyZDJmMWYzLi4wY2U3N2M5NmE2MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2ZXIucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJv bWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2ZXIucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAt LS0gbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2Mub3JpZwkyMDIwLTEwLTA5IDE2OjM5 OjEyLjA2NDA2OTgzNSAtMDQwMAogKysrIG5ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNj CTIwMjAtMTAtMDkgMTY6NDI6NDkuNzM4MzAyNzcyIC0wNDAwCi1AQCAtMjc3OSw4ICsyNzc5LDcg QEAKK0BAIC0yNTYyLDggKzI1NjIsNyBAQAogICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRD b25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMpOwogICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25v dGlmaWVyXykKICAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0 aGlzKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4 eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0 Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCmluZGV4IDkwMDFhMmE4NTRkLi4xYmU5MzIz MTJlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wt cGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCkBAIC0xLDQ2ICsxLDMgQEAKLWRpZmYg LS1naXQgc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51 eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IGE2YWVjNTQ0ZS4uMmE0YTdmMWJjIDEw MDY0NAotLS0tIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi0rKysgc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLUBAIC0xNiw3ICsxNiw3IEBACi0g I2lmIGRlZmluZWQoX19taXBzX18pCi0gLy8gc3lzL3VzZXIuaCBpbiBlZ2xpYmMgbWlzc2VzIHNp emVfdCBkZWZpbml0aW9uCi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotLSNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIGRlZmluZWQoX19H TElCQ19fKQotIC8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQKLSB0eXBlZGVmIHVu c2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7Ci0gI2VuZGlmCi1AQCAtMzYxLDExICszNjEsMTEgQEAg dHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKLSAjZGVmaW5lIFNFQ0NPTVBfQVJD SCBBVURJVF9BUkNIX1BQQzY0Ci0gI2VuZGlmCi0gCi0tI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4 LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCi0rI2RlZmluZSBT RUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKChzdHJ1Y3QgcHRfcmVncyAqKShfY3R4KS0+dWNfbWNv bnRleHQucmVncyktPmdwcltfcmVnXSkKLSAKLSAjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgMCkKLS0jZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19t Y29udGV4dC5yZWdzLT5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKChzdHJ1Y3QgcHRf cmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVncyktPm5pcAotICNkZWZpbmUgU0VDQ09NUF9Q QVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9QQVJNMihf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotICNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBT RUNDT01QX1JFRyhfY3R4LCA1KQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3N5c2NhbGwuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1pbmRleCBk NTNhN2ZmNTYuLmMyOTBmMGU5MiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3N5c2NhbGwuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLUBA IC00OTksOSArNDk5LDkgQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1ZUluVWNvbnRleHQoaW50cHRy X3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQg dG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCi0gICBpZiAocmV0 X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7Ci0gICAgIHJldF92YWwgPSAtcmV0X3Zh bDsKLS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgfD0gKDEgPDwgMjgpOwotKyAgICAo KHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyIHw9ICgxIDw8IDI4 KTsKLSAgIH0gZWxzZSB7Ci0tICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyICY9IH4oMSA8 PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5j Y3IgJj0gfigxIDw8IDI4KTsKLSAgIH0KLSAjZW5kaWYKLSAgIFNFQ0NPTVBfUkVTVUxUKGN0eCkg PSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOwogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9h YnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaCB0aGlyZF9w YXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAog aW5kZXggY2RjZTliZjguLjczZDc3ZGRhIDEwMDY0NAogLS0tIHRoaXJkX3BhcnR5L2Fic2VpbC1j cHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCkBAIC01Niw3ICsxMyw3 IEBAIGluZGV4IGNkY2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKICAjZWxzZQogLS0tIHRoaXJkX3Bh cnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcu aAogKysrIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3Rh Y2t0cmFjZV9jb25maWcuaAotQEAgLTY0LDcgKzY0LDcgQEAKK0BAIC01OSw3ICs1OSw3IEBACiAg I2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQogICNkZWZpbmUg QUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAogICAgImFic2wvZGVidWdnaW5nL2ludGVybmFs L3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCkBAIC02NSwyMyArMjIsMTEgQEAgaW5kZXggY2RjZTli ZjguLjczZDc3ZGRhIDEwMDY0NAogICNkZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIg XAogICAgImFic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5j IgogICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1pbmRleCBmOWE2 MGUzNy4uMjVmM2EwYjcgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24K LSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTYzNyw2ICs2MzcsNyBAQCBp ZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotIAotICAgICBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgewotICAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAg ICAgICAgbGlicyArPSBbICJ1Y29udGV4dCIgXQotICAgICB9IGVsc2UgewotICAgICAgICAgc291 cmNlcyArPSBbCi0gICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtw YWRfZ2V0Y29udGV4dC5TIgogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi90aHJlYWRfaW5mby5jYwogaW5kZXggMDNhZmVjN2EuLjAyNjRlY2YxIDEwMDY0NAogLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCiArKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLUBA IC0yNzMsNiArMjczLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKK0BAIC0yMTAsNiArMjEwLDkgQEAgdm9pZCBUaHJlYWRJbmZv OjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKICAKICAjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCiAgCkBAIC05MSwyMyArMzYsMTEgQEAgaW5kZXggMDNhZmVj N2EuLjAyNjRlY2YxIDEwMDY0NAogIHVpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlv blBvaW50ZXIoKSBjb25zdCB7CiAgICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07 CiAgfQotQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgICBvdXQtPmN0ciA9IG1jb250ZXh0Lmdw X3JlZ3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJ TkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUu ZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2 ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOwotIAotLSAg ICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsg ICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdz KVtFTEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNB VkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldID0gXAogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmNjCiBpbmRleCAxMDkwNDcwZi4uZTU4MDIzM2QgMTAwNjQ0CiAt LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCiArKysgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmNjCi1AQCAtMjU3LDYgKzI1Nyw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKK0BAIC0y MTAsNiArMjEwLDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29u dGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YykgewogIAogICNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKICAKQEAgLTExNywxOCArNTAsNiBAQCBpbmRleCAxMDkwNDcwZi4uZTU4 MDIzM2QgMTAwNjQ0CiAgdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIo Y29uc3QgdWNvbnRleHRfdCogdWMpIHsKICAgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKICB9Ci1AQCAtMjgwLDkgKzI4Myw5IEBAIHZv aWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29u c3QgdWNvbnRleHRfdCogdWMsCi0gICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdT QVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnBy ZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0 X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylb aV07Ci0gCi0tICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9y ZWdzW05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAq KSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAg ICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9CiBkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKIGluZGV4IDVhN2FiNTBjLi5lZThiODU4YyAxMDA2 NDQKIC0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKQEAgLTE0NSwzMSArNjYsNiBAQCBpbmRleCA1YTdh YjUwYy4uZWU4Yjg1OGMgMTAwNjQ0CiAgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CiAgCiAg bmFtZXNwYWNlIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCA4ZTMzNWEwOS4uYjJhMGYx NTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvc2lnbmFsX2NvbnRleHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLUBAIC00NjksNyArNDY5LDcgQEAgc3RydWN0 IE1Db250ZXh0NjQgewotICAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0gICBTaWdu YWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKLSAgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9y ZWdzOwotLSAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07Ci0rICBpbnQ2NF90IHZteF9yZXNlcnZl WzEwMV07Ci0gfTsKLSAKLSBzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0 IHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhy ZWFkX2luZm8uaAotaW5kZXggZGVhMGQxZjMuLmIyMDNlNWIyIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTMw LDYgKzMwLDcgQEAKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gI2lu Y2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gI2VuZGlm Ci0gCi0gbmFtZXNwYWNlIGNyYXNocGFkIHsKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xp bnV4X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBv cnQuaAogaW5kZXggOTk1NWNlNDQuLjRjMWNjNDg4IDEwMDY0NAogLS0tIHRoaXJkX3BhcnR5L2xz cy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Jyb3dzZXItc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jy b3dzZXItc2l6ZV90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTIxNGQ5 ODdkNi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jyb3dzZXIt c2l6ZV90LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLS0tIGNocm9tZS9i cm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDgtMTAgMjA6 Mzk6MjAuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91 bmQvbnRwX2JhY2tncm91bmRzLmgJMjAyMC0wOS0wNCAxMzo0ODoyMi42NDAwMjMyNTYgKzAyMDAK LUBAIC02LDYgKzYsNyBAQAotICNkZWZpbmUgQ0hST01FX0JST1dTRVJfU0VBUkNIX0JBQ0tHUk9V TkRfTlRQX0JBQ0tHUk9VTkRTX0hfCi0gCi0gI2luY2x1ZGUgPGFycmF5PgotKyNpbmNsdWRlIDxj c3RkZGVmPgotIAotIGNsYXNzIEdVUkw7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9ybWF0dGVyLWluY2x1ZGUucGF0Y2ggYi9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9ybWF0dGVyLWluY2x1ZGUu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0NzgxMDk4OTIwLi4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9y bWF0dGVyLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9t IDZlNDAyZDk3YzJkZWM1NzI2ZjM3ZTk1Zjk3YjdmN2UxMmIxZDNiMWQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBKb3NlIERhcGVuYSBQYXogPGpkYXBlbmFAaWdhbGlhLmNvbT4KLURh dGU6IFdlZCwgMTEgTm92IDIwMjAgMTE6MDI6MTMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZ VTogaW5jbHVkZSBoZWFkZXJzIGZvciBzdGQ6OnZlY3RvciBhbmQgc3RkOjp1bmlxdWVfcHRyIGlu IEFYVHJlZUZvcm1hdHRlcgotCi1GaXggdGhlc2UgYnVpbGQgZXJyb3JzIHdpdGggbGlic3RkYysr OgotLi4vLi4vdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVy Lmg6MzU6MTI6IGVycm9yOiDigJhzdGQ6OnZlY3RvcuKAmSBoYXMgbm90IGJlZW4gZGVjbGFyZWQK LS4uLy4uL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5o OjYxOjE2OiBlcnJvcjog4oCYdW5pcXVlX3B0cuKAmSBpbiBuYW1lc3BhY2Ug4oCYc3Rk4oCZIGRv ZXMgbm90IG5hbWUgYSB0ZW1wbGF0ZSB0eXBlCi0KLUJ1ZzogOTU3NTE5Ci1DaGFuZ2UtSWQ6IEk0 MDJhYzA2NDQyNTViM2NkNDkzMmZmMmZlNzJkOTk5YjEyNWE3ODk1Ci0tLS0KLQotZGlmZiAtLWdp dCBhL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oIGIv dWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLWluZGV4 IDRhNzBhNGQuLmJiMjM3NjggMTAwNjQ0Ci0tLS0gdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9p bnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLSsrKyB1aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2lu c3BlY3QvdHJlZV9mb3JtYXR0ZXIuaAotQEAgLTUsNiArNSw5IEBACi0gI2lmbmRlZiBVSV9BQ0NF U1NJQklMSVRZX1BMQVRGT1JNX0lOU1BFQ1RfVFJFRV9GT1JNQVRURVJfSF8KLSAjZGVmaW5lIFVJ X0FDQ0VTU0lCSUxJVFlfUExBVEZPUk1fSU5TUEVDVF9UUkVFX0ZPUk1BVFRFUl9IXwotIAotKyNp bmNsdWRlIDxtZW1vcnk+Ci0rI2luY2x1ZGUgPHZlY3Rvcj4KLSsKLSAjaW5jbHVkZSAidWkvYWNj ZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L2luc3BlY3QuaCIKLSAKLSAjaW5jbHVkZSAidWkv Z2Z4L25hdGl2ZV93aWRnZXRfdHlwZXMuaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2 ZXItaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIyNmE2MGEz NmUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIxICswLDAgQEAKLUZyb20gMTI3ZWMzYjFiZjI2YWIzN2YyYWU4MzMzZjI4NDAwODg2ODc1NjI3 NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEw OUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjEgTm92IDIwMjAgMTU6NTk6MjMgKzAwMDAK LVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogc2l6ZV90IGlzIGRlZmluZWQgc3RkZGVmLmgKLQotQ2hh bmdlLUlkOiBJNDQwMGFjN2M2MDA0YjQ5ZWM2ZTcyYzQ0ZjI3NTRlMjE2NjY0MmY4OAotLS0tCi0K LWRpZmYgLS1naXQgYS9jb21wb25lbnRzL2Jvb2ttYXJrcy9icm93c2VyL2Jvb2ttYXJrX21vZGVs X29ic2VydmVyLmggYi9jb21wb25lbnRzL2Jvb2ttYXJrcy9icm93c2VyL2Jvb2ttYXJrX21vZGVs X29ic2VydmVyLmgKLWluZGV4IDY5YzQwZTcuLjBlNWViOTYgMTAwNjQ0Ci0tLS0gY29tcG9uZW50 cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oCi0rKysgY29tcG9u ZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oCi1AQCAtNyw2 ICs3LDggQEAKLSAKLSAjaW5jbHVkZSA8c2V0PgotIAotKyNpbmNsdWRlIDxzdGRkZWYuaD4KLSsK LSBjbGFzcyBHVVJMOwotIAotIG5hbWVzcGFjZSBib29rbWFya3MgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVy LWRjaGVjay5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21w b3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGFhMWM1MmUwYjdlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA1NmM2NTRhOTE2MDBlM2JmMjU0YWE5 ZjY2YzExNTFiMDg1MGI2ZWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9zZSBE YXBlbmEgUGF6IDxqZGFwZW5hQGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDEw OjI0OjQ3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogZG8gbm90IHBhc3MgdW5pcXVlX3B0 ciB0byBEQ0hFQ0tfTkUsIGJ1dCB0aGUgYWN0dWFsIHBvaW50ZXIsIGluIENvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyCi0KLURDSEVDS19ORSBjb21wYXJpc29uIHJlcXVpcmVzIENoZWNrT3BWYWx1ZVN0 ciB0byBiZSBkZWZpbmVkIGZvciB0aGUKLXR5cGUsIG9yIHByb3ZpZGluZyBhbiBvdXRwdXQgc3Ry ZWFtIG9wZXJhdG9yLiBBIHVuaXF1ZV9wdHIgZG9lcyBub3QKLXByb3ZpZGUgYW55LgotCi1Db21w aWxhdGlvbiBpbiBHQ0MgaXMgZmFpbGluZyBpbiBDb21wb3NpdG9yRnJhbWVSZXBvcnRlciBiZWNh dXNlIG9mCi10aGlzOgotLi4vLi4vY2MvbWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVy LmNjOiBJbiBtZW1iZXIgZnVuY3Rpb24g4oCYdm9pZCBjYzo6Q29tcG9zaXRvckZyYW1lUmVwb3J0 ZXI6OlJlcG9ydEV2ZW50TGF0ZW5jeUhpc3RvZ3JhbXMoKSBjb25zdOKAmToKLS4uLy4uL2Jhc2Uv Y2hlY2tfb3AuaDoyMjQ6NTk6IGVycm9yOiBubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0 byDigJhDaGVja09wVmFsdWVTdHIoY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNjOjpFdmVudE1ldHJp Y3M+JinigJkKLQotRml4ZWQgY29tcGFyaW5nIHRoZSByZXN1bHQgb2YgZ2V0KCkgbWV0aG9kIGZv ciB1bmlxdWVfcHRyIGluc3RlYWQgb2YKLXRoZSB1bmlxdWVfcHRyLgotCi1CdWc6IDgxOTI5NAot Q2hhbmdlLUlkOiBJMTExMDNkMTg2N2M3MTk2YzFkZTkyZTcyZjlmMTJkY2ZkMzFjMjlmMQotCi0o dXBkYXRlZCB0byB1c2UgRENIRUNLIGFzIHN1Z2dlc3RlZCBpbiBjb21tZW50cykKLS0tLQotCi1k aWZmIC0tZ2l0IGEvY2MvbWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjIGIvY2Mv bWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjCi1pbmRleCA3MjViZWIwLi5mYWZk MGYzIDEwMDY0NAotLS0tIGNjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwot KysrIGNjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwotQEAgLTY4Niw3ICs2 ODYsNyBAQAotIAotIHZvaWQgQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXI6OlJlcG9ydEV2ZW50TGF0 ZW5jeUhpc3RvZ3JhbXMoKSBjb25zdCB7Ci0gICBmb3IgKGNvbnN0IGF1dG8mIGV2ZW50X21ldHJp Y3MgOiBldmVudHNfbWV0cmljc18pIHsKLS0gICAgRENIRUNLX05FKGV2ZW50X21ldHJpY3MsIG51 bGxwdHIpOwotKyAgICBEQ0hFQ0soZXZlbnRfbWV0cmljcyk7Ci0gICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGhpc3RvZ3JhbV9iYXNlX25hbWUgPQotICAgICAgICAgR2V0RXZlbnRMYXRlbmN5SGlzdG9n cmFtQmFzZU5hbWUoKmV2ZW50X21ldHJpY3MpOwotICAgICBjb25zdCBpbnQgZXZlbnRfdHlwZV9p bmRleCA9IHN0YXRpY19jYXN0PGludD4oZXZlbnRfbWV0cmljcy0+dHlwZSgpKTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1 ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9v bC1pbmNsdWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTViYmFlMmVj ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4 LVN0cmluZ1Bvb2wtaW5jbHVkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK LUZyb20gMzcyMzY2YjQxODA1MzNmMjdkMzI1MGE1MDgxMDgyODM3MGQ2OTdiMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWls LmNvbT4KLURhdGU6IFNhdCwgMjEgTm92IDIwMjAgMTY6MTI6MTggKzAwMDAKLVN1YmplY3Q6IFtQ QVRDSF0gSVdZVTogaW5jbHVkZSBsaW1pdHMgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKLQotQ2hh bmdlLUlkOiBJYTUyMjZlMTQzMmE2MjJmNGY0YWJjOGYxYjE4YmNhYjg2MzhhNzNjNgotLS0tCi0K LWRpZmYgLS1naXQgYS9zcmMvdHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wu aCBiL3NyYy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi1pbmRleCAx MWFlOTFjLi41OGM2ZGIyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3BlcmZldHRvL3NyYy90cmFj ZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi0rKysgdGhpcmRfcGFydHkvcGVy ZmV0dG8vc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250YWluZXJzL3N0cmluZ19wb29sLmgKLUBAIC0y Miw2ICsyMiw3IEBACi0gCi0gI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Ci0gI2luY2x1ZGUgPHZl Y3Rvcj4KLSsjaW5jbHVkZSA8bGltaXRzPgotIAotICNpbmNsdWRlICJwZXJmZXR0by9leHQvYmFz ZS9vcHRpb25hbC5oIgotICNpbmNsdWRlICJwZXJmZXR0by9leHQvYmFzZS9wYWdlZF9tZW1vcnku aCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1mZWRl cmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS04OC1mZWRlcmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggM2ViMTUzN2Q4MDEuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1mZWRlcmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUZyb20gYmNiMjBiYWJlZTYwMmI1 NWZlNGJkMDI2ZTEzYTQxZDEwYjg5NjMyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjEg Tm92IDIwMjAgMTU6NTU6MDIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBs aW1pdHMgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKLQotQ2hhbmdlLUlkOiBJMWI2YjA3ZWJiMzk3 YTI5Yzg0ZDNlZDUxYWU0MTUyM2UzZWNhYjQ5NwotLS0tCi0KLWRpZmYgLS1naXQgYS9jb21wb25l bnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYyBiL2NvbXBvbmVudHMvZmVk ZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRzLmNjCi1pbmRleCBkZjY2ZTVkLi4yZWI1MGYx IDEwMDY0NAotLS0tIGNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRz LmNjCi0rKysgY29tcG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2MK LUBAIC00LDYgKzQsOCBAQAotIAotICNpbmNsdWRlICJjb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFy bmluZy9mbG9jX2NvbnN0YW50cy5oIgotIAotKyNpbmNsdWRlIDxsaW1pdHM+Ci0rCi0gbmFtZXNw YWNlIGZlZGVyYXRlZF9sZWFybmluZyB7Ci0gCi0gLy8gVGhpcyBpcyBvbmx5IGZvciBleHBlcmlt ZW50YXRpb24gYW5kIHdvbid0IGJlIHNlcnZlZCB0byB3ZWJzaXRlcy4KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0yLjMzLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MzA2ZDVlNDI5Li4wMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBACi0jIFBhdGNoIG1hZGUgYnkgS2V2aW4gS29mbGVy IDxLZXZpbkB0aWdjYy50aWNhbGMub3JnPgotIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20v c2hvd19idWcuY2dpP2lkPTE5MDQ2NTIKLQotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2 L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MuZnN0 YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTE6NDUuNDI3 NDM2Mzk4IC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2Vs aW5lX3BvbGljeS5jYwkyMDIxLTAxLTI1IDEwOjEyOjUxLjMzNzY5OTAwMyAtMDUwMAotQEAgLTI1 Nyw2ICsyNTcsMTggQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQot ICAgICByZXR1cm4gUmVzdHJpY3RLaWxsVGFyZ2V0KGN1cnJlbnRfcGlkLCBzeXNubyk7Ci0gICB9 Ci0gCi0rI2lmIGRlZmluZWQoX19OUl9uZXdmc3RhdGF0KQotKyAgaWYgKHN5c25vID09IF9fTlJf bmV3ZnN0YXRhdCkgewotKyAgICByZXR1cm4gUmV3cml0ZUZzdGF0YXRTSUdTWVMoKTsKLSsgIH0K LSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSsgIGlmIChzeXNubyA9 PSBfX05SX2ZzdGF0YXQ2NCkgewotKyAgICByZXR1cm4gUmV3cml0ZUZzdGF0YXRTSUdTWVMoKTsK LSsgIH0KLSsjZW5kaWYKLSsKLSAgIGlmIChTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKHN5c25v KSB8fAotICAgICAgIFN5c2NhbGxTZXRzOjpJc0N1cnJlbnREaXJlY3Rvcnkoc3lzbm8pKSB7Ci0g ICAgIHJldHVybiBFcnJvcihmc19kZW5pZWRfZXJybm8pOwotZGlmZiAtdXAgY2hyb21pdW0tODgu MC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxl cnMuY2MuZnN0YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6 MTM6MTAuMTc5Nzc0MDgxIC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3NpZ3N5c19oYW5kbGVycy5jYwkyMDIxLTAxLTI1IDEwOjE2OjE4Ljc5MDUyNTc0NiAtMDUw MAotQEAgLTYsNiArNiw4IEBACi0gCi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaCIKLSAKLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsj aW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLUBAIC0zNTUsNiArMzU3LDM1IEBAIGludHB0cl90 IFNJR1NZU1NjaGVkSGFuZGxlcihjb25zdCBzdHJ1Y3QKLSAgIHJldHVybiAtRU5PU1lTOwotIH0K LSAKLStpbnRwdHJfdCBTSUdTWVNGc3RhdGF0SGFuZGxlcihjb25zdCBzdHJ1Y3QgYXJjaF9zZWNj b21wX2RhdGEmIGFyZ3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXV4 KSB7Ci0rICBzd2l0Y2ggKGFyZ3MubnIpIHsKLSsjaWYgZGVmaW5lZChfX05SX25ld2ZzdGF0YXQp Ci0rICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OgotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fTlJf ZnN0YXRhdDY0KQotKyAgICBjYXNlIF9fTlJfZnN0YXRhdDY0OgotKyNlbmRpZgotKyNpZiBkZWZp bmVkKF9fTlJfbmV3ZnN0YXRhdCkgfHwgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSsgICAgICBp ZiAoKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAqPihhcmdzLmFyZ3NbMV0pID09ICdcMCcK LSsgICAgICAgICAgJiYgYXJncy5hcmdzWzNdID09IHN0YXRpY19jYXN0PHVpbnQ2NF90PihBVF9F TVBUWV9QQVRIKSkgewotKyAgICAgICAgcmV0dXJuIHNhbmRib3g6OnN5c19mc3RhdDY0KHN0YXRp Y19jYXN0PGludD4oYXJncy5hcmdzWzBdKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWludGVycHJldF9jYXN0PHN0cnVjdCBzdGF0NjQgKj4oYXJncy5hcmdzWzJdKSk7 Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGVycm5vID0gRUFDQ0VTOwotKyAgICAgICAgcmV0 dXJuIC0xOwotKyAgICAgIH0KLSsgICAgICBicmVhazsKLSsjZW5kaWYKLSsgIH0KLSsKLSsgIENy YXNoU0lHU1lTX0hhbmRsZXIoYXJncywgYXV4KTsKLSsKLSsgIC8vIFNob3VsZCBuZXZlciBiZSBy ZWFjaGVkLgotKyAgUkFXX0NIRUNLKGZhbHNlKTsKLSsgIHJldHVybiAtRU5PU1lTOwotK30KLSsK LSBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lTKCkgewotICAgcmV0dXJuIGJwZl9kc2w6 OlRyYXAoQ3Jhc2hTSUdTWVNfSGFuZGxlciwgTlVMTCk7Ci0gfQotQEAgLTM4Nyw2ICs0MTgsMTAg QEAgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXdyaXRlU2NoZWRTSUdTWVMoKQotICAgcmV0dXJuIGJw Zl9kc2w6OlRyYXAoU0lHU1lTU2NoZWRIYW5kbGVyLCBOVUxMKTsKLSB9Ci0gCi0rYnBmX2RzbDo6 UmVzdWx0RXhwciBSZXdyaXRlRnN0YXRhdFNJR1NZUygpIHsKLSsgIHJldHVybiBicGZfZHNsOjpU cmFwKFNJR1NZU0ZzdGF0YXRIYW5kbGVyLCBOVUxMKTsKLSt9Ci0rCi0gdm9pZCBBbGxvY2F0ZUNy YXNoS2V5cygpIHsKLSAjaWYgIWRlZmluZWQoT1NfTkFDTF9OT05TRkkpCi0gICBpZiAoc2VjY29t cF9jcmFzaF9rZXkpCi1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5oLmZzdGF0Zml4IGNocm9taXVt LTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hh bmRsZXJzLmgKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hh bmRsZXJzLmguZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxNjozNi45ODI1OTgyMzYgLTA1MDAKLSsr KyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmgJMjAy MS0wMS0yNSAxMDoxODo0NS43MDUxMTEwMjcgLTA1MDAKLUBAIC02Miw2ICs2MiwxMCBAQCBTQU5E Qk9YX0VYUE9SVCBpbnRwdHJfdCBTSUdTWVNQdHJhY2VGYWlsCi0gLy8gc2NoZWRfc2V0cGFyYW0o KSwgc2NoZWRfc2V0c2NoZWR1bGVyKCkKLSBTQU5EQk9YX0VYUE9SVCBpbnRwdHJfdCBTSUdTWVNT Y2hlZEhhbmRsZXIoY29uc3QgYXJjaF9zZWNjb21wX2RhdGEmIGFyZ3MsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGF1eCk7Ci0rLy8gSWYgdGhlIGZz dGF0YXQgc3lzY2FsbCBpcyBhY3R1YWxseSBhIGRpc2d1aXNlZCBmc3RhdCwgY2FsbHMgdGhlIHJl Z3VsYXIgZnN0YXQKLSsvLyBzeXNjYWxsLCBvdGhlcndpc2UsIGNyYXNoZXMgaW4gdGhlIHNhbWUg d2F5IGFzIENyYXNoU0lHU1lTX0hhbmRsZXIuCi0rU0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lH U1lTRnN0YXRhdEhhbmRsZXIoY29uc3Qgc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdzLCAK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgp OwotIAotIC8vIFZhcmlhbnRzIG9mIHRoZSBhYm92ZSBmdW5jdGlvbnMgZm9yIHVzZSB3aXRoIGJw Zl9kc2wuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZUygp OwotQEAgLTcyLDYgKzc2LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBD cmFzaAotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdTWVNGdXRl eCgpOwotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdTWVNQdHJh Y2UoKTsKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJld3JpdGVTY2hlZFNJ R1NZUygpOwotK1NBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZUZzdGF0 YXRTSUdTWVMoKTsKLSAKLSAvLyBBbGxvY2F0ZXMgYSBjcmFzaCBrZXkgc28gdGhhdCBTZWNjb21w IGluZm9ybWF0aW9uIGNhbiBiZSByZWNvcmRlZC4KLSB2b2lkIEFsbG9jYXRlQ3Jhc2hLZXlzKCk7 Ci1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9z eXNjYWxsX3dyYXBwZXJzLmNjLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94 L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MuZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxODo1My4z MDcxNDEzMTEgLTA1MDAKLSsrKyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBl cnMuY2MJMjAyMS0wMS0yNSAxMDoxOTo0Ni45ODIzNTUyOTMgLTA1MDAKLUBAIC0yNjEsNCArMjYx LDEzIEBAIGludCBzeXNfc2lnYWN0aW9uKGludCBzaWdudW0sCi0gCi0gI2VuZGlmICAvLyBkZWZp bmVkKE1FTU9SWV9TQU5JVElaRVIpCi0gCi0rU0FOREJPWF9FWFBPUlQgaW50IHN5c19mc3RhdDY0 KGludCBmZCwgc3RydWN0IHN0YXQ2NCAqYnVmKQotK3sKLSsjaWYgZGVmaW5lZChfX05SX2ZzdGF0 NjQpCi0rICAgIHJldHVybiBzeXNjYWxsKF9fTlJfZnN0YXQ2NCwgZmQsIGJ1Zik7Ci0rI2Vsc2UK LSsgICAgcmV0dXJuIHN5c2NhbGwoX19OUl9mc3RhdCwgZmQsIGJ1Zik7Ci0rI2VuZGlmCi0rfQot KwotIH0gIC8vIG5hbWVzcGFjZSBzYW5kYm94Ci1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQu OTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmguZnN0YXRmaXggY2hy b21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVy cy5oCi0tLS0gc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmguZnN0YXRm aXgJMjAyMS0wMS0yNSAxMDoxOTo1My4xMTUzNzk3NDEgLTA1MDAKLSsrKyBzYW5kYm94L2xpbnV4 L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuaAkyMDIxLTAxLTI1IDEwOjIwOjQ1LjQ4NTU4ODQy MSAtMDUwMAotQEAgLTE3LDYgKzE3LDcgQEAgc3RydWN0IHNvY2tfZnByb2c7Ci0gc3RydWN0IHJs aW1pdDY0OwotIHN0cnVjdCBjYXBfaGRyOwotIHN0cnVjdCBjYXBfZGF0YTsKLStzdHJ1Y3Qgc3Rh dDY0OwotIAotIG5hbWVzcGFjZSBzYW5kYm94IHsKLSAKLUBAIC04NCw2ICs4NSw5IEBAIFNBTkRC T1hfRVhQT1JUIGludCBzeXNfc2lnYWN0aW9uKGludCBzaWcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uKiBhY3QsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiogb2xkYWN0KTsKLSAKLSsvLyBS ZWNlbnQgZ2xpYmMgcmV3cml0ZXMgZnN0YXQgdG8gZnN0YXRhdC4KLStTQU5EQk9YX0VYUE9SVCBp bnQgc3lzX2ZzdGF0NjQoaW50IGZkLCBzdHJ1Y3Qgc3RhdDY0ICpidWYpOwotKwotIH0gIC8vIG5h bWVzcGFjZSBzYW5kYm94Ci0gCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NFUlZJQ0VTX1NZ U0NBTExfV1JBUFBFUlNfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YTExNDIzYjJkLi4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaWRlb2dyYXBoaWNTcGFj ZUNoYXJhY3Rlci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gNzVm Zjg4MmJiNWYyZmNkMTQ0MzFlNjVmYTYzOGFlNzJiZGI0NzA4NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURh dGU6IFN1biwgMTUgTm92IDIwMjAgMTQ6MzE6MjMgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4 IGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIgY29uc3RhbnQgZm9yIHN5c3RlbSBpY3UKLQotaHR0 cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE2 ODc0MTEKLXJlbmFtZWQgaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3RlciB0byBrSWRlb2dyYXBoaWNT cGFjZUNoYXJhY3Rlci4KLS0tLQotIHRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MgYi90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwot aW5kZXggZmI4YWIwNS4uNWQ0ZWExMyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwotKysrIHRoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjCi1AQCAt NDMyLDcgKzQzMiw3IEBAIFN0cmluZyBUZXh0Q29kZWNJQ1U6OkRlY29kZShjb25zdCBjaGFyKiBi eXRlcywKLSAgIC8vIElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KLSAgIGlmICghc3RyY21wKGVu Y29kaW5nXy5HZXROYW1lKCksICJHQksiKSkgewotICAgICBpZiAoRXF1YWxJZ25vcmluZ0FTQ0lJ Q2FzZShlbmNvZGluZ18uR2V0TmFtZSgpLCAiZ2IxODAzMCIpKQotLSAgICAgIHJlc3VsdFN0cmlu Zy5SZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlcik7Ci0rICAgICAgcmVz dWx0U3RyaW5nLlJlcGxhY2UoMHhFNUU1LCBrSWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlcik7Ci0g ICAgIC8vIE1ha2UgR0JLIGNvbXBsaWFudCB0byB0aGUgZW5jb2Rpbmcgc3BlYyBhbmQgYWxpZ24g d2l0aCBHQjE4MDMwCi0gICAgIHJlc3VsdFN0cmluZy5SZXBsYWNlKDB4MDFGOSwgMHhFN0M4KTsK LSAgICAgLy8gRklYTUU6IE9uY2UgaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3df YnVnLmNnaT9pZD0yODc0MCNjMwotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NGI2ZmZmZDU0Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1pbmNsdWRlLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSBiYzM4M2E1ZGQ3ZmE4ZjJiNTM1ZjI4ODE1 ZmQ2OTMyZmJjMGQyYTQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBI YXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogV2VkLCAyOCBPY3QgMjAyMCAx NjowMDozNSArMDAwMAotU3ViamVjdDogW1BBVENIXSBJV1lVOiBpbmNsdWRlIHN0ZGRlZi5oIGZv ciBzaXplX3QKLQotLS0tCi0gdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXku aCB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24vaXR5cF9hcnJheS5oIGIvdGhpcmRfcGFydHkv ZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotaW5kZXggNDhlMDgwZi4uYzc4NDE5OCAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24vaXR5cF9hcnJheS5oCi0rKysgdGhp cmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotQEAgLTIxLDYgKzIxLDggQEAK LSAjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgotIAotKyNpbmNsdWRl IDxzdGRkZWYuaD4KLSsKLSBuYW1lc3BhY2UgaXR5cCB7Ci0gCi0gICAgIC8vIGl0eXA6OmFycmF5 IGlzIGEgaGVscGVyIGNsYXNzIHRoYXQgd3JhcHMgc3RkOjphcnJheSB3aXRoIHRoZSByZXN0cmlj dGlvbiB0aGF0Ci0tLSAKLTIuMjYuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZTQxNjFhZjQ1YzcuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1Gcm9tIDRmNDYwNDg3N2YzYjY2NmFjN2EzNzNhZTQ0 M2UzYzM3OTU0MjQ1NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhh cnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBGcmksIDYgTm92IDIwMjAgMTE6 MTg6NDIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gR0NDOiBmaXggYXR0cmlidXRlIG9uIGZ1bmN0 aW9uIGRlZmluaXRpb24KLQotR0NDIGRvZXMgbm90IGFjY2VwdCBhdHRyaWJ1dGVzIGF0IHRoZSBl bmQgZm9yIGZ1bmN0aW9uIGRlZmluaXRpb25zLgotU29sdXRpb24gaXMgdG8gbW92ZSBpdCBiZWZv cmUgZnVuY3Rpb24gbmFtZS4gT3RoZXJ3aXNlIEdDQyBmYWlscyBsaWtlCi10aGlzOgotCi0uLi8u Li9iYXNlL2NvbXBpbGVyX3NwZWNpZmljLmg6OTc6Mjg6IGVycm9yOiBhdHRyaWJ1dGVzIGFyZSBu b3QgYWxsb3dlZAotb24gYSBmdW5jdGlvbi1kZWZpbml0aW9uCi0gICA5NyB8ICNkZWZpbmUgV0FS Tl9VTlVTRURfUkVTVUxUIF9fYXR0cmlidXRlX18oKHdhcm5fdW51c2VkX3Jlc3VsdCkpCi0gICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KLQkgLi4vLi4v bWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaDozMjI6MzY6IG5vdGU6IGluCi0JIGV4cGFu c2lvbiBvZiBtYWNybyAnV0FSTl9VTlVTRURfUkVTVUxUJwotCSAgIDMyMiB8ICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVCogZGF0YSkgV0FSTl9VTlVTRURfUkVTVUxUIHsKLQkgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgotLS0t Ci0gbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaCB8IDQgKystLQotIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tZWRp YS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oIGIvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBw ZXIuaAotaW5kZXggZmQxZmQ4Mi4uZGVlZGExZiAxMDA2NDQKLS0tLSBtZWRpYS9ncHUvdmFhcGkv dmFhcGlfd3JhcHBlci5oCi0rKysgbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaAotQEAg LTMxOCw4ICszMTgsOCBAQCBjbGFzcyBNRURJQV9HUFVfRVhQT1JUIFZhYXBpV3JhcHBlcgotICAg Ly8gQ29udmVuaWVudCB0ZW1wbGF0aXplZCB2ZXJzaW9uIG9mIFN1Ym1pdEJ1ZmZlcigpIHdoZXJl IHxzaXplfCBpcyBkZWR1Y2VkIHRvCi0gICAvLyBiZSB0aGUgc2l6ZSBvZiB0aGUgdHlwZSBvZiB8 KmRhdGF8LgotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0tICBib29sIFN1Ym1pdEJ1ZmZlcihW QUJ1ZmZlclR5cGUgdmFfYnVmZmVyX3R5cGUsCi0tICAgICAgICAgICAgICAgICAgICBjb25zdCBU KiBkYXRhKSBXQVJOX1VOVVNFRF9SRVNVTFQgewotKyAgYm9vbCBXQVJOX1VOVVNFRF9SRVNVTFQg U3VibWl0QnVmZmVyKFZBQnVmZmVyVHlwZSB2YV9idWZmZXJfdHlwZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUKiBkYXRhKSB7Ci0gICAgIHJldHVybiBT dWJtaXRCdWZmZXIodmFfYnVmZmVyX3R5cGUsIHNpemVvZihUKSwgZGF0YSk7Ci0gICB9Ci0gICAv LyBCYXRjaC12ZXJzaW9uIG9mIFN1Ym1pdEJ1ZmZlcigpLCB3aGVyZSB0aGUgbG9jayBmb3IgYWNj ZXNzaW5nIGxpYnZhIGlzCi0tLSAKLTIuMjYuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBh dGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyLWRjaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZDMxYWQ3ZmVjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCkBA IC0wLDAgKzEsMTEgQEAKKy0tLSBuZXQvdGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWljL2NvcmUv cXVpY19wYXRoX3ZhbGlkYXRvci5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDg6MDYuMDAwMDAwMDAw ICswMTAwCisrKysgbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpYy9jb3JlL3F1aWNfcGF0 aF92YWxpZGF0b3IuY2MJMjAyMS0wMy0wMyAxMzoxNzo1Ni42MjQyODE0NzUgKzAxMDAKK0BAIC02 OCw3ICs2OCw3IEBACisgdm9pZCBRdWljUGF0aFZhbGlkYXRvcjo6U3RhcnRQYXRoVmFsaWRhdGlv bigKKyAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNQYXRoVmFsaWRhdGlvbkNvbnRleHQ+IGNvbnRl eHQsCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXN1bHREZWxlZ2F0ZT4gcmVzdWx0X2RlbGVnYXRl KSB7CistICBEQ0hFQ0tfTkUobnVsbHB0ciwgY29udGV4dCk7CisrICBEQ0hFQ0soY29udGV4dCk7 CisgICBRVUlDX0RMT0coSU5GTykgPDwgIlN0YXJ0IHZhbGlkYXRpbmcgcGF0aCAiIDw8ICpjb250 ZXh0CisgICAgICAgICAgICAgICAgICAgPDwgIiB2aWEgd3JpdGVyOiAiIDw8IGNvbnRleHQtPldy aXRlclRvVXNlKCk7CisgICBpZiAocGF0aF9jb250ZXh0XyAhPSBudWxscHRyKSB7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0Y2ggYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0Y2gKaW5kZXggZWRhMTFlYzg2NjMuLmY4 ZDhkNjZkYTE4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxs b2MucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNo CkBAIC0xLDI2ICsxLDExIEBACi0tLS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmln CTIwMTctMDktMTUgMDg6NDE6NDMuMDAwMDAwMDAwICswMDAwCi0rKysgYmFzZS9wcm9jZXNzL21l bW9yeV9saW51eC5jYwkyMDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5NTQ2OSArMDAwMAotQEAgLTIx LDYgKzIxLDEyIEBACi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3Ny Yy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoTElCQ19H TElCQykKLStleHRlcm4gIkMiIHsKLStleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qg c2l6ZSk7Ci0rfQotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBiYXNlIHsKLSAKLSBzaXplX3QgZ19v b21fc2l6ZSA9IDBVOwotLS0tIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDIw LTA4LTMwIDE0OjE4OjM1LjQwMTEzMjU5MyAtMDQwMAotKysrIGJhc2UvcHJvY2Vzcy9tZW1vcnlf bGludXguY2MJMjAyMC0wOC0zMCAxNDoxOTowOC4wMzAxOTkxODkgLTA0MDAKLUBAIC0xNDEsNyAr MTQxLDcgQEAKKy0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAyMS0wMy0w MiAxODo0NDo1OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4 LmNjCTIwMjEtMDMtMDMgMTI6MDU6NTcuOTUyMjk2OTg0ICswMTAwCitAQCAtMTUxLDcgKzE1MSw3 IEBACiAgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVTRV9UQ01BTExP QykpCiAgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOwogICNlbGlmIGRlZmluZWQoTElCQ19HTElC QykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpCiAtICAqcmVzdWx0ID0gX19saWJjX21hbGxv YyhzaXplKTsKLSsgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0 ID0gbWFsbG9jKHNpemUpOwogICNlbGlmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCiAgICAqcmVz dWx0ID0gdGNfbWFsbG9jX3NraXBfbmV3X2hhbmRsZXIoc2l6ZSk7CiAgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGx2bS1yZW1vdmUtdW5zdXBwb3J0ZWQtY29t cGlsZXItd2FybmluZ3MucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGx2bS1yZW1v dmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMwMTZiMDY1MjEyLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvbGx2bS1yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0tLS0gYnVpbGQvY29uZmlnL2NvbXBp bGVyL0JVSUxELmduLm9yaWcJMjAyMS0wMS0yMCAwOTowMTo0NC4zNjIxMTQzMTEgLTA1MDAKLSsr KyBidWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24JMjAyMS0wMS0yMCAwOTowMzo0MS44ODAy MzIyNDggLTA1MDAKLUBAIC0xNTM0LDkgKzE1MzQsNiBAQAotIAotICAgICAgICAgICAjIFRPRE8o aHR0cHM6Ly9jcmJ1Zy5jb20vMTAyODExMCk6IEV2YWx1YXRlIGFuZCBwb3NzaWJsZSBlbmFibGUu Ci0gICAgICAgICAgICItV25vLWRlcHJlY2F0ZWQtY29weSIsCi0tCi0tICAgICAgICAgICMgVE9E TyhodHRwczovL2NyYnVnLmNvbS8xMDUwMjgxKTogQ2xlYW4gdXAsIGVuYWJsZS4KLS0gICAgICAg ICAgIi1Xbm8tbm9uLWMtdHlwZWRlZi1mb3ItbGlua2FnZSIsCi0gICAgICAgICBdCi0gCi0gICAg ICAgICBjZmxhZ3NfYyArPSBbCi1AQCAtMTU0OCwxMyArMTU0NSw2IEBACi0gICAgICAgICAgICMg VE9ETyhodHRwczovL2NyYnVnLmNvbS8xMTQzNzAwKTogQ2xlYW4gdXAgYW5kIHJlLWVuYWJsZS4K LSAgICAgICAgICAgY2ZsYWdzX29iamMgPSBbICItV25vLWdudS1mb2xkaW5nLWNvbnN0YW50IiBd Ci0gICAgICAgICB9Ci0tCi0tICAgICAgICBpZiAoZW5hYmxlX3dtYXhfdG9rZW5zKSB7Ci0tICAg ICAgICAgIGNmbGFncyArPSBbICItV21heC10b2tlbnMiIF0KLS0gICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICMgVE9ETyhodHRwczovL2NyYnVnLmNvbS8xMDQ5NTY5KTogUmVtb3ZlIGFmdGVy IENsYW5nIDg3YjIzNWRiLgotLSAgICAgICAgICBjZmxhZ3MgKz0gWyAiLVduby1tYXgtdG9rZW5z IiBdCi0tICAgICAgICB9Ci0gICAgICAgfQotICAgICB9Ci0gICB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVk d2FpdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1w dGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAzM2E4ZWEzMmM5Yy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNCArMCwwIEBACi1Vc2UgbW9ub3RvbmljIGNsb2NrIGZvciBwdGhyZWFkX2Nv bmRfdGltZWR3YWl0IHdpdGggbXVzbCB0b28uCi0KLWRpZmYgLS1naXQgYS92OC9zcmMvYmFzZS9w bGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MgYi92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25k aXRpb24tdmFyaWFibGUuY2MKLWluZGV4IDVlYTcwODMuLmMxMzAyN2UgMTAwNjQ0Ci0tLS0gLi92 OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKLSsrKyAuL3Y4L3NyYy9i YXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5jYwotQEAgLTE2LDcgKzE2LDcgQEAgbmFt ZXNwYWNlIGJhc2UgewotIAotIENvbmRpdGlvblZhcmlhYmxlOjpDb25kaXRpb25WYXJpYWJsZSgp IHsKLSAjaWYgKFY4X09TX0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0Qg fHwgXAotLSAgICAgKFY4X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQotKyAgICAgVjhfT1Nf TElOVVgpCi0gICAvLyBPbiBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdl IGNhbiBjaGFuZ2UgdGhlIHRpbWUKLSAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVk d2FpdCgpIHRvIHVzZSB0aGUgbW9ub3RvbmljIGNsb2NrLgotICAgcHRocmVhZF9jb25kYXR0cl90 IGF0dHI7Ci1AQCAtOTIsNyArOTIsNyBAQCBib29sIENvbmRpdGlvblZhcmlhYmxlOjpXYWl0Rm9y KE11dGV4KiBtdXRleCwgY29uc3QgVGltZURlbHRhJiByZWxfdGltZSkgewotICAgICAgICZuYXRp dmVfaGFuZGxlXywgJm11dGV4LT5uYXRpdmVfaGFuZGxlKCksICZ0cyk7Ci0gI2Vsc2UKLSAjaWYg KFY4X09TX0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAotLSAg ICAgKFY4X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQotKyAgICAgVjhfT1NfTElOVVgpCi0g ICAvLyBPbiBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFu Z2UgdGhlIHRpbWUKLSAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRv IHVzZSB0aGUgbW9ub3RvbmljIGNsb2NrLgotICAgcmVzdWx0ID0gY2xvY2tfZ2V0dGltZShDTE9D S19NT05PVE9OSUMsICZ0cyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv bm8tZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZXhlY2luZm8u cGF0Y2gKaW5kZXggMzg2OTk3ZThlZDEuLmY0Mzg0MzFlZTE5IDEwMDY0NAotLS0gYS9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbm8tZXhlY2luZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCkBAIC0xLDUgKzEsNSBAQAotLS0tIGJhc2UvZGVi dWcvc3RhY2tfdHJhY2VfcG9zaXguY2Mub3JpZwkyMDE5LTA1LTE0IDE0OjQ5OjQ0LjAwMDAwMDAw MCAtMDQwMAotKysrIGJhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MJMjAxOS0wNy0wMiAx MDo0Mzo0My40OTAwNDUwMTMgLTA0MDAKKy0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4 LmNjLm9yaWcJMjAyMS0wMy0wMiAxODo0NDo1OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiYXNlL2Rl YnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCTIwMjEtMDMtMDMgMTY6MzY6MjAuOTYxNjAyNzc1ICsw MTAwCiBAQCAtMjcsNyArMjcsNyBAQAogICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQogICNp bmNsdWRlIDxjeHhhYmkuaD4KQEAgLTksNjQgKzksMyBAQAogICNpbmNsdWRlIDxleGVjaW5mby5o PgogICNlbmRpZgogIAotQEAgLTg2LDcgKzg2LDcgQEAKLSAgIC8vIE5vdGU6IGNvZGUgaW4gdGhp cyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5nIHVzZXMKLSAg IC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KLSAKLS0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp Ci0gICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKLSAgIHdoaWxlIChz ZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgewotICAgICAvLyBMb29rIGZvciB0aGUgc3RhcnQg b2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KLUBAIC0xMjEsNyArMTIxLDcg QEAKLSAgICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQgKyAyOwotICAgICB9Ci0gICB9 Ci0tI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNl bmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gfQotICNlbmRp ZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKLSAKLUBAIC0xMzMsNyArMTMzLDcgQEAKLSAg IHZpcnR1YWwgfkJhY2t0cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7Ci0gfTsKLSAKLS0j aWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gdm9pZCBPdXRwdXRQb2ludGVyKHZvaWQqIHBv aW50ZXIsIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIqIGhhbmRsZXIpIHsKLSAgIC8vIFRoaXMgc2hv dWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggdG8gc3RvcmUgYSA2NC1iaXQgbnVtYmVyIGluIGhleDoK LSAgIC8vIDE2IGhleCBkaWdpdHMgKyAxIGZvciBudWxsLXRlcm1pbmF0b3IuCi1AQCAtMjE2LDcg KzIxNiw3IEBACi0gICB9Ci0gI2VuZGlmICAvLyBkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCi0gfQot LSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjZW5k aWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotIAotIHZvaWQgUHJp bnRUb1N0ZGVycihjb25zdCBjaGFyKiBvdXRwdXQpIHsKLSAgIC8vIE5PVEU6IFRoaXMgY29kZSBN VVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcwotQEAgLTgx Miw3ICs4MTIsNyBAQAotICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFs IHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCi0gICAvLyBzdGFjayBkdW1waW5nIHNpZ25h bCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KLSAKLS0jaWYg IWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChfX0dM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gICAvLyBUaG91Z2ggdGhlIGJhY2t0cmFjZSBBUEkg bWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUgbmVnYXRpdmUKLSAgIC8vIHJldHVy biB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgotICAgcmV0dXJuIGJhc2U6OnNhdHVyYXRlZF9j YXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkpOwotQEAgLTgyNSwxMyArODI1LDEz IEBACi0gLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3Mg dXNlZCBieSBpbi1wcm9jZXNzCi0gLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5P IG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCi0gCi0tI2lmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQotICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXI7Ci0gICBQ cm9jZXNzQmFja3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhfc3RyaW5nLCAmaGFuZGxlcik7 Ci0gI2VuZGlmCi0gfQotIAotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSB2b2lkIFN0 YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9zdHJlYW0qIG9zLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZp eF9zdHJpbmcpIGNvbnN0IHsKLSAgIFN0cmVhbUJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxl cihvcyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29udGV4 dC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1nZXRjb250ZXh0LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmE0OTg3MzRjOS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNvbnRleHQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNyArMCwwIEBACi0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjLm9yaWcJMjAxNS0x Mi0wNiAwOTo1OTo1NS41NTQ1MzY2NDYgKzAxMDAKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MJMjAx NS0xMi0wNiAxMDowMToxNi44MTgyMzgwMzUgKzAxMDAKLUBAIC00NzcsNyArNDc3LDkgQEAgYm9v bCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbAotICAgc2lnaW5mby5zaV9jb2Rl ID0gU0lfVVNFUjsKLSAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7Ci0gICB1Y29udGV4dF90 IGNvbnRleHQ7Ci0rI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAgZ2V0Y29udGV4dCgmY29udGV4 dCk7Ci0rI2VuZGlmCi0gICByZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250 ZXh0KTsKLSB9Ci0gCi1AQCAtNjQ3LDkgKzY0OSwxNCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6 OldyaXRlTWluaWR1bXAoKSB7Ci0gICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAw LCAwKTsKLSAKLSAgIENyYXNoQ29udGV4dCBjb250ZXh0OwotKwotKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKLSAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29u dGV4dCk7Ci0gICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCi0gICAgIHJldHVybiBmYWxzZTsKLSsj ZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9f KQotICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4dCBpbiBtaW5pZHVtcHdyaXRlci5jYyB0aGUg c3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1z dGQtdGltZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Yz NWMyMmYwODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8t c3RkLXRpbWUucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIHVpL2FjY2Vzc2liaWxpdHkvYXhf dHJlZV9zZXJpYWxpemVyLmgub3JpZwkyMDIxLTAzLTAyIDE4OjQ2OjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHVpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZV9zZXJpYWxpemVyLmgJMjAyMS0wMy0wMyAx NDowMzo0My45MjYxNjAzMzMgKzAxMDAKK0BAIC03NDYsNyArNzQ2LDcgQEAKKyAjZW5kaWYgIC8v IGRlZmluZWQoQVhfRkFJTF9GQVNUX0JVSUxEKQorICAgICAgICAgc3RhdGljIGJvb2wgaGFzX3Nl bnRfZHVwZV9pZF9lcnIgPSBmYWxzZTsKKyAgICAgICAgIGlmICghaGFzX3NlbnRfZHVwZV9pZF9l cnIpIHsKKy0gICAgICAgICAgc3RkOjpzcmFuZChzdGQ6OnRpbWUobnVsbHB0cikpOyAgLy8gdXNl IGN1cnJlbnQgdGltZSBhcyBzZWVkLgorKyAgICAgICAgICBzdGQ6OnNyYW5kKHRpbWUobnVsbHB0 cikpOyAgLy8gdXNlIGN1cnJlbnQgdGltZSBhcyBzZWVkLgorICAgICAgICAgICBpZiAoc3RkOjpy YW5kKCkgJSA1MCA9PSAwKSB7ICAgICAvLyBSb3VnaGx5IDIlIG9mIHRoZSB0aW1lLgorICAgICAg ICAgICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNoaW5nKCk7CisgICAgICAgICAgICAg aGFzX3NlbnRfZHVwZV9pZF9lcnIgPSB0cnVlOyAgLy8gT25seSBzZW5kIG9uY2UuCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMxYTlmNmE1ZTkuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw2MCArMCwwIEBACi0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm02NF9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm02NF9saW51eF9zeXNjYWxscy5oCi1AQCAtMTA2Myw0ICsxMDYzLDggQEAKLSAjZGVmaW5lIF9f TlJfbWVtZmRfY3JlYXRlIDI3OQotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJh cnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgzCi0rI2VuZGlmCi0rCi0gI2VuZGlm ICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0FSTTY0X0xJTlVYX1NZU0NBTExTX0hf Ci0KLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5o Ci0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAot QEAgLTEzODUsNiArMTM4NSwxMCBAQAotICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgKF9fTlJf U1lTQ0FMTF9CQVNFKzM4NSkKLSAjZW5kaWYKLSAKLSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJy aWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX1NZU0NBTExfQkFTRSszODkpCi0r I2VuZGlmCi0rCi0gLy8gQVJNIHByaXZhdGUgc3lzY2FsbHMuCi0gI2lmICFkZWZpbmVkKF9fQVJN X05SX0JBU0UpCi0gI2RlZmluZSBfX0FSTV9OUl9CQVNFIChfX05SX1NZU0NBTExfQkFTRSArIDB4 RjAwMDApCi0KLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9z eXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhf c3lzY2FsbHMuaAotQEAgLTE0MjIsNSArMTQyMiw5IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2Ny ZWF0ZSAzNTYKLSAjZW5kaWYKLSAKLSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNk ZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3NQotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLS0tLSBz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCi0rKysg c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAotQEAg LTEyOTAsNSArMTI5MCw5IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzMTkKLSAjZW5k aWYKLSAKLSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1i YXJyaWVyIDMyNAotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1f SEVBREVSU19YODZfNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLS0tLSBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM3MCw2ICszNzAsNyBAQAotICAg c3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZXhpdDoKLSAgICAgY2FzZSBfX05SX2V4 aXRfZ3JvdXA6Ci0rICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgotICAgICBjYXNlIF9fTlJfd2Fp dDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDU3NTVjMjEyNS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwzNjU2ICswLDAgQEAKLWNvbW1pdCBlNzk0NGMxNjJjYTEzYjJjMzBi MTgwYzA2ZjkxN2Y0NTY0M2I4Y2NhCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ Ci1EYXRlOiAgIFR1ZSBBdWcgNCAxOTo1Nzo0OCAyMDIwICswMjAwCi0KLSAgICBwcGM2NGxlIHN1 cHBvcnQKLQotZGlmZiAtLWdpdCBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkgYnVp bGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5Ci1pbmRleCAyODZhOTJhMjcuLmVjMzZhODVk MyAxMDA3NTUKLS0tLSBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLSsrKyBidWls ZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLUBAIC0xMyw2ICsxMywxMCBAQCBpbXBvcnQg c3lzCi0gCi0gCi0gZGVmIE1haW4oYXJncyk6Ci0rICAjIElmIGBkaXNhYmxlX25hY2w9MWAgaXMg aW4gR1lQX0RFRklORVMsIGV4aXQKLSsgIGlmICdkaXNhYmxlX25hY2w9MScgaW4gb3MuZW52aXJv bi5nZXQoJ0dZUF9ERUZJTkVTJywgJycpOgotKyAgICByZXR1cm4gMAotKwotICAgc2NyaXB0X2Rp ciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQotICAgc3JjX2Rp ciA9IG9zLnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQotICAgbmFjbF9kaXIgPSBvcy5wYXRoLmpv aW4oc3JjX2RpciwgJ25hdGl2ZV9jbGllbnQnKQotZGlmZiAtLWdpdCBjaHJvbWUvaW5zdGFsbGVy L2xpbnV4L0JVSUxELmduIGNocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KLWluZGV4IGIx MDFiMGNiMi4uOWZkNWE3NjE3IDEwMDY0NAotLS0tIGNocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJ TEQuZ24KLSsrKyBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi1AQCAtOTIsOCArOTIs NiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBwYWNrYWdpbmdfZmlsZXNfYmluYXJpZXMgKyBbCi0gICAg ICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctbWltZSIsCi0gICAgICAgICAgICAg ICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0dGluZ3MiLAotICAgICAgICAgICAgICAgICAg ICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1VUy5wYWsiLAotLSAgICAgICAgICAgICAgICAg ICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9tYW5pZmVzdC5qc29uIiwKLS0gICAgICAgICAg ICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvcHJlbG9hZGVkX2RhdGEucGIiLAot ICAgICAgICAgICAgICAgICAgIF0KLSAKLSBhY3Rpb25fZm9yZWFjaCgiY2FsY3VsYXRlX2RlYl9k ZXBlbmRlbmNpZXMiKSB7Ci1AQCAtMzI5LDcgKzMyNyw2IEBAIGdyb3VwKCJpbnN0YWxsZXJfZGVw cyIpIHsKLSAgICAgIjp0aGVtZV9maWxlcyIsCi0gICAgICIvL2Nocm9tZSIsCi0gICAgICIvL2No cm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKLS0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2Vz L21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIsCi0gICAgICIvL3NhbmRib3gvbGludXg6Y2hy b21lX3NhbmRib3giLAotICAgICAiLy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9oYW5k bGVyOmNyYXNocGFkX2hhbmRsZXIiLAotICAgXQotZGlmZiAtLWdpdCBzYW5kYm94L2ZlYXR1cmVz LmduaSBzYW5kYm94L2ZlYXR1cmVzLmduaQotaW5kZXggMDkyODBkMzVmLi40MjUxNDE1N2YgMTAw NjQ0Ci0tLS0gc2FuZGJveC9mZWF0dXJlcy5nbmkKLSsrKyBzYW5kYm94L2ZlYXR1cmVzLmduaQot QEAgLTExLDYgKzExLDcgQEAgaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5nbmki KQotIHVzZV9zZWNjb21wX2JwZiA9IChpc19saW51eCB8fCBpc19hbmRyb2lkKSAmJgotICAgICAg ICAgICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0 IiB8fAotICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50 X2NwdSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJt aXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCi0rICAgICAgICAgICAgICAgICAg IGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwK LSsgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikKLSAKLSB1c2Vfc2Vj Y29tcF9icGYgPSB1c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9ub25zZmkKLWRpZmYgLS1naXQg c2FuZGJveC9saW51eC9CVUlMRC5nbiBzYW5kYm94L2xpbnV4L0JVSUxELmduCi1pbmRleCBjMjcz NTFmOWEuLjkxNDFlMTIzOSAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L0JVSUxELmduCi0rKysg c2FuZGJveC9saW51eC9CVUlMRC5nbgotQEAgLTQwNyw2ICs0MDcsOCBAQCBjb21wb25lbnQoInNh bmRib3hfc2VydmljZXMiKSB7Ci0gCi0gc291cmNlX3NldCgic2FuZGJveF9zZXJ2aWNlc19oZWFk ZXJzIikgewotICAgc291cmNlcyA9IFsKLSsgICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4 X3N5c2NhbGxzLmgiLAotKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQu aCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIiwKLSAgICAg InN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIiwKLSAgICAgInN5c3RlbV9oZWFk ZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9icGZf ZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmggc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5 c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMxMzUxMWYyMi4uMGNhM2EzMjZmIDEwMDY0NAotLS0tIHNh bmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi0rKysgc2FuZGJveC9s aW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLUBAIC01Niw2ICs1NiwxMyBAQAot ICNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIF9fTlJfc3lzY2FsbHMKLSAjZGVmaW5lIE1BWF9T WVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAotIAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgotKyNkZWZpbmUgTUlOX1NZU0NBTEwgMHUK LSsjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCAzODZ1Ci0rI2RlZmluZSBNQVhfU1lTQ0FMTCBN QVhfUFVCTElDX1NZU0NBTEwKLSsKLSAjZWxzZQotICNlcnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0 ZWN0dXJlIgotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29t cF9tYWNyb3MuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotaW5kZXgg MWE0MDdiOTUyLi5hNmFlYzU0NGUgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9icGZfZHNsL3Nl Y2NvbXBfbWFjcm9zLmgKLSsrKyBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3Mu aAotQEAgLTE2LDYgKzE2LDkgQEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMvdXNl ci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3RkZGVm Lmg+Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKy8vIE1hbnVhbGx5IGRlZmluZSBn cmVnX3Qgb24gcHBjNjQKLSt0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7Ci0gI2Vu ZGlmCi0gI2VuZGlmCi0gCi1AQCAtMzQ2LDYgKzM0OSw1MSBAQCBzdHJ1Y3QgcmVnc19zdHJ1Y3Qg ewotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5yZWdzWzNdCi0gI2Rl ZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNF0KLSAjZGVmaW5lIFNF Q0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncykucmVnc1s1XQotKwotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKwotK3R5cGVkZWYgc3Ry dWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0rCi0rI2lmZGVmIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJ QU4KLSsjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0TEUKLSsjZWxzZQotKyNk ZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKLSsjZW5kaWYKLSsKLSsjZGVmaW5l IFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltf cmVnXSkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgs IDMpCi0rI2RlZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMCkK LSsjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5uaXAK LSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTEoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVm aW5lIFNFQ0NPTVBfUEFSTTIoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNCkKLSsjZGVmaW5lIFNF Q0NPTVBfUEFSTTMoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNSkKLSsjZGVmaW5lIFNFQ0NPTVBf UEFSTTQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNikKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTUo X2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNykKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTYoX2N0eCkg U0VDQ09NUF9SRUcoX2N0eCwgOCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfTlJfSURYIChvZmZzZXRv ZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIG5yKSkKLSsjZGVmaW5lIFNFQ0NPTVBfQVJDSF9J RFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJjaCkpCi0rI2RlZmluZSBT RUNDT01QX0lQX01TQl9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyA0KQotKyNkZWZpbmUgU0VDQ09NUF9JUF9MU0JfSURY IFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3Bv aW50ZXIpICsgMCkKLSsjZGVmaW5lIFNFQ0NPTVBfQVJHX01TQl9JRFgobnIpIFwKLSsgIChvZmZz ZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyA0KQotKyNk ZWZpbmUgU0VDQ09NUF9BUkdfTFNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNo X3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDApCi0rCi0rI2RlZmluZSBTRUNDT01Q X1BUX1JFU1VMVChfcmVncykgKF9yZWdzKS5ncHJbM10KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfU1lT Q0FMTChfcmVncykgKF9yZWdzKS5ncHJbMF0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfSVAoX3JlZ3Mp IChfcmVncykubmlwCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk0xKF9yZWdzKSAoX3JlZ3MpLmdw clszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMihfcmVncykgKF9yZWdzKS5ncHJbNF0KLSsj ZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTMoX3JlZ3MpIChfcmVncykuZ3ByWzVdCi0rI2RlZmluZSBT RUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLmdwcls2XQotKyNkZWZpbmUgU0VDQ09NUF9Q VF9QQVJNNShfcmVncykgKF9yZWdzKS5ncHJbN10KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYo X3JlZ3MpIChfcmVncykuZ3ByWzhdCi0rCi0gI2Vsc2UKLSAjZXJyb3IgVW5zdXBwb3J0ZWQgdGFy Z2V0IHBsYXRmb3JtCi0gCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3kuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L2Jhc2VsaW5lX3BvbGljeS5jYwotaW5kZXggYTZkMmMwZGZiLi4zN2ZkYzE3OWEgMTAwNjQ0Ci0t LS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwot KysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MK LUBAIC04OCw3ICs4OCw4IEBAIGJvb2wgSXNCYXNlbGluZVBvbGljeVdhdGNoZWQoaW50IHN5c25v KSB7Ci0gICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJjdGwoc3lzbm8pIHx8Ci0gICAgICAgICAg U3lzY2FsbFNldHM6OklzUHJvY2Vzc0dyb3VwT3JTZXNzaW9uKHN5c25vKSB8fAotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgICAgICAgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNu bykgfHwKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAgLTIxMCw3ICsyMTEsNyBA QCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKLSAg IH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNu byA9PSBfX05SX21tYXApCi0gICAgIHJldHVybiBSZXN0cmljdE1tYXBGbGFncygpOwotICNlbmRp ZgotQEAgLTIyOCw3ICsyMjksNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50 IGZzX2RlbmllZF9lcnJubywKLSAgICAgcmV0dXJuIFJlc3RyaWN0UHJjdGwoKTsKLSAKLSAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKHN5c25vID09IF9fTlJfc29j a2V0cGFpcikgewotICAgICAvLyBPbmx5IGFsbG93IEFGX1VOSVgsIFBGX1VOSVguIENyYXNoIGlm IGFueXRoaW5nIGVsc2UgaXMgc2Vlbi4KLSAgICAgc3RhdGljX2Fzc2VydChBRl9VTklYID09IFBG X1VOSVgsCi1AQCAtMjY4LDcgKzI2OSw4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1w bChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICBpZiAoU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNubykpCi0gICAgIHJldHVybiBS ZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2Mgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5j YwotaW5kZXggZmMzNjE4N2M5Li4xYWZmYzkxODkgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwotKysrIHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MK LUBAIC0yOTEsOCArMjkxLDEwIEBAIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdGltZXJfY3Jl YXRlKQotICNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhf X05SX2V2ZW50ZmQpCi0gVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9pbm90aWZ5X2luaXQpCi0r I2lmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl92 c2VydmVyKQotICNlbmRpZgotKyNlbmRpZgotIAotICNpZiBkZWZpbmVkKExJQkNfR0xJQkMpICYm ICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotIEJQRl9URVNUX0MoQmFzZWxpbmVQb2xpY3ksIEZ1dGV4 RUlOVkFMLCBCYXNlbGluZVBvbGljeSkgewotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYyBzYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9u cy5jYwotaW5kZXggZjUxOTE1ZWRjLi5jYTJmNGYxMDYgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MK LSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJz X3Jlc3RyaWN0aW9ucy5jYwotQEAgLTQwLDcgKzQwLDggQEAKLSAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgotICNpZiAoZGVmaW5lZChPU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TX0xB Q1JPUykpICYmIFwKLSAgICAgIWRlZmluZWQoX19hcm1fXykgJiYgIWRlZmluZWQoX19hYXJjaDY0 X18pICYmICAgICAgICAgICBcCi0tICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEp Ci0rICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmCQkJICAgIFwKLSsgICAg IWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmku aCBzaW5jZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKLSAvLyB0aGUgb25l IGluIFVidW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4K LSAvLyBhc20vcHRyYWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qgb24gYXJtMzIgYW5kIFBUUkFDRV9H RVRfVEhSRUFEX0FSRUEgaXNuJ3QKLUBAIC00OSw2ICs1MCwxMSBAQAotICNlbmRpZgotICNlbmRp ZiAgLy8gIU9TX05BQ0xfTk9OU0ZJCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVk IGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5o Ci0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgot KwotICNpZiBkZWZpbmVkKE9TX0FORFJPSUQpCi0gCi0gI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xP RVhFQykKLUBAIC05OCw2ICsxMDQsMTUgQEAKLSAjZW5kaWYKLSB9Ci0gCi0raW5saW5lIGJvb2wg SXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg cmV0dXJuIHRydWU7Ci0rI2Vsc2UKLSsgIHJldHVybiBmYWxzZTsKLSsjZW5kaWYKLSt9Ci0rCi0r Ci0gLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGliYyBoYXMgYSByYWNlIGNvbmRpdGlvbiBpbiBz ZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQotIC8vIGl0IHRvIGNhbGwgZnV0ZXgoMikgd2l0aCBib2d1 cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQgdGhpcywgd2UgbmVlZAotIC8vIHRvIGFsbG93 IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwgd2l0aCBFSU5WQUwsIGluc3RlYWQgb2YgY3Jh c2hpbmcgdGhlCi1AQCAtMjM5LDYgKzI1NCw4IEBACi0gICB1aW50NjRfdCBrT0xhcmdlRmlsZUZs YWcgPSBPX0xBUkdFRklMRTsKLSAgIGlmIChJc0FyY2hpdGVjdHVyZVg4Nl82NCgpIHx8IElzQXJj aGl0ZWN0dXJlSTM4NigpIHx8IElzQXJjaGl0ZWN0dXJlTWlwcygpKQotICAgICBrT0xhcmdlRmls ZUZsYWcgPSAwMTAwMDAwOwotKyAgZWxzZSBpZiAoSXNBcmNoaXRlY3R1cmVQUEM2NCgpKQotKyAg ICBrT0xhcmdlRmlsZUZsYWcgPSAwMjAwMDAwOwotIAotICAgY29uc3QgQXJnPGludD4gY21kKDEp OwotICAgY29uc3QgQXJnPGxvbmc+IGxvbmdfYXJnKDIpOwotQEAgLTI1MywxNCArMjcwLDIzIEBA Ci0gICAgICAgICAgICAgICBGX1NFVExLVywKLSAgICAgICAgICAgICAgIEZfR0VUTEssCi0gICAg ICAgICAgICAgICBGX0RVUEZELAotLSAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDKSwKLS0g ICAgICAgICAgICAgQWxsb3coKSkKLSsgICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQwotKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gT24gUFBDNjQsIEZfU0VUTEssIEZfR0VUTEss IEZfU0VUTEtXIGFyZSBkZWZpbmVkIGFzIHRoZSA2NC1iaXQgdmFyaWFudHMKLSsvLyBidXQgZ2xp YmMgd2lsbCBzb21ldGltZXMgc3RpbGwgdXNlIHRoZSAzMi1iaXQgdmVyc2lvbnMuIEFsbG93IGJv dGguCi0rICAgICAgICAgICAgICAsCi0rICAgICAgICAgICAgICA1LCAvKiBGX0dFVExLICgzMikg Ki8KLSsgICAgICAgICAgICAgIDYsIC8qIEZfU0VUTEsgKDMyKSAqLwotKyAgICAgICAgICAgICAg NyAgLyogRl9TRVRMS1cgKDMyKSAqLwotKyNlbmRpZgotKyAgICAgICAgICAgICAgKSwKLSsgICAg ICAgICAgICBBbGxvdygpKQotICAgICAgIC5DYXNlKEZfU0VURkwsCi0gICAgICAgICAgICAgSWYo KGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZ UygpKSkKLSAgICAgICAuRGVmYXVsdChDcmFzaFNJR1NZUygpKTsKLSB9Ci0gCi0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBSZXN1bHRF eHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKSB7Ci0gICAvLyBVbmZvcnR1bmF0ZWx5LCB3 ZSBhcmUgdW5hYmxlIHRvIHJlc3RyaWN0IHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8KLSAgIC8vIHNv Y2tldHBhaXIoMikuIFdoaWxzdCBpbml0aWFsbHkgc291bmRpbmcgYmFkLCBpdCdzIG5vdGV3b3J0 aHkgdGhhdCB2ZXJ5Ci1AQCAtNDEzLDcgKzQzOSw3IEBACi0gI2VuZGlmCi0gICByZXR1cm4gU3dp dGNoKHJlcXVlc3QpCi0gICAgICAgLkNBU0VTKCgKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18p Ci0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9HRVRGUFJFR1MsIFBUUkFD RV9HRVRfVEhSRUFEX0FSRUEsCi0gICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHU0VULAot ICNlbmRpZgotCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmggc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotaW5kZXggYmE0Mjg5 ZjA1Li45YTRkNWFiMmQgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotKysrIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLUBA IC00OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJp Y3RNcHJvdGVjdEZsYWdzKCk7Ci0gLy8gT19OT05CTE9DSyB8IE9fU1lOQyB8IE9fTEFSR0VGSUxF IHwgT19DTE9FWEVDIHwgT19OT0FUSU1FLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3Vs dEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBSZXN0cmljdCBzb2NrZXRj YWxsKDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwgc2VuZCgyKSwgcmVjdigyKSwKLSAv LyBzZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigyKSwgc2VuZG1zZygyKSBhbmQgcmVj dm1zZygyKS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0U29j a2V0Y2FsbENvbW1hbmQoKTsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmNjCi1pbmRleCBkMzY5M2ZkNzguLmQ0OTJjZjk0YiAxMDA2NDQKLS0tLSBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi0rKysgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTI5LDcg KzI5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsK LSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldHRpbWVvZmRheToKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul90aW1lOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTQxLDEyICs0MiwxNCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfY2xvY2tfbmFub3NsZWVwOiAgLy8gUGFyYW1ldGVycyBmaWx0ZXJlZCBieSBSZXN0 cmljdENsb2NrSUQoKS4KLSAgICAgY2FzZSBfX05SX2Nsb2NrX3NldHRpbWU6ICAgIC8vIFByaXZp bGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2Z0aW1lOiAg Ly8gT2Jzb2xldGUuCi0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXR0aW1lb2ZkYXk6ICAvLyBQ cml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdGlt ZToKLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLUBAIC0xMTIsNyArMTE1LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfZmFjY2Vz c2F0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gICAgIGNhc2UgX19OUl9mY2htb2Rh dDoKLSAgICAgY2FzZSBfX05SX2ZjaG93bmF0OiAgLy8gU2hvdWxkIGJlIGNhbGxlZCBjaG93bmF0 ID8KLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6ICAvLyBmc3RhdGF0KCku IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLUBAIC0xMzEsNyArMTM0LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWVt ZmRfY3JlYXRlOgotICAgICBjYXNlIF9fTlJfbWtkaXJhdDoKLSAgICAgY2FzZSBfX05SX21rbm9k YXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZGxzdGF0OgotICAgICBjYXNl IF9fTlJfb2xkc3RhdDoKLSAjZW5kaWYKLUBAIC0xNDUsNyArMTQ4LDggQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJf c3RhdGZzOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3RhdGZzNjQ6Ci0gI2Vu ZGlmCi0gICAgIGNhc2UgX19OUl9zeW1saW5rYXQ6Ci1AQCAtMTU1LDcgKzE1OSw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3Ry dW5jYXRlNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91bmxpbmthdDoKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfdXRpbWU6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91dGltZW5zYXQ6ICAvLyBOZXcuCi1A QCAtMTc0LDcgKzE3OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEZpbGVTeXN0ZW1B Y2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAv LyBUT0RPKGpsbik6IHRoZXNlIHNob3VsZCBiZSBkZW5pZWQgZ3JhY2VmdWxseSBhcyB3ZWxsICht b3ZlZCBiZWxvdykuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2ZhZHZpc2U2NDogIC8vIEVQRVJNIG5vdCBhIHZh bGlkIGVycm5vLgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKQotQEAgLTE4NywxMSAr MTkzLDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2Nlc3NWaWFG ZChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Zsb2NrOiAgICAgIC8vIEVQRVJNIG5vdCBh IHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZnN0YXRmczogICAgLy8gR2l2ZSBpbmZvcm1h dGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mc3RhdGZzNjQ6Ci0gI2VuZGlm Ci0gICAgIGNhc2UgX19OUl9mc3luYzogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRmc3RhdDoKLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi1AQCAtMTk5LDYgKzIwNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEZp bGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N5bmNfZmls ZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbGlmIGRlZmluZWQoX19h cm1fXykKLSAgICAgY2FzZSBfX05SX2FybV9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIGNhc2Ug X19OUl9zeW5jX2ZpbGVfcmFuZ2UyOiAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZW5k aWYKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMjI0LDcgKzIzMyw4 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBz eXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM2NDogIC8vIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9yZWFkZGlyOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTI2NSw3ICsyNzUs NyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dldFNpbXBsZUlkKGludCBzeXNubykgewotIGJvb2wg U3lzY2FsbFNldHM6OklzUHJvY2Vzc1ByaXZpbGVnZUNoYW5nZShpbnQgc3lzbm8pIHsKLSAgIHN3 aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2NhcHNldDoKLS0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2lvcGVybTogIC8vIEludGVsIHByaXZpbGVnZS4KLSAgICAgY2FzZSBfX05SX2lvcGw6ICAg IC8vIEludGVsIHByaXZpbGVnZS4KLSAjZW5kaWYKLUBAIC0zMTYsNyArMzI2LDggQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFsSGFuZGxpbmcoaW50IHN5c25vKSB7Ci0gICAgIGNh c2UgX19OUl9ydF9zaWdyZXR1cm46Ci0gICAgIGNhc2UgX19OUl9ydF9zaWd0aW1lZHdhaXQ6Ci0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfc2lnYWN0aW9uOgotICAgICBjYXNlIF9fTlJfc2lncHJvY21hc2s6Ci0gICAgIGNhc2UgX19O Ul9zaWdyZXR1cm46Ci1AQCAtMzMyLDcgKzM0Myw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJf c2lnbmFsZmQ0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6Ci0gICAgIGNhc2UgX19OUl9zaWdzdXNwZW5kOgot ICNlbmRpZgotQEAgLTM1Niw3ICszNjgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRP cGVyYXRpb25PbkZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZHVwMzoK LSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2h1 dGRvd246Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtMzkwLDcgKzQwMiw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgotICAgICBjYXNlIF9fTlJfd2FpdDQ6Ci0g ICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3dh aXRwaWQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDA3LDcgKzQxOSw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25v KSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0gICAgIGNhc2Ug X19OUl91bnNoYXJlOgotLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJj aDY0X18pCi0rI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6Ci0gI2VuZGlm Ci0gICAgIGRlZmF1bHQ6Ci1AQCAtNDU2LDcgKzQ2OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVl OwotICAgICBkZWZhdWx0OgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGluc3BlY3QgaXRz IGFyZ3VtZW50LgotICNlbmRpZgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC00NjYsNyArNDc4 LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5 c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQg c3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5l ZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWNjZXB0OgotICAgICBjYXNlIF9fTlJfYWNjZXB0 NDoKLSAgICAgY2FzZSBfX05SX2JpbmQ6Ci1AQCAtNDgxLDcgKzQ5Myw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gfQotIAotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBm b3Igc29ja2V0cy4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7 Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtNDk1LDcgKzUwOCw4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gYm9vbCBTeXNjYWxs U2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2gg KHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKLUBAIC01MjAsNyArNTM0LDcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNu bykgewotICAgICBjYXNlIF9fTlJfbWluY29yZToKLSAgICAgY2FzZSBfX05SX21sb2NrYWxsOgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbW1h cDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBcCi1AQCAtNTUwLDcgKzU2NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVy YWxJbyhpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2xz ZWVrOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0g ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX19sbHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQot QEAgLTU2MiwyNiArNTc3LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJ byhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3JlYWR2OgotICAgICBjYXNlIF9fTlJfcHJl YWQ2NDoKLSAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2OgotICNl bmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICAgICBjYXNlIF9fTlJfcmVj dm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3NlbGVjdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlmCi0gI2lmIGRlZmlu ZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZG1zZzogIC8vIENv dWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gICAgIGNhc2UgX19OUl9zZW5kdG86ICAgLy8gQ291 bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBAIC02MzgsNyArNjU1LDggQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25vKSB7Ci0gICAg ICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToKLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uaWNlOgot ICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjUwLDcgKzY2OCw4IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewot IGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0 Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2tleGVj X2xvYWQ6Ci1AQCAtNjY2LDcgKzY4NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVy YXRpb24oaW50IHN5c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJuZWxNb2R1bGUo aW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2NyZWF0ZV9t b2R1bGU6Ci0gICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91bGQgRU5PU1lT LgotICAgICBjYXNlIF9fTlJfcXVlcnlfbW9kdWxlOgotQEAgLTY5OSw3ICs3MTksOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N3 YXBvZmY6Ci0gICAgIGNhc2UgX19OUl9zd2Fwb246Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3Vtb3VudDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3Vtb3VudDI6 Ci1AQCAtNzE1LDcgKzczNiw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX2dldGNwdToKLSAgICAgY2FzZSBfX05SX21iaW5kOgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbWlncmF0ZV9w YWdlczoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6Ci1AQCAtNzQ0LDE0ICs3 NjUsMTUgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJvbm1lbnQoaW50 IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9hY2N0OiAgLy8g UHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0r ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX2dldHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX2FybV9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VsaW1p dDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKLUBAIC03ODUsNyArODA3LDcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50IHN5c25vKSB7Ci0g I2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeXNpbmZvOgotICAgICBjYXNlIF9fTlJfdW5hbWU6Ci0t I2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZHVuYW1lOgotICAgICBjYXNlIF9fTlJf b2xkb2xkdW5hbWU6Ci0gI2VuZGlmCi1AQCAtODQ3LDggKzg2OSwxNiBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubykgewotIH0KLSAjZW5kaWYKLSAKLSsv KiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdzIDQuMTkga2VybmVsIGhlYWRlcnMgbWlzc2luZyB0 aG9zZSBudW1iZXJzICovCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQo X19OUl9zaG1nZXQpCi0rI2RlZmluZSBfX05SX3NobWdldCAzOTUKLSsjZGVmaW5lIF9fTlJfc2ht Y3RsIDM5NgotKyNkZWZpbmUgX19OUl9zaG1hdCAzOTcKLSsjZGVmaW5lIF9fTlJfc2htZHQgMzk4 Ci0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAv LyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNl dHVpZCBzYW5kYm94LgotIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNoYXJlZE1lbW9yeShp bnQgc3lzbm8pIHsKLUBAIC04ODAsNyArOTEwLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0 ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubykgewotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSBi b29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci1AQCAtOTAwLDcgKzkzMSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQW55U3lzdGVt VihpbnQgc3lzbm8pIHsKLSAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8pIHx8 IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8Ci0gICAgICAgICAgSXNTeXN0ZW1WU2hhcmVk TWVtb3J5KHN5c25vKTsKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICByZXR1cm4gSXNT eXN0ZW1WSXBjKHN5c25vKTsKLSAjZW5kaWYKLSB9Ci1AQCAtOTUzLDcgKzk4NSw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzRmFOb3RpZnkoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6 SXNUaW1lcihpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05S X2dldGl0aW1lcjoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWxhcm06Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19O Ul9zZXRpdGltZXI6Ci1AQCAtMTAxMiwxOCArMTA0NSwyMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c01pc2MoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jZnM6Ci0gICAgIGNhc2UgX19O Ul92aGFuZ3VwOgotIC8vIFRoZSBzeXN0ZW0gY2FsbHMgYmVsb3cgYXJlIG5vdCBpbXBsZW1lbnRl ZC4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfYWZzX3N5c2NhbGw6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2JyZWFrOgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9n ZXRwbXNnOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9ndHR5OgotICAgICBjYXNlIF9fTlJfaWRsZToKLSAgICAgY2FzZSBfX05SX2xvY2s6Ci1AQCAt MTAzMSwyMCArMTA2OCwyMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9wcm9mOgotICAgICBjYXNlIF9fTlJfcHJvZmlsOgotICNlbmRpZgot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9wdXRwbXNnOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18p Ci0gICAgIGNhc2UgX19OUl9zZWN1cml0eToKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfc3R0eToKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX3g4Nl82 NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3R1eGNhbGw6Ci0gI2VuZGlmCi0tI2lmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKQotKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3ZzZXJ2ZXI6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7 Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuaCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLWlu ZGV4IDkyMzUzM2VjOS4uNDExZjcyYWNkIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotQEAgLTQzLDEzICs0MywxNCBAQCBjbGFzcyBTQU5E Qk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMgYm9vbCBJc0RlbmllZEdldE9yTW9k aWZ5U29ja2V0KGludCBzeXNubyk7Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0g ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIC8v IEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCi0gICBzdGF0aWMgYm9v bCBJc1NvY2tldENhbGwoaW50IHN5c25vKTsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0g ICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgc3RhdGljIGJvb2wgSXNOZXR3b3JrU29ja2V0SW5mb3Jt YXRpb24oaW50IHN5c25vKTsKLSAjZW5kaWYKLSAKLUBAIC03Niw3ICs3Nyw3IEBAIGNsYXNzIFNB TkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNlbWFw aG9yZXMoaW50IHN5c25vKTsKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBc Ci0gICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzY0X0JJVFMpKQotICAgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBh bmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KLSAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNo YXJlZE1lbW9yeShpbnQgc3lzbm8pOwotQEAgLTg4LDcgKzg5LDggQEAgY2xhc3MgU0FOREJPWF9F WFBPUlQgU3lzY2FsbFNldHMgewotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsLgotICAgc3RhdGlj IGJvb2wgSXNTeXN0ZW1WSXBjKGludCBzeXNubyk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3N5c2NhbGwuY2MKLWluZGV4IGU0N2U5OGJmNS4uZDUzYTdmZjU2IDEwMDY0NAotLS0tIHNhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvc3lzY2FsbC5jYwotQEAgLTE4LDcgKzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggewot IG5hbWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVm aW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQg KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAvLyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkg dXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCi0gY29uc3QgaW50IGtJbnZhbGlkU3lzY2Fs bE51bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UKLUBAIC0zMTAsMTIgKzMxMCw1NiBAQCBhc20oLy8g V2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlcm5lbCBleGFjdGx5IHdoZXJlIHdlIG1h ZGUgYQotICAgICAvLyBFbnRlciB0aGUga2VybmVsCi0gICAgICJzdmMgMFxuIgotICAgICAiMjpy ZXRcbiIKLSsgICAgIi5jZmlfZW5kcHJvY1xuIgotKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1T eXNjYWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAiLnRleHRc biIKLSsgICAgIi5hbGlnbiA0XG4iCi0rICAgICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxu IgotKyAgICAiU3lzY2FsbEFzbTpcbiIKLSsgICAgIi5jZmlfc3RhcnRwcm9jXG4iCi0rCi0rICAg IC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCi0rICAgICJjbXBkaSAzLCAwXG4iCi0rICAgICJi Z3QgMmZcbiIKLSsKLSsgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVy bgotKyAgICAibWZsciAxMFxuIgotKyAgICAiYmwgMWZcbiIKLSsgICAgIjE6IG1mbHIgM1xuIgot KyAgICAibXRsciAxMFxuIgotKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCi0rICAgICJibHJcbiIK LSsKLSsgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgKLSsgICAgLy8g c2F2ZSBwYXJhbSAzIGluIHIxMAotKyAgICAiMjpcbiIKLSsgICAgIm1yIDAsIDNcbiIKLSsgICAg ImxkIDMsIDAoNClcbiIKLSsgICAgImxkIDUsIDE2KDQpXG4iCi0rICAgICJsZCA2LCAyNCg0KVxu IgotKyAgICAibGQgNywgMzIoNClcbiIKLSsgICAgImxkIDgsIDQwKDQpXG4iCi0rICAgICJsZCA0 LCA4KDQpXG4iCi0rICAgICJsaSA5LCAwXG4iCi0rCi0rICAgIC8vIEVudGVyIGtlcm5lbAotKyAg ICAic2NcbiIKLSsKLSsgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKLSsgICAgIjM6XG4iCi0r ICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZl LgotKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJv cgotKyAgICAiYmMgNCwgMywgNGZcbiIKLSsgICAgIm5lZyAzLCAzXG4iCi0rICAgICI0OiBibHJc biIKLSsKLSAgICAgIi5jZmlfZW5kcHJvY1xuIgotICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1T eXNjYWxsQXNtXG4iCi0gI2VuZGlmCi0gICAgICk7ICAvLyBhc20KLSAKLS0jaWYgZGVmaW5lZChf X3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSBleHRlcm4gIkMiIHsKLSBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBj b25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9Ci1AQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90 IFN5c2NhbGw6OkNhbGwoaW50IG5yLAotICAgICByZXQgPSBpbm91dDsKLSAgIH0KLSAKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5y LCBhcmdzKTsKLSAjZWxzZQotICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCi0g I2VuZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29u dGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgICAgLy8gbmVlZHMg dG8gYmUgY2hhbmdlZCBiYWNrLgotICAgICByZXRfdmFsID0gLXJldF92YWw7Ci0gICAgIFNFQ0NP TVBfUEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVsc2UKLSsgIH0gZWxzZSB7Ci0gICAgIFNFQ0NPTVBf UEFSTTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3Ig cmVnaXN0ZXIgKGNyMC5TTykKLSsgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQw OTUpIHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotKyAgICBjdHgtPnVjX21jb250ZXh0LnJl Z3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9IGVsc2UgewotKyAgICBjdHgtPnVjX21jb250ZXh0 LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNV TFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7Ci0gfQotZGlmZiAtLWdpdCBz YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi90cmFwLmNjCi1pbmRleCA5ODg0YmU4YmIuLjk4ZTQzNzFhYSAxMDA2NDQKLS0tLSBzYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3RyYXAuY2MKLUBAIC0yMzIsNiArMjMyLDIwIEBAIHZvaWQgVHJhcDo6U2lnU3lzKGludCBuciwg TGludXhTaWdJbmZvKiBpbmZvLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgICAgICBTZXRJc0luU2ln SGFuZGxlcigpOwotICAgICB9Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAg Ly8gT24gcHBjNjQrZ2xpYmMsIHNvbWUgc3lzY2FsbHMgc2VlbSB0byBhY2NpZGVudGFsbHkgbmVn YXRlIHRoZSBmaXJzdAotKyAgICAvLyBwYXJhbWV0ZXIgd2hpY2ggY2F1c2VzIGNoZWNrcyBhZ2Fp bnN0IGl0IHRvIGZhaWwuIEZvciBub3csIG1hbnVhbGx5Ci0rICAgIC8vIG5lZ2F0ZSB0aGVtIGJh Y2suCi0rICAgIC8vIFRPRE8oc2hhd25AYW5hc3Rhcy5pbyk6IGludmVzdGlnYXRlIHRoaXMgaXNz dWUgZnVydGhlcgotKyAgICBhdXRvIG5yID0gU0VDQ09NUF9TWVNDQUxMKGN0eCk7Ci0rICAgIGlm IChuciA9PSBfX05SX29wZW5hdCB8fCBuciA9PSBfX05SX21rZGlyYXQgfHwgbnIgPT0gX19OUl9m YWNjZXNzYXQgfHwgbnIgPT0gX19OUl9yZWFkbGlua2F0IHx8Ci0rICAgICAgICBuciA9PSBfX05S X3JlbmFtZWF0IHx8IG5yID09IF9fTlJfcmVuYW1lYXQyIHx8IG5yID09IF9fTlJfbmV3ZnN0YXRh dCB8fCBuciA9PSBfX05SX3VubGlua2F0KSB7Ci0rICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50 PihTRUNDT01QX1BBUk0xKGN0eCkpID4gMCkgewotKyAgICAgICAgICAgIFNFQ0NPTVBfUEFSTTEo Y3R4KSA9IC1TRUNDT01QX1BBUk0xKGN0eCk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsjZW5kaWYK LSsKLSAgICAgLy8gQ29weSB0aGUgc2VjY29tcC1zcGVjaWZpYyBkYXRhIGludG8gYSBhcmNoX3Nl Y2NvbXBfZGF0YSBzdHJ1Y3R1cmUuIFRoaXMKLSAgICAgLy8gaXMgd2hhdCB3ZSBhcmUgc2hvd2lu ZyB0byBUcmFwRm5jIGNhbGxiYWNrcyB0aGF0IHRoZSBzeXN0ZW0gY2FsbAotICAgICAvLyBldmFs dWF0b3IgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzYW5kYm94LgotZGlmZiAtLWdpdCBzYW5kYm94L2xp bnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjIHNhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVu dGlhbHMuY2MKLWluZGV4IGQ3YjVkOGM0NC4uNGFkYzZkMGQ0IDEwMDY0NAotLS0tIHNhbmRib3gv bGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlcnZpY2Vz L2NyZWRlbnRpYWxzLmNjCi1AQCAtODEsNyArODEsNyBAQCBib29sIENocm9vdFRvU2FmZUVtcHR5 RGlyKCkgewotICAgcGlkX3QgcGlkID0gLTE7Ci0gICBhbGlnbmFzKDE2KSBjaGFyIHN0YWNrX2J1 ZltQVEhSRUFEX1NUQUNLX01JTl07Ci0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICAgLy8gVGhlIHN0YWNrIGdyb3dzIGRvd253 YXJkLgotICAgdm9pZCogc3RhY2sgPSBzdGFja19idWYgKyBzaXplb2Yoc3RhY2tfYnVmKTsKLSAj ZWxzZQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMu Y2Mgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi1pbmRleCBmY2Zk MmFhMTIuLmY2ZWIzMmZiNyAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2Nh bGxfd3JhcHBlcnMuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBl cnMuY2MKLUBAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Nsb25lKHVuc2lnbmVkIGxvbmcgZmxh Z3MsCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQotICAgcmV0dXJuIHN5c2NhbGwoX19O Ul9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlkLCB0bHMpOwotICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwK LS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBD T05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCi0gICByZXR1cm4gc3lzY2FsbChfX05SX2Ns b25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywgY3RpZCk7Ci0gI2VuZGlmCi1kaWZm IC0tZ2l0IHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2Mgc2Fu ZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotaW5kZXggODMyMWQy Mzc5Li43ZTVhZDFkZTMgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9i cm9rZXJfcHJvY2Vzcy5jYwotKysrIHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2Vy X3Byb2Nlc3MuY2MKLUBAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBCcm9rZXJQcm9jZXNzOjpJc1N5 c2NhbGxBbGxvd2VkKGludCBzeXNubykgY29uc3QgewotICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRh dCkKLSAgICAgY2FzZSBfX05SX2ZzdGF0YXQ6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9uZXdmc3RhdGF0OgotICNlbmRpZgotICAgICAgIHJldHVybiAhZmFzdF9jaGVja19p bl9jbGllbnRfIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFUKTsKLWRp ZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmggc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgKLWluZGV4IGE2MGZlMmFk My4uOWRjY2RiNTFkIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc2VjY29tcC5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNj b21wLmgKLUBAIC0yOSw2ICsyOSw5IEBACi0gI2lmbmRlZiBFTV9BQVJDSDY0Ci0gI2RlZmluZSBF TV9BQVJDSDY0IDE4MwotICNlbmRpZgotKyNpZm5kZWYgRU1fUFBDNjQKLSsjZGVmaW5lIEVNX1BQ QzY0IDIxCi0rI2VuZGlmCi0gCi0gI2lmbmRlZiBfX0FVRElUX0FSQ0hfNjRCSVQKLSAjZGVmaW5l IF9fQVVESVRfQVJDSF82NEJJVCAweDgwMDAwMDAwCi1AQCAtNTQsNiArNTcsMTIgQEAKLSAjaWZu ZGVmIEFVRElUX0FSQ0hfQUFSQ0g2NAotICNkZWZpbmUgQVVESVRfQVJDSF9BQVJDSDY0IChFTV9B QVJDSDY0IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQotICNlbmRpZgot KyNpZm5kZWYgQVVESVRfQVJDSF9QUEM2NAotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NCAoRU1f UFBDNjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQpCi0rI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNI X1BQQzY0TEUKLSsjZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjRMRSAoRU1fUFBDNjQgfCBfX0FVRElU X0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0rI2VuZGlmCi0gCi0gLy8gRm9yIHByY3Rs LmgKLSAjaWZuZGVmIFBSX1NFVF9TRUNDT01QCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9s aW51eF9zaWduYWwuaAotaW5kZXggZjVhNzM2NzYxLi41MTViMjFhNWYgMTAwNjQ0Ci0tLS0gc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotKysrIHNhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLUBAIC0xMyw3ICsxMyw3IEBACi0gLy8g KG5vdCB1bmRlZmluZWQsIGJ1dCBkZWZpbmVkIGRpZmZlcmVudCB2YWx1ZXMgYW5kIGluIGRpZmZl cmVudCBtZW1vcnkKLSAvLyBsYXlvdXRzKS4gU28sIGZpbGwgdGhlIGdhcCBoZXJlLgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gCi0gI2RlZmluZSBMSU5VWF9TSUdIVVAg MQotICNkZWZpbmUgTElOVVhfU0lHSU5UIDIKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bGludXhfc3lzY2FsbHMuaAotaW5kZXggMmI3OGEwY2MzLi4wYTcwZjVlYTUgMTAwNjQ0Ci0tLS0g c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1AQCAtMzUsNSArMzUsOSBA QAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5 c2NhbGxzLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5j bHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5o IgotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19M SU5VWF9TWVNDQUxMU19IXwotIAotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3Vjb250ZXh0Lmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF91 Y29udGV4dC5oCi1pbmRleCAyMmNlNzgwMjcuLmE2OWIwMjRjMiAxMDA2NDQKLS0tLSBzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKLSsrKyBzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKLUBAIC0xMSw2ICsxMSw4IEBACi0gI2lu Y2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0Lmgi Ci0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9pMzg2X2xpbnV4X3Vjb250ZXh0LmgiCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xp bnV4X3Vjb250ZXh0LmgiCi0gI2Vsc2UKLSAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIHlvdXIgYXJj aGl0ZWN0dXJlIGluIFBOYUNsIGhlYWRlciIKLSAjZW5kaWYKLWRpZmYgLS1naXQgc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAwMC4uY2NhY2ZmZTIyCi0tLS0gL2Rldi9udWxsCi0rKysgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1AQCAtMCwwICsx LDEyIEBACi0rLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0rLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCi0rCi0rI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJ TlVYX1NZU0NBTExTX0hfCi0rI2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQ QzY0X0xJTlVYX1NZU0NBTExTX0hfCi0rCi0rI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KLSsKLSsv L1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSBzeXNjYWxsIG51bWJlcnMgZm9yIFBQ QzY0PwotKwotKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9M SU5VWF9TWVNDQUxMU19IXwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3Vjb250ZXh0Lmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2 NF9saW51eF91Y29udGV4dC5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAw Li4wNzcyOGUwODcKLS0tLSAvZGV2L251bGwKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsvLyBDb3B5cmln aHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVm IFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KLSsj ZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRf SF8KLSsKLSsjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Ci0rCi0rLy9UT0RPOiBpcyBpdCBuZWNl c3NhcnkgdG8gcmVkZWZpbmUgdWNvbnRleHQgb24gUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5E Qk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hfCi1kaWZmIC0t Z2l0IHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9w b2xpY3lfbGludXguY2Mgc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBm X3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotaW5kZXggZmI4OWIzMzU2Li4xZTk4NDczMWUgMTAw NjQ0Ci0tLS0gc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5j YwotKysrIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MK LUBAIC0xNSw2ICsxNSwxMSBAQAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3N5c2NhbGxzLmgiCi0gI2luY2x1ZGUgInNlcnZpY2VzL3NlcnZpY2VfbWFuYWdl ci9zYW5kYm94L2xpbnV4L3NhbmRib3hfbGludXguaCIKLSAKLSsvLyBPbiBQUEM2NCwgVENHRVRT IGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVk ZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNsdWRlIDx0ZXJtaW9zLmg+ Ci0rI2VuZGlmCi0rCi0gLy8gVE9ETyh2aWduYXR0aSk6IHJlcGxhY2UgdGhlIGxvY2FsIGRlZmlu aXRpb25zIGJlbG93IHdpdGggI2luY2x1ZGUKLSAvLyA8bGludXgvZG1hLWJ1Zi5oPiBvbmNlIGtl cm5lbCB2ZXJzaW9uIDQuNiBiZWNvbWVzIHdpZGVseSB1c2VkLgotICNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNs YXRvci9JbmZvU2luay5oIHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9y L0luZm9TaW5rLmgKLWluZGV4IDNhODA3ZTFlLi41MjU4NjE3YSAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi0rKysgdGhpcmRf cGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotQEAgLTkyLDcg KzkyLDE2IEBAIGNsYXNzIFRJbmZvU2lua0Jhc2UKLSAgICAgICAgICAgICBzdHJlYW0ucHJlY2lz aW9uKDgpOwotICAgICAgICAgICAgIHN0cmVhbSA8PCBmOwotICAgICAgICAgfQotLSAgICAgICAg c2luay5hcHBlbmQoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAgICAgIC8vIEhhY2sgdG8gd29yayBh cm91bmQgYSBidWcgd2hlcmUgbmVnYXRpdmUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCi0rICAgICAg ICAvLyBhcmUgcmVuZGVyZWQgbGlrZSAnLjAuNScgaW5zdGVhZCBvZiAnLTAuNScKLSsgICAgICAg IHN0ZDo6c3RyaW5nIHJlcyhzdHJlYW0uc3RyKCkpOwotKwotKyAgICAgICAgaWYgKHNpZ25iaXQo ZikpIHsgLy8gdGVzdCBpZiBmIGlzIG5lZ2F0aXZlCi0rICAgICAgICAgICAgcmVzWzBdID0gJy0n OwotKyAgICAgICAgfQotKwotKyAgICAgICAgc2luay5hcHBlbmQocmVzKTsKLSAgICAgICAgIHJl dHVybiAqdGhpczsKLSAgICAgfQotICAgICAvLyBXcml0ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVp ciBuYW1lcyBpbnN0ZWFkIG9mIGludGVncmFsIHZhbHVlLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmggdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xp YkFOR0xFL0NvbnN0YW50cy5oCi1pbmRleCA0Mjk2NGNjMS4uNjYwN2RlZWIgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi0rKysgdGhpcmRfcGFy dHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi1AQCAtOSw2ICs5LDcgQEAKLSAjaWZu ZGVmIExJQkFOR0xFX0NPTlNUQU5UU19IXwotICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hf Ci0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgot IAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYm9yaW5nc3Ns L0JVSUxELmduIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotaW5kZXggYjQzNTQ5OWY0 Li5hYzhhODRiNmQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi0r KysgdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1AQCAtMTAxLDYgKzEwMSwxMyBAQCBp ZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1ICE9ICJhcm02NCIpIHsKLSAgICAg ICB9IGVsc2UgewotICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIg XQotICAgICAgIH0KLSsgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0r ICAgICAgaWYgKGlzX2xpbnV4KSB7Ci0rICAgICAgICAjIFRPRE86IHBwYzY0IChiZSkgY2hlY2sK LSsgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhfcHBjNjRsZQotKyAgICAg IH0gZWxzZSB7Ci0rICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBd Ci0rICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5v X2FzbV9jb25maWciIF0KLSAgICAgfQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9C VUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotaW5kZXggNTYxN2RlODguLmRj OGJjMTc2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0rKysgdGhp cmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC01OTgsNyArNTk4LDYgQEAgaWYgKGlzX2xp bnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9taW5pZHVt cF9maWxlX3dyaXRlci5oIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VU Ri5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVydF9VVEYuaCIsCi0tICAg ICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIiwKLSAg ICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmNjIiwKLSAgICAg ICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgiLAotICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZnV0aWxzLmNjIiwKLUBAIC02MzYsNiArNjM1LDE0 IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0gCi0gICAgIGxpYnMgPSBbICJkbCIg XQotIAotKyAgICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICAgICAgZGVmaW5l cyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAgICB9IGVsc2UgewotKyAgICAgICAgc291cmNl cyArPSBbCi0rICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRf Z2V0Y29udGV4dC5TIgotKyAgICAgICAgXQotKyAgICB9Ci0rCi0gICAgIGluY2x1ZGVfZGlycyA9 IFsKLSAgICAgICAiLiIsCi0gICAgICAgImJyZWFrcGFkL3NyYyIsCi1AQCAtNjg2LDcgKzY5Myw2 IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0gICAgICAgImJyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYyIs Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlcl91bml0dGVzdF91dGlscy5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL3Byb2NfY3B1aW5mb19yZWFkZXJfdW5pdHRlc3QuY2Mi LAotLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHRf dW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3Jl X2R1bXBfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Zp bGVfaWRfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2xp bnV4X2xpYmNfc3VwcG9ydF91bml0dGVzdC5jYyIsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19j b250ZXh0X2NwdS5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1pbmRleCAwN2Q5MTcxYS4u OWFlZDRjYjMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLSsrKyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi9yYXdfY29udGV4dF9jcHUuaAotQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0Nv bnRleHRBUk0gUmF3Q29udGV4dENQVTsKLSB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBS YXdDb250ZXh0Q1BVOwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBNRFJhd0Nv bnRleHRNSVBTIFJhd0NvbnRleHRDUFU7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot K3R5cGVkZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKLSAjZWxzZQotICNlcnJv ciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgot ICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJl YWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTMuLjAzYWZlYzdhIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3RocmVhZF9pbmZvLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLUBAIC0yNzAsNyAr MjcwLDQyIEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0KSBjb25zdCB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsK LSAjZW5kaWYKLSB9Ci0tI2VuZGlmICAvLyBfX21pcHNfXwotKwotKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2lu dGVyKCkgY29uc3QgewotKyAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotK30K LSsKLSt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkg Y29uc3QgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7 Ci0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkr KykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tpXTsKLSsKLSsgICAg b3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKLSsgICAgb3V0LT5zcnIwID0gbWNv bnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNycjEgPSBtY29udGV4dC5ncF9yZWdz W1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0rICAg IG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwotKyAgICBvdXQtPmN0ciA9IG1j b250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmZs b2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5m bG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rCi0rICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspCi0r ICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPSBcCi0rICAgICAgICAgICAgeygo KHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwgMzIpIAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bMV0sIAotKyAgICAgICAgICAgICgoKHVpbnQ2NF90 KXZyZWdzLnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwg dnJlZ3MudnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2cmVncy52cnNhdmU7 Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLnZzY3IudnNjcl93 b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAK LSt9Ci0rI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCi0gCi0gdm9pZCBUaHJlYWRJbmZvOjpHZXRH ZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0g ICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKLUBAIC0yNzksNiArMzE0LDExIEBAIHZvaWQgVGhy ZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVf dCogc2l6ZSkgewotICAgICAqZ3BfcmVncyA9IG1jb250ZXh0LmdyZWdzOwotICAgaWYgKHNpemUp Ci0gICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdyZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBpZiAoZ3BfcmVncykKLSsgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5n cF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdwX3Jl Z3MpOwotICNlbHNlCi0gICBpZiAoZ3BfcmVncykKLSAgICAgKmdwX3JlZ3MgPSAmcmVnczsKLUBA IC0yOTQsNiArMzM0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lz dGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpmcF9yZWdzID0gJm1j b250ZXh0LmZwcmVnczsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4 dC5mcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChmcF9yZWdz KQotKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAg ICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZnBfcmVn cykKLSAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOwotQEAgLTMwMiw0ICszNDcsMTMgQEAgdm9pZCBU aHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXpl X3QqIHNpemUpIHsKLSAjZW5kaWYKLSB9Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSt2b2lkIFRocmVhZEluZm86OkdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXpl X3QqIHNpemUpIHsKLSsgICAgaWYgKHZfcmVncykKLSsgICAgICAgICp2X3JlZ3MgPSAmdnJlZ3M7 Ci0rICAgIGlmIChzaXplKQotKyAgICAgICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOwotK30KLSsj ZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3RocmVhZF9pbmZvLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotaW5kZXggZmIyMTZm YTYuLjU5M2FhYzgyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLSsrKyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi90aHJlYWRfaW5mby5oCi1AQCAtNjgsNiArNjgsMTAgQEAgc3RydWN0IFRocmVhZEluZm8g ewotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91c2VyLmg+Ci0gICBz dHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOwotICAgc3RydWN0IHVzZXJfZnBzaW1kX3N0cnVj dCBmcHJlZ3M7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gVXNlIHRoZSBz dHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KLSsgIG1jb250ZXh0X3QgbWNv bnRleHQ7Ci0rICB2cnJlZ3NldF90IHZyZWdzOwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0g ICAvLyBVc2UgdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCi0gICBt Y29udGV4dF90IG1jb250ZXh0OwotQEAgLTg0LDYgKzg4LDExIEBAIHN0cnVjdCBUaHJlYWRJbmZv IHsKLSAKLSAgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgZmxvYXQgcG9pbnQg cmVnaXN0ZXIgYXJlYS4KLSAgIHZvaWQgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiog ZnBfcmVncywgc2l6ZV90KiBzaXplKTsKLSsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiB0aGUgdmVjdG9yIHJlZ2lzdGVy IGFyZWEuIChQUEM2NCBvbmx5KQotKyAgdm9pZCBHZXRWZWN0b3JSZWdpc3RlcnModm9pZCoqIHZf cmVncywgc2l6ZV90KiBzaXplKTsKLSsjZW5kaWYKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotaW5kZXggZWU1MTVjNDEuLjEwOTA0NzBmIDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0 X3JlYWRlci5jYwotQEAgLTI1NCw2ICsyNTQsNDggQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6Rmls bENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1Yykgewot ICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29udGV4dC5mcGNfZWlyOyAgLy8gVW51 c2VkLgotICNlbmRpZgotIH0KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0r dWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRf dCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRf UFBDNjRfUkVHX1NQXTsKLSt9Ci0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0 cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwotK3ZvaWQgVUNvbnRleHRSZWFkZXI6 OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCog dnJlZ3MpIHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxM OwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5U OyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ld OwotKwotKyAgICBvdXQtPmxyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsgICAg Ci0rICAgIG91dC0+c3JyMCA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAg IG91dC0+c3JyMSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+ Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IHVj LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAgIG91dC0+Y3RyID0gdWMtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmZs b2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rCi0rICAg IG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW05GUFJFRy0x XTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJf Q09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci0rICAg ICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzFdLCAKLSsgICAgICAgICAg ICAgKCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZl ID0gdnJlZ3MtPnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwg dnJlZ3MtPnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFs aWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rCi0gI2VuZGlmCi0gCi0gfSAgLy8gbmFtZXNwYWNlIGdv b2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaCB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuaAotaW5kZXggOGU3NGE4YTUuLjdjYjY2N2E3IDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93 cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmgKLUBAIC01NSw2ICs1NSw5IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRlciB7Ci0gI2VsaWYg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0Nv bnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7Ci0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3 Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdzKTsKLSAjZWxzZQotICAgc3RhdGlj IHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90 ICp1Yyk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuY2MKLWluZGV4IGM2NWZlYWExLi41YTdhYjUwYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hh bmRsZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLUBAIC00NjEsOSArNDYxLDE2IEBAIGJv b2wgRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludCAvKnNpZyovLCBzaWdpbmZvX3Qq IGluZm8sIHZvaWQqIHVjKSB7Ci0gICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9z dGF0ZSwgZnBfcHRyLAotICAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8uZmxvYXRf c3RhdGUpKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBPbiBQ UEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0YXRlCi0rICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNv bnRleHRfdCopdWM7Ci0rICBpZiAodWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3MpIHsKLSsgICAg bWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSwgdWNfcHRyLT51Y19tY29udGV4 dC52X3JlZ3MsCi0rICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3Rh dGUpKTsKLSsgIH0KLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQotICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkgb24gQVJNIExp bnV4LgotLSAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFy dCBvZiB1Y29udGV4dF90Ci0rICAvLyBJbiBjYXNlIG9mIE1JUFMsIExpbnV4IEZQIHN0YXRlIGlz IGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90Ci0gICAvLyBhbmQgJ2Zsb2F0X3N0YXRlJyBpcyBu b3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250ZXh0LgotICAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVj b250ZXh0X3QqKXVjOwotICAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQuZnByZWdzKSB7Ci1AQCAt NzAxLDExICs3MDgsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkg ewotICAgfQotICNlbmRpZgotIAotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZp bmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18p IFwKLSsgICAgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIC8vIEZQVSBzdGF0ZSBpcyBu b3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgotICAgbWVtY3B5KCZjb250ZXh0LmZsb2F0 X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdzLAotICAgICAgICAgIHNp emVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7Ci0gI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsgIC8vIFZlY3RvciByZWdpc3RlcnMgbXVzdCBiZSBjb3BpZWQgb24gUFBD NjQKLSsgIG1lbWNweSgmY29udGV4dC52ZWN0b3Jfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19t Y29udGV4dC52X3JlZ3MsCi0rICAgICAgICAgc2l6ZW9mKGNvbnRleHQudmVjdG9yX3N0YXRlKSk7 Ci0rI2VuZGlmCi0rCi0gICBjb250ZXh0LnRpZCA9IHN5c19nZXR0aWQoKTsKLSAKLSAgIC8vIEFk ZCBhbiBleGNlcHRpb24gc3RyZWFtIHRvIHRoZSBtaW5pZHVtcCBmb3IgYmV0dGVyIHJlcG9ydGlu Zy4KLUBAIC03MjYsNiArNzQxLDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlk dW1wKCkgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBjb250ZXh0LnNpZ2luZm8uc2lf YWRkciA9Ci0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVj X21jb250ZXh0LnBjKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb250ZXh0 LnNpZ2luZm8uc2lfYWRkciA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4 dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSk7Ci0gI2Vsc2UKLSAjZXJyb3Ig IlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAj ZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLWlu ZGV4IGY0NDQ4M2ZmLi4zNmNlNmQ2YyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotKysr IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5oCi1AQCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25I YW5kbGVyIHsKLSAgICAgc2lnaW5mb190IHNpZ2luZm87Ci0gICAgIHBpZF90IHRpZDsgIC8vIHRo ZSBjcmFzaGluZyB0aHJlYWQuCi0gICAgIHVjb250ZXh0X3QgY29udGV4dDsKLS0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4 dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgotKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEg c3RydWN0IGlzIG5lZWRlZC4KLSsgICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOwotKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIC8vICNpZmRl ZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBM aW51eCBBUk0uCi0gICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJl YWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbwotICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCBy ZXF1aXJlZC4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXggOGQ4ODA5ZmEuLmUyZWIwMzFlIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVz dC5jYwotQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBQYXJh bGxlbENoaWxkQ3Jhc2hlc0RvbnRIYW5nKSB7Ci0gICB9Ci0gCi0gICAvLyBXYWl0IGEgd2hpbGUg dW50aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQuCi0tICB1c2xlZXAoMTAwMDAwMCk7 Ci0rICB1c2xlZXAoMjAwMDAwMCk7Ci0gICAvLyBLaWxsIHRoZSBjaGlsZCBpZiBpdCBpcyBzdGls bCBydW5uaW5nLgotICAga2lsbChjaGlsZCwgU0lHS0lMTCk7Ci0gCi1AQCAtNTU5LDYgKzU1OSw4 IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0cnVjdGlvbltdID0gewotICNpZiBk ZWZpbmVkKF9fbWlwc19fKQotICAgLy8gbWZjMiB6ZXJvLEltcGwgLSB1c3VhbGx5IGlsbGVnYWwg aW4gdXNlcnNwYWNlLgotICAgMHg0OCwgMHgwMCwgMHgwMCwgMHg0OAotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEgLy8gQ3Jhc2hlcyBvbiBh IHRlc3RlZCBQT1dFUjkgY3B1Ci0gI2Vsc2UKLSAgIC8vIFRoaXMgY3Jhc2hlcyB3aXRoIFNJR0lM TCBvbiB4ODYveDg2LTY0L2FybS4KLSAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKLUBAIC03NTQs MTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBJbnN0cnVjdGlvblBvaW50 ZXJNZW1vcnlNYXhCb3VuZCkgewotIAotICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0 aGUgcGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVjayB0aGUKLSAgIC8vIGRhdGEgZnJvbSB0aGUg bWluaWR1bXAgYWZ0ZXJ3YXJkcy4KLS0gIC8vIFVzZSA0ayBoZXJlIGJlY2F1c2UgdGhlIE9TIHdp bGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0rICAvLyBVc2UgdGhlIHBhZ2Ugc2l6ZSBo ZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0gICAv LyBpZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0ZWQsIGFuZCB0aGlzIHRlc3Qgd2FudHMgdG8K LSAgIC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCi0tICBjb25z dCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7ICAvLyBieXRlcwotKyAgY29uc3QgdWludDMy X3Qga01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgpOyAgLy8gYnl0ZXMKLSAgIGNvbnN0IGludCBr T2Zmc2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yoa0lsbGVnYWxJbnN0cnVjdGlvbik7Ci0gCi0g ICBjb25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVt cF93cml0ZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLWluZGV4IGZhM2MxNzEzLi42 Y2U3MDllMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotKysrIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyLmNjCi1AQCAtMTM4LDcgKzEzOCw5IEBAIGNsYXNzIE1pY3JvZHVt cFdyaXRlciB7Ci0gICAgICAgICAgICAgICAgICAgY29uc3QgTWljcm9kdW1wRXh0cmFJbmZvJiBt aWNyb2R1bXBfZXh0cmFfaW5mbywKLSAgICAgICAgICAgICAgICAgICBMaW51eER1bXBlciogZHVt cGVyKQotICAgICAgIDogdWNvbnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5V TEwpLAotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRl eHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCi0rI2VsaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIGZsb2F0X3N0YXRlXyhj b250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCi0gI2VuZGlmCi0gICAgICAg ICBkdW1wZXJfKGR1bXBlciksCi1AQCAtMzM3LDYgKzMzOSw4IEBAIGNsYXNzIE1pY3JvZHVtcFdy aXRlciB7Ci0gIyBlbHNlCi0gIyAgZXJyb3IgIlRoaXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5v dCBzdXBwb3J0ZWQgKG4zMikiCi0gI2VuZGlmCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyAgICBjb25zdCBjaGFyIGtBcmNoW10gPSAicHBjNjQiOwotICNlbHNlCi0gI2Vycm9yICJU aGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKLSAjZW5k aWYKLUBAIC00MDksNyArNDEzLDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAgIHZvaWQg RHVtcENQVVN0YXRlKCkgewotICAgICBSYXdDb250ZXh0Q1BVIGNwdTsKLSAgICAgbXlfbWVtc2V0 KCZjcHUsIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0XywgdmVj dG9yX3N0YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKLSAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250 ZXh0XywgZmxvYXRfc3RhdGVfKTsKLSAjZWxzZQotICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQ VUNvbnRleHQoJmNwdSwgdWNvbnRleHRfKTsKLUBAIC02MDUsNyArNjExLDkgQEAgY2xhc3MgTWlj cm9kdW1wV3JpdGVyIHsKLSAgIHZvaWQqIEFsbG9jKHVuc2lnbmVkIGJ5dGVzKSB7IHJldHVybiBk dW1wZXJfLT5hbGxvY2F0b3IoKS0+QWxsb2MoYnl0ZXMpOyB9Ci0gCi0gICBjb25zdCB1Y29udGV4 dF90KiBjb25zdCB1Y29udGV4dF87Ci0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRl ZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnN0IGdv b2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rvcl9zdGF0ZV87Ci0rI2VsaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnN0IGdvb2ds ZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0ZV87Ci0gI2VuZGlmCi0gICBM aW51eER1bXBlciogZHVtcGVyXzsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJf dW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLWluZGV4IDYz MzlhYzBjLi4yOTFhZjEwNiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0 dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1AQCAtMjc5 LDEwICsyNzksMTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJUZXN0LCBCYXNpY1dpdGhNYXBwaW5n cykgewotICAgQ3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGluZ3MsIE1pY3JvZHVtcEV4dHJhSW5m bygpLCAmYnVmKTsKLSAgIEFTU0VSVF9UUlVFKENvbnRhaW5zTWljcm9kdW1wKGJ1ZikpOwotIAot KyAgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0gI2lmZGVmIF9fTFA2NF9fCi0tICBB U1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0tICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAw MDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgotLSAgICAg ICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9v LnNvIikpOwotKyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgZm9sbG93 aW5nIHBhZ2Ugc2l6ZXMKLSsgIEFTU0VSVF9UUlVFKChwYWdlX3NpemUgPT0gNDA5NikgfHwgKHBh Z2Vfc2l6ZSA9PSA2NTUzNikpOwotKyAgaWYgKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB7IAotKyAgICBB U1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAgICAgICAgICBidWYuZmluZCgiTSAw MDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0rICAg ICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxp YmZvby5zbyIpKTsKLSsgIH0gZWxzZSB7Ci0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBv cywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAwMDAw MDAwMDAyQSAwMDAwMDAwMDAwMDEwMDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIy MTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfQotICNlbHNl Ci0gICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0gICAgICAgICAgICAgYnVmLmZpbmQo Ik0gMDAwMDEwMDAgMDAwMDAwMkEgMDAwMDEwMDAgIgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5kZXggNDE1MDY4OTgu LmI5M2U0YWZjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCi0rKysgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLUBAIC0xMTIsNiArMTEyLDkgQEAgYm9vbCBMaW51eENv cmVEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyog aW5mbykgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAg ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9D T05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg c3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+ bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vy cm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIK LSAjZW5kaWYKLUBAIC0xOTcsNyArMjAwLDEwIEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpFbnVt ZXJhdGVUaHJlYWRzKCkgewotICAgICAgICAgbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoVGhyZWFk SW5mbykpOwotICAgICAgICAgaW5mby50Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOwotICAgICAgICAg aW5mby5wcGlkID0gc3RhdHVzLT5wcl9wcGlkOwotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMx OyBpKyspCi0rICAgICAgICAgICAgaW5mby5tY29udGV4dC5ncF9yZWdzW2ldID0gc3RhdHVzLT5w cl9yZWdbaV07Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjaWYgZGVmaW5lZChfX0FORFJP SURfXykKLSAgICAgICAgIGZvciAoaW50IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7IGkrKykKLSAg ICAgICAgICAgaW5mby5tY29udGV4dC5ncmVnc1tpIC0gRUZfUjBdID0gc3RhdHVzLT5wcl9yZWdb aV07Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIu Y2MKLWluZGV4IDExMTIwMzViLi44NTIzZGFkNiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1w ZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MKLUBAIC03NjUsNyArNzY1LDkgQEAgYm9v bCBMaW51eER1bXBlcjo6R2V0U3RhY2tJbmZvKGNvbnN0IHZvaWQqKiBzdGFjaywgc2l6ZV90KiBz dGFja19sZW4sCi0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW50X3N0YWNrX3Bv aW50ZXIgJiB+KHBhZ2Vfc2l6ZSAtIDEpKTsKLSAKLSAgIC8vIFRoZSBudW1iZXIgb2YgYnl0ZXMg b2Ygc3RhY2sgd2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCi0tICBzdGF0aWMgY29uc3QgcHRyZGlm Zl90IGtTdGFja1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKLSsgIC8vIFRoaXMgbm93IGRlcGVuZHMg b24gcGFnZV9zaXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQotKyAgLy8gb24gc3lzdGVtcyB3aXRo IGxhcmdlciBwYWdlIHNpemVzLgotKyAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0Nh cHR1cmUgPSA4ICogcGFnZV9zaXplOwotIAotICAgY29uc3QgTWFwcGluZ0luZm8qIG1hcHBpbmcg PSBGaW5kTWFwcGluZyhzdGFja19wb2ludGVyKTsKLSAgIGlmICghbWFwcGluZykKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLWluZGV4IGY0YTc1 ZDkwLi4wMjA5ODFmNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotKysrIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFr cGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJTzMyKQotIHR5 cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0gI2VsaWYgZGVmaW5lZChfX3g4Nl82 NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgICAgKGRlZmluZWQoX19taXBzX18p ICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQotKyAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9N SVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g dHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZW5kaWYKLSAKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1w ZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzYWQ0OGU1MC4uMTY4OGMzNjUgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotKysrIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLUBAIC01MSw2ICs1MSw4IEBACi0gI2RlZmluZSBU SURfUFRSX1JFR0lTVEVSICJyY3giCi0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjZGVmaW5l IFRJRF9QVFJfUkVHSVNURVIgIiQxIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsj ZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBo YXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YwotaW5kZXggZTNkZGI4MWEuLmZhMjg1NzVlIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFj ZV9kdW1wZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi1AQCAtMTQ5LDE5 ICsxNDksMjcgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6Q29weUZyb21Qcm9jZXNzKHZvaWQq IGRlc3QsIHBpZF90IGNoaWxkLAotICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLWJvb2wgTGludXhQ dHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZvLCBwaWRfdCB0aWQp Ci0tewotK2Jvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJbmZv KiBpbmZvLCBwaWRfdCB0aWQpIHsKLSAjaWZkZWYgUFRSQUNFX0dFVFJFR1NFVAotICAgc3RydWN0 IGlvdmVjIGlvOwotICAgaW5mby0+R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnMoJmlvLmlvdl9i YXNlLCAmaW8uaW92X2xlbik7Ci0tICBpZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0 aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSsgIGlmIChwdHJh Y2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8p ID09IC0xKSB7Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLSAKLSAgIGluZm8tPkdldEZsb2F0 aW5nUG9pbnRSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0tICBpZiAoc3lz X3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQq KSZpbykgPT0gLTEpIHsKLSsgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9p ZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7Ci0gICAgIHJldHVybiBmYWxzZTsK LSAgIH0KLSsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gR3JhYiB0aGUgdmVj dG9yIHJlZ2lzdGVycyBvbiBQUEM2NCB0b28KLSsgIGluZm8tPkdldFZlY3RvclJlZ2lzdGVycygm aW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLSsgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NF VCwgdGlkLCAodm9pZCopTlRfUFBDX1ZNWCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSsgICAgcmV0 dXJuIGZhbHNlOwotKyAgfQotKyNlbmRpZiAvLyBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0g ICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAgcmV0dXJuIGZhbHNlOwotQEAgLTI5OCw2ICszMDYs OSBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJbmRleChzaXplX3Qg aW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAg c3RhY2tfcG9pbnRlciA9Ci0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+ bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOwotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgIHN0YWNrX3BvaW50ZXIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdf U1BdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5 b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFj ZV9kdW1wZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5j YwotaW5kZXggZWE2YjlhMTIuLjliMzE4ZmUwIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFj ZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0 ZXN0LmNjCi1AQCAtNDYyLDYgKzQ2Miw5IEBAIFRFU1QoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBW ZXJpZnlTdGFja1JlYWRXaXRoTXVsdGlwbGVUaHJlYWRzKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21p cHNfXykKLSAgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KLSAgICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdyZWdzWzFdKTsKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlv biA9Ci0rICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4 dC5ncF9yZWdzWzhdKTsKLSAjZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBv cnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotQEAgLTU1OSw2ICs1NjIsOCBAQCBURVNU X0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5pdGl6ZVN0YWNrQ29weSkgewotICAgdWludHB0 cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJlZ3MucmN4OwotICNlbGlmIGRlZmluZWQoX19t aXBzX18pCi0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3Jl Z3NbMV07Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgdWludHB0cl90IGhlYXBf YWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdwX3JlZ3NbOF07Ci0gI2Vsc2UKLSAjZXJyb3Ig VGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl ci5jYwotaW5kZXggZjhjZGYyYTEuLmNiODA4YzE1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotQEAgLTEzNiw3ICsxMzYs OSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAot ICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0aCksCi0gICAgICAgICB1Y29udGV4dF8oY29udGV4 dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg ICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBO VUxMKSwKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQotICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUg OiBOVUxMKSwKLSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC00NjgsNyAr NDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgICAgaWYgKCFjcHUuQWxsb2Nh dGUoKSkKLSAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgbXlfbWVtc2V0KGNwdS5n ZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRl eHRfLCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0 KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0gICAgICAgICBV Q29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOwotQEAg LTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgIGRpcmVudC0+bG9j YXRpb24ucnZhID0gMDsKLSAgIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUlu Zm8qIHN5c19pbmZvKSB7Ci0gICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1 Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07Ci0gICAgIHN0YXRpYyBjb25zdCBj aGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKLUBAIC05MTcsNyArOTIxLDkgQEAg Y2xhc3MgTWluaWR1bXBXcml0ZXIgewotIAotICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0ZWN0dXJl IHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0Ci0gICAgIHN5c19pbmZvLT5wcm9j ZXNzb3JfYXJjaGl0ZWN0dXJlID0KLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NDsKLSsj ZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICMgaWYgX01JUFNfU0lNID09IF9BQklPMzIKLSAgICAg ICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQUzsKLSAjIGVsaWYgX01JUFNfU0lNID09IF9BQkk2 NAotQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgIGNvbnN0 IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1bSBzaG91 bGQgYmUgd3JpdHRlbi4KLSAKLSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0Xzsg IC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFC SV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsK LSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAg Y29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsgIC8v IGRpdHRvCi0gI2VuZGlmCi0gICBMaW51eER1bXBlciogZHVtcGVyXzsKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyLmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLWluZGV4IGUzYjBi MTZkLi5jY2Q4YWEwYSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotKysrIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL21pbmlkdW1wX3dyaXRlci5oCi1AQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBFeGNlcHRpb25I YW5kbGVyOwotIAotICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotIHR5cGVkZWYgc3RydWN0IGZw c2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r dHlwZWRlZiB2cnJlZ3NldF90IHZzdGF0ZV90OwotICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBzdGQ6OnJlbW92ZV9wb2ludGVyPGZw cmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5j YwotaW5kZXggMzAxN2E0OWEuLjM2NGVmZDc5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYwot QEAgLTcxNSw2ICs3MTUsOSBAQCBURVNUKE1pbmlkdW1wV3JpdGVyVGVzdCwgSW52YWxpZFN0YWNr UG9pbnRlcikgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICBjb250ZXh0LmNvbnRleHQu dWNfbWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0gPQotICAgICAgIGludmFs aWRfc3RhY2tfcG9pbnRlcjsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb250 ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0g PQotKyAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSAjZWxzZQotICMgZXJyb3IgIlRoaXMg Y29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51 eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLWluZGV4IDRlOTM4MjY5Li5mMGZm MTVkOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi1AQCAtNjUsOCAr NjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChjb25zdCBjaGFyKiBwYXRoLCBzaXpl X3Qgb2Zmc2V0KSB7Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgXAotLSAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0g PT0gX0FCSTY0KQotLQotKyAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FC STY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdHJ1Y3Qga2VybmVsX3N0YXQgc3Q7 Ci0gICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8IHN0LnN0X3NpemUgPCAwKSB7Ci0g I2Vsc2UKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1v bi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3Qu Y2MKLWluZGV4IGZhZDU5ZjQwLi42MTY0OTZkNiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVz dC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgv bWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1AQCAtMTc2LDkgKzE3NiwxMCBAQCBURVNU X0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIFJlbWFwQWZ0ZXJNYXApIHsKLSBURVNUX0YoTWVtb3J5 TWFwcGVkRmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsKLSAgIC8vIFB1dCBtb3JlIGRhdGEgaW4g dGhlIHRlc3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMgY2FuIG9ubHkgYmUKLSAgIC8vIGRvbmUg b24gcGFnZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEgdHdvIHBhZ2UgZmlsZSB0byB0ZXN0IHRo aXMuCi0tICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5NjsKLS0gIGNoYXIgZGF0YTFbMiAqIHBh Z2Vfc2l6ZV07Ci0tICBzaXplX3QgZGF0YTFfc2l6ZSA9IHNpemVvZihkYXRhMSk7Ci0rICBjb25z dCBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSsgIGNoYXIgKmRhdGExID0gc3RhdGlj X2Nhc3Q8Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXplKSk7Ci0rICBFWFBFQ1RfVFJVRShkYXRh MSAhPSBOVUxMKTsKLSsgIHNpemVfdCBkYXRhMV9zaXplID0gKDIgKiBwYWdlX3NpemUpOwotICAg Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXplOyArK2kpIHsKLSAgICAgZGF0YTFbaV0g PSBpICYgMHg3ZjsKLSAgIH0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwot aW5kZXggNDNjODYzMTQuLjI3MzI1YjgxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotKysrIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91 bml0dGVzdC5jYwotQEAgLTU3LDggKzU3LDkgQEAKLSAKLSAgIEVYUEVDVF9FUSgwVSwgYWxsb2Nh dG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0 PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoMTAwMDApKTsKLSsgIHVpbnQ2NF90IGV4cGVjdGVk X3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAvIGdldHBhZ2VzaXplKCkpOwotICAgQVNTRVJUX0ZB TFNFKHAgPT0gTlVMTCk7Ci0tICBFWFBFQ1RfRVEoM1UsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0 ZWQoKSk7Ci0rICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGFnZXMsIGFsbG9jYXRvci5wYWdlc19hbGxv Y2F0ZWQoKSk7Ci0gICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgMTA7ICsraSkgewotICAgICB1 aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKGkp KTsKLSAgICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2Mg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0 eV9saW51eC5jYwotaW5kZXggY2NjOWYxNDUuLmRlYmFlZDRkIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXgu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxv aXRhYmlsaXR5X2xpbnV4LmNjCi1AQCAtMjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBsb2l0YWJp bGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdhbFdyaXRlKHVpbnQ2NF90IGluc3RydWN0aW9uX3B0cikg ewotICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBzZXQgYXJjaGl0ZWN0dXJlIHZhcmlhYmxl IHRvIGNvcnJlc3BvbmRpbmcgZmxhZwotICAgLy8gaW4gb2JqZHVtcC4KLSAgIHN3aXRjaCAoY29u dGV4dC0+R2V0Q29udGV4dENQVSgpKSB7Ci0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVk KF9feDg2XzY0KQotICAgICBjYXNlIE1EX0NPTlRFWFRfWDg2OgotICAgICAgIGFyY2hpdGVjdHVy ZSA9ICJpMzg2IjsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSBNRF9DT05URVhUX0FNRDY0Ogot ICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02NCI7Ci0gICAgICAgYnJlYWs7Ci0rI2Vu ZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLy8gVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBO b3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5vdAotICAgICAgIC8vIHN1cHBvcnRlZCBi ZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBBUk0uCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRl c3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYwotaW5kZXggNTI4ZWU1ZjIuLjcyNzY0ZDZjIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxp dHlfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJv Y2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi1AQCAtMTA0LDYgKzEwNCw4IEBAIEV4 cGxvaXRhYmlsaXR5Rm9yKGNvbnN0IHN0cmluZyYgZmlsZW5hbWUpIHsKLSB9Ci0gCi0gVEVTVChF eHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0rLy8gVGhlIGZvbGxvd2lu ZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5l LgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChf X3g4Nl82NCkpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9I SUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJhc2NpaV9yZWFkX2F2LmRtcCIp KTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1A QCAtMTM2LDkgKzEzOCwxMiBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NF bmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVy X3dyaXRlLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklM SVRZX0xPVywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRp b25hbC5kbXAiKSk7Ci0rI2VuZGlmCi0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBU ZXN0TGludXhFbmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1 dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCi0rI2lmIGRlZmluZWQoX19pMzg2 KSB8fCBkZWZpbmVkKF9feDg2XzY0KQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQ TE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3Io ImxpbnV4X251bGxfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRh YmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxp dHlGb3IoImxpbnV4X2V4ZWN1dGFibGVfaGVhcC5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xl X2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmls aXR5Rm9yKCJsaW51eF9qbXBfdG9fbW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKLS0jaWZu ZGVmIF9XSU4zMgotKyNlbmRpZgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9f aTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJs aW51eF93cml0ZV90b19ub253cml0YWJsZV9tb2R1bGUuZG1wIikpOwotICAgQVNTRVJUX0VRKGdv b2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xODIsMTAgKzE4OCwxMCBA QCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0gICAgICAgICAg ICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9t YXRoLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZ X0lOVEVSRVNUSU5HLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0 ZV90b191bmRlcl80ay5kbXAiKSk7Ci0tI2VuZGlmICAvLyBfV0lOMzIKLSsjZW5kaWYgIC8vICFk ZWZpbmVkKF9XSU4zMikgJiYgKCFkZWZpbmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQp KQotIH0KLSAKLS0jaWZuZGVmIF9XSU4zMgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZp bmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0gVEVTVChFeHBsb2l0YWJpbGl0eUxp bnV4VXRpbHNUZXN0LCBEaXNhc3NlbWJsZUJ5dGVzVGVzdCkgewotICAgQVNTRVJUX0ZBTFNFKEV4 cGxvaXRhYmlsaXR5TGludXhUZXN0OjpEaXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxM KSk7Ci0gICB1aW50OF90IGJ5dGVzWzZdID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgw fTsKLUBAIC0zMDEsNiArMzA3LDcgQEAgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0 LCBDYWxjdWxhdGVBZGRyZXNzVGVzdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsK LSB9Ci0tI2VuZGlmICAvLyBfV0lOMzIKLSsjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYg KGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSsKLSAKLSB9ICAvLyBuYW1l c3BhY2UKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xz L2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotaW5kZXgg YTYwYmUzMjMuLjM1YjExYjZkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotKysrIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1w LTItY29yZS5jYwotQEAgLTc3LDYgKzc3LDggQEAKLSAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX01J UFMKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1f QUFSQ0g2NAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICNkZWZpbmUgRUxGX0FS Q0ggIEVNX1BQQzY0Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC04Nyw2 ICs4OSw4IEBAIHR5cGVkZWYgdXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VsaWYgZGVm aW5lZCAoX19taXBzX18pCi0gLy8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxpZmllcyB0 aGUgc291cmNlIGNvZGUuCi0gdHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVjdDsKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyB1c2Vy X3JlZ3Nfc3RydWN0OwotICNlbmRpZgotIAotIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6TURUeXBl SGVscGVyOwotQEAgLTMyMSw2ICszMjUsOSBAQCBzdHJ1Y3QgQ3Jhc2hlZFByb2Nlc3MgewotICNl bmRpZgotICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgICB1c2VyX2Zwc2ltZF9zdHJ1Y3Qg ZnByZWdzOwotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIG1jb250 ZXh0X3QgbWNvbnRleHQ7Ci0gI2VuZGlmCi0gICAgIHVpbnRwdHJfdCBzdGFja19hZGRyOwotICAg ICBjb25zdCB1aW50OF90KiBzdGFjazsKLUBAIC01MzUsNiArNTQyLDM4IEBAIFBhcnNlVGhyZWFk UmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSAgIHRocmVhZC0+bWNv bnRleHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZmlyOwotICNlbmRpZgotIH0KLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rc3RhdGljIHZvaWQKLStQYXJzZVRocmVhZFJl Z2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCi0rICAgICAgICAgICAgICAg ICAgICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFuZ2UpIHsKLSsgIGNvbnN0IE1EUmF3 Q29udGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0YTxNRFJhd0NvbnRleHRQUEM2ND4o MCk7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5U OyBpKyspCi0rICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tpXSA9IHJhd3JlZ3MtPmdwcltp XTsKLSsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdID0gcmF3cmVncy0+bHI7 Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSA9IHJhd3JlZ3MtPnNycjA7Ci0r ICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9IHJhd3JlZ3MtPnNycjE7Ci0rICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJhd3JlZ3MtPmNyOwotKyAgdGhyZWFk LT5tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdzLT54ZXI7Ci0rICB0aHJlYWQtPm1j b250ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0cjsKLSsgIHRocmVhZC0+bWNvbnRl eHQudl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7Ci0rCi0rICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAgICAgIHRo cmVhZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnByZWdzW2ld OwotKwotKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXSA9IHJhd3JlZ3MtPmZs b2F0X3NhdmUuZnBzY3I7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVB UkVBX1BQQ19WUl9DT1VOVDsgaSsrKSB7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3Mt PnZycmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaCA+PiAz MjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzFdID0gcmF3cmVn cy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQu dl9yZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxv dyA+PiAzMjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzNdID0g cmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7Ci0rICB9Ci0rCi0rICB0aHJlYWQt Pm1jb250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5z YXZlX3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKLSt9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMg Y29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgot QEAgLTYyMyw2ICs2NjIsMTIgQEAgUGFyc2VTeXN0ZW1JbmZvKGNvbnN0IE9wdGlvbnMmIG9wdGlv bnMsIENyYXNoZWRQcm9jZXNzKiBjcmFzaGluZm8sCi0gIyBlbHNlCi0gIyAgZXJyb3IgIlRoaXMg bWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCi0gIyBlbmRpZgotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJj aGl0ZWN0dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQpIHsKLSsgICAgZnByaW50Zihz dGRlcnIsCi0rICAgICAgICAgICAgIlRoaXMgdmVyc2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25s eSBzdXBwb3J0cyBQUEM2NC5cbiIpOwotKyAgICBleGl0KDEpOwotKyAgfQotICNlbHNlCi0gI2Vy cm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIK LSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJ QlVUT1JTIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotaW5kZXgg ODcyNGI3ZjMuLjhlMjk0MjRlIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL0NPTlRSSUJVVE9SUwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRS SUJVVE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFyayBNZW50b3ZhaSA8bWFya0BjaHJvbWl1bS5v cmc+Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0ub3JnPgotIFNjb3R0IEdyYWhhbSA8 c2NvdHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVhIFBlcmF6YSA8anBlcmF6YUBjaHJvbWl1bS5v cmc+Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBhbmFzdGFzLmlvPgotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotaW5kZXggNmVk NzdhOTguLjFmZDgzNDY5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLUBAIC0xNSw2ICsxNSw3IEBACi0gI2lmbmRlZiBD UkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAjZGVmaW5lIENSQVNIUEFEX0NPTVBB VF9MSU5VWF9TWVNfVVNFUl9IXwotIAotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlX25l eHQgPHN5cy91c2VyLmg+Ci0gCi0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaCB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgK LWluZGV4IDNhM2U2MDNjLi4zMTE4ZDllOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLUBAIC01OTIsNiAr NTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRleHRNSVBTNjQgewotICAgdWludDY0X3QgZmly OwotIH07Ci0gCi0rLy8hIFxicmllZiBwcGM2NC1zcGVjaWZpYyBmbGFncyBmb3IgTWluaWR1bXBQ UEM2NDo6Y29udGV4dF9mbGFncwotKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQuaCBm cm9tIGJyZWFrcGFkCi0rZW51bSBNaW5pZHVtcENvbnRleHRQUEM2NEZsYWdzIDogdWludDMyX3Qg ewotKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRoZSBjb250ZXh0IGFzIFBQQzY0LgotKyAga01p bmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAwMCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNh dGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLgotKyAgLy8hCi0r ICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBuaXBgLCBgbXNyYCwgYGxyYCwgZXRjLiBhcmUg dmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlID0ga01pbmlkdW1wQ29udGV4dFBQ QzY0IHwgMHgwMDAwMDAwMSwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0 eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMg YGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2 NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwOCwKLSsKLSsgIC8v ISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBBbHRpdmVjL1ZNWCByZWdpc3RlcnMu Ci0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHYwYC1gdjMxYCwgYHZzY3JgLCBgdnJzYXZlYC4K LSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvciA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8 IDB4MDAwMDAwMjAsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2Yg YWxsIHJlZ2lzdGVycwotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0QWxsID0ga01pbmlkdW1wQ29u dGV4dFBQQzY0QmFzZSAgICAgfAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAga01pbmlk dW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg a01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCi0rfTsKLSsKLSsvLyEgXGJyaWVmIEEgUFBDNjQg Q1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlkdW1wIGZpbGUuCi0rLy8hIEJhc2VkIG9uIG1p bmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQuCi0rc3RydWN0IE1pbmlkdW1wQ29udGV4 dFBQQzY0IHsKLSsgIHVpbnQ2NF90IGNvbnRleHRfZmxhZ3M7Ci0rCi0rICAvLyEgXGJyaWVmIEdl bmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICB1aW50NjRfdCBuaXA7Ci0rICB1aW50NjRfdCBt c3I7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IGNjcjsKLSsgIHVpbnQ2NF90 IHhlcjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IGN0cjsKLSsKLSsgIC8vISBcYnJp ZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgotKyAgZG91YmxlIGZwcmVnc1szMl07Ci0rCi0r ICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0ZXIuCi0rICBkb3VibGUgZnBzY3I7Ci0rCi0r ICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3RvciByZWdpc3RlcnMuCi0rICBzdHJ1Y3Qgewot KyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lzdGVycyBhcmUgMTI4Yml0cy4KLSsgICAgICB1 aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3Zz Y3I7Ci0rCi0rICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBj b21wYXRpYmlsdGl5LgotKyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNVs0XTsKLSsKLSsgICAgICAv LyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KLSsgICAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsK LSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBh dGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ2WzddOwotKyAgfSB2cmVnczsKLSt9 OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotICNlbmRpZiAgLy8gQ1JBU0hQQURf TUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5j YwotaW5kZXggZDdlNTNhNDkuLmQ4OWViOWUwIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi0rKysgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0 ZXIuY2MKLUBAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlkdW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRl RnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHQqIGNvbnRleHRfc25hcHNob3QpIHsKLSAgICAg ICBicmVhazsKLSAgICAgfQotIAotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDogewot KyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyPigpOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXIqPihjb250ZXh0LmdldCgpKQotKyAgICAgICAgICAtPkluaXRhbGl6ZUZyb21TbmFwc2hvdChj b250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSsKLSAgICAg ZGVmYXVsdDogewotICAgICAgIExPRyhFUlJPUikgPDwgInVua25vd24gY29udGV4dCBhcmNoaXRl Y3R1cmUgIgotICAgICAgICAgICAgICAgICAgPDwgY29udGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0 dXJlOwotQEAgLTQ1Myw0ICs0NjAsNDcgQEAgc2l6ZV90IE1pbmlkdW1wQ29udGV4dE1JUFM2NFdy aXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0gICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsK LSB9Ci0gCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6Ok1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyKCkKLSsgIDogTWluaWR1bXBDb250ZXh0V3JpdGVyKCksIGNvbnRleHRfKCkgewotKyAg ICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0OwotK30KLSsK LStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6fk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVy KCkgPSBkZWZhdWx0OwotKwotK3ZvaWQgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkluaXRh bGl6ZUZyb21TbmFwc2hvdCgKLSsgICAgY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3Nu YXBzaG90KSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRlTXV0YWJsZSk7Ci0rICBEQ0hF Q0tfRVEoY29udGV4dF8uY29udGV4dF9mbGFncywga01pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSsK LSsgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGw7Ci0r Ci0rICBtZW1jcHkoY29udGV4dF8ucmVncywgY29udGV4dF9zbmFwc2hvdC0+cmVncywgc2l6ZW9m KGNvbnRleHRfLnJlZ3MpKTsKLSsgIGNvbnRleHRfLm5pcCA9IGNvbnRleHRfc25hcHNob3QtPm5p cDsKLSsgIGNvbnRleHRfLm1zciA9IGNvbnRleHRfc25hcHNob3QtPm1zcjsKLSsgIGNvbnRleHRf LmNjciA9IGNvbnRleHRfc25hcHNob3QtPmNjcjsKLSsgIGNvbnRleHRfLnhlciA9IGNvbnRleHRf c25hcHNob3QtPnhlcjsKLSsgIGNvbnRleHRfLmxuayA9IGNvbnRleHRfc25hcHNob3QtPmxuazsK LSsgIGNvbnRleHRfLmN0ciA9IGNvbnRleHRfc25hcHNob3QtPmN0cjsKLSsKLSsgIG1lbWNweShj b250ZXh0Xy5mcHJlZ3MsIGNvbnRleHRfc25hcHNob3QtPmZwcmVncywgc2l6ZW9mKGNvbnRleHRf LmZwcmVncykpOwotKyAgY29udGV4dF8uZnBzY3IgPSBjb250ZXh0X3NuYXBzaG90LT5mcHNjcjsK LSsKLSsgIG1lbWNweShjb250ZXh0Xy52cmVncy5zYXZlX3ZyLCBjb250ZXh0X3NuYXBzaG90LT52 cmVncy5zYXZlX3ZyLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0Xy52cmVncy5zYXZlX3ZyKSk7 Ci0rICBtZW1jcHkoJmNvbnRleHRfLnZyZWdzLnNhdmVfdnNjciwgJmNvbnRleHRfc25hcHNob3Qt PnZyZWdzLnNhdmVfdnNjciwKLSsgICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92 c2NyKSk7Ci0rICBjb250ZXh0Xy52cmVncy5zYXZlX3Zyc2F2ZSA9IGNvbnRleHRfc25hcHNob3Qt PnZyZWdzLnNhdmVfdnJzYXZlOwotK30KLSsKLStib29sIE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyOjpXcml0ZU9iamVjdCgKLSsgICAgRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIp IHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVXcml0YWJsZSk7Ci0rICByZXR1cm4gZmls ZV93cml0ZXItPldyaXRlKCZjb250ZXh0Xywgc2l6ZW9mKGNvbnRleHRfKSk7Ci0rfQotKwotK3Np emVfdCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0r ICBEQ0hFQ0tfR0Uoc3RhdGUoKSwga1N0YXRlRnJvemVuKTsKLSsgIHJldHVybiBzaXplb2YoY29u dGV4dF8pOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0 ZXIuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlci5oCi1pbmRleCBkNGFiOTM2ZS4uMWQyMmZjNTkgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIu aAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyLmgKLUBAIC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlkdW1wQ29udGV4 dE1JUFM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgewotICAg RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcik7Ci0g fTsKLSAKLStjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBN aW5pZHVtcENvbnRleHRXcml0ZXIgewotKyBwdWJsaWM6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcigpOwotKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3ZlcnJpZGU7Ci0r Ci0rICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQQzY0IGJhc2Vk IG9uIFxhIGNvbnRleHRfc25hcHNob3QuCi0rICAvLyEKLSsgIC8vISBccGFyYW1baW5dIGNvbnRl eHRfc25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJjZSBkYXRhLgot KyAgLy8hCi0rICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5vIG11dGF0aW9u IG9mIGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKLSsgIC8vISAgICAgY2FsbGluZyB0aGlz IG1ldGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0ZXIKLSsgIC8v ISAgICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCi0rICB2b2lkIEluaXRh bGl6ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRfc25hcHNob3Qp OwotKwotKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29udGV4dCBzdHJ1 Y3R1cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCi0rICAvLyEgICAgIHdyaXRlLgotKyAgLy8hCi0r ICAvLyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2ludGVyIHRvIHRo aXMgb2JqZWN04oCZcyBwcml2YXRlCi0rICAvLyEgICAgIGRhdGEgc28gdGhhdCBhIGNhbGxlciBj YW4gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgotKyAgLy8hICAgICBU aGlzIGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMgdG8gZWFjaCBm aWVsZCBpbiB0aGUKLSsgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQgYmUgdW53aWVs ZHkgYW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgotKyAgLy8hICAgICB0byBwb3B1 bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4dCBzdHJ1Y3R1 cmUKLSsgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMgb2JqZWN0IGlz IGluIHRoZSAja1N0YXRlTXV0YWJsZQotKyAgLy8hICAgICBzdGF0ZS4KLSsgIE1pbmlkdW1wQ29u dGV4dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9Ci0rCi0rIHByb3RlY3Rl ZDoKLSsgIC8vIE1pbmlkdW1wV3JpdGFibGU6Ci0rICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0 ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKLSsKLSsgIC8vIE1pbmlkdW1wQ29u dGV4dFdyaXRlcjoKLSsgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwotKwot KyBwcml2YXRlOgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87Ci0rCi0rICBESVNB TExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIpOwotK307Ci0r Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5J RFVNUF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNj IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyX3Rlc3QuY2MKLWluZGV4IDMyMTZhOTA2Li5hOWZjYmU5ZCAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRl cl90ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotQEAgLTIxMyw2ICsyMTMsMjEgQEAgVEVTVChN aW5pZHVtcENvbnRleHRXcml0ZXIsIE1JUFM2NF9Gcm9tU25hcHNob3QpIHsKLSAgICAgICBjb250 ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRNSVBTNjQsIGtTZWVkKTsKLSB9Ci0gCi0rVEVTVChN aW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X1plcm9zKSB7Ci0rICBFbXB0eUNvbnRleHRUZXN0 PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCi0rICAg IEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSt9Ci0rCi0rVEVTVChNaW5pZHVtcENvbnRl eHRXcml0ZXIsIFBQQzY0X0Zyb21TbmFwc2hvdCkgewotKyAgY29uc3RleHByIHVpbnQzMl90IGtT ZWVkID0gNjQ7Ci0rICBDUFVDb250ZXh0UFBDNjQgY29udGV4dF9wcGM2NDsKLSsgIENQVUNvbnRl eHQgY29udGV4dDsKLSsgIGNvbnRleHQucHBjNjQgPSAmY29udGV4dF9wcGM2NDsKLSsgIEluaXRp YWxpemVDUFVDb250ZXh0UFBDNjQoJmNvbnRleHQsIGtTZWVkKTsKLSsgIEZyb21TbmFwc2hvdFRl c3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKLSsg ICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCwga1NlZWQpOwotK30KLSsK LSB9ICAvLyBuYW1lc3BhY2UKLSB9ICAvLyBuYW1lc3BhY2UgdGVzdAotIH0gIC8vIG5hbWVzcGFj ZSBjcmFzaHBhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5p ZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLWluZGV4IGExMzQw NzYwLi45NWRjOTI1MiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCi0rKysgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotQEAg LTEyNiw2ICsxMjYsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0 cmluZygpIHsKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwcyI7Ci0gI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBr Q1BVW10gPSAibWlwczY0IjsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgc3Rh dGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgZGVm aW5lIGtDUFUgZm9yIHRoaXMgQ1BVCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi1pbmRleCBhNTE2MjZj Yy4uNjFlMGIyMGEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotQEAgLTExMSw2ICsxMTEsMTEgQEAgdm9pZCBD YXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgY29udGV4 dCwKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0Lm1pcHNlbC0+ cmVncyk7ICsraSkgewotICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNv bnRleHQubWlwc2VsLT5yZWdzW2ldKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4 dC5wcGM2NC0+bmlwKTsKLSsgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6ZShjb250 ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7Ci0rICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChk ZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7Ci0rICB9Ci0gI2Vsc2UKLSAjZXJyb3Ig UG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotaW5kZXggODExYTcyMDkuLmY0ZjgzOTgxIDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNo aXRlY3R1cmUuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2Nw dV9hcmNoaXRlY3R1cmUuaAotQEAgLTQzLDcgKzQzLDEwIEBAIGVudW0gQ1BVQXJjaGl0ZWN0dXJl IHsKLSAgIGtDUFVBcmNoaXRlY3R1cmVNSVBTRUwsCi0gCi0gICAvLyEgXGJyaWVmIDY0LWJpdCBN SVBTRUwuCi0tICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSsgIGtDUFVBcmNoaXRlY3R1cmVN SVBTNjRFTCwKLSsKLSsgIC8vISBcYnJpZWYgNjQtYml0IFBQQzY0LgotKyAga0NQVUFyY2hpdGVj dHVyZVBQQzY0Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLWluZGV4 IDZmYjhkN2U3Li5iMDFmN2NhZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1AQCAtMTY5LDYgKzE2OSw4IEBAIHVpbnQ2 NF90IENQVUNvbnRleHQ6Okluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1 cm4gYXJtLT5wYzsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0 dXJuIGFybTY0LT5wYzsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAg cmV0dXJuIHBwYzY0LT5uaXA7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgTk9UUkVBQ0hFRCgpOwot ICAgICAgIHJldHVybiB+MHVsbDsKLUBAIC0xODUsNiArMTg3LDggQEAgdWludDY0X3QgQ1BVQ29u dGV4dDo6U3RhY2tQb2ludGVyKCkgY29uc3QgewotICAgICAgIHJldHVybiBhcm0tPnNwOwotICAg ICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAgICByZXR1cm4gYXJtNjQtPnNwOwot KyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSsgICAgICByZXR1cm4gcHBjNjQtPnJl Z3NbMV07Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgTk9UUkVBQ0hFRCgpOwotICAgICAgIHJldHVy biB+MHVsbDsKLUBAIC0xOTYsNiArMjAwLDcgQEAgYm9vbCBDUFVDb250ZXh0OjpJczY0Qml0KCkg Y29uc3QgewotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODZfNjQ6Ci0gICAgIGNhc2Uga0NQ VUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTDoK LSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0g ICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4NjoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl QVJNOgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfY29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9j b250ZXh0LmgKLWluZGV4IGZiMjNjNDY3Li5lZWJlZGU2MyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi0rKysgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAotQEAgLTM1Miw2ICsz NTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgewotICAgdWludDY0X3QgZmlyOwotIH07 Ci0gCi0rLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBz dGF0ZS4KLStzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVp bnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgY2NyOwotKyAg dWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgY3RyOwotKyAgZG91 YmxlIGZwcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0rICBzdHJ1Y3QgewotKyAgICB1aW50 MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOwot KyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsgIH0gdnJlZ3M7Ci0rfTsKLSsKLSAvLyEgXGJy aWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBv ZiBhbnkgc3VwcG9ydGVkCi0gLy8hICAgICBDUFUgYXJjaGl0ZWN0dXJlLgotIHN0cnVjdCBDUFVD b250ZXh0IHsKLUBAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0IENQVUNvbnRleHQgewotICAgICBD UFVDb250ZXh0QVJNNjQqIGFybTY0OwotICAgICBDUFVDb250ZXh0TUlQUyogbWlwc2VsOwotICAg ICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7Ci0rICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7 Ci0gICB9OwotIH07Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAotaW5kZXggOWY0NmE0 ODkuLmFhNjc3YzRlIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi1AQCAtMTUsNiAr MTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElO VVhfSF8KLSAjZGVmaW5lIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVY X0hfCi0gCi0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZp Zy5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9jcHVfY29udGV4dC5oIgotICNpbmNsdWRlICJzbmFw c2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIgotQEAgLTE3NCw2ICsxNzUsNzggQEAgdm9pZCBJ bml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCi0gCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9NSVBTX0ZB TUlMWSB8fCBET1hZR0VOCi0gCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSB8 fCBET1hZR0VOCi0rCi0rLy8hIFxicmllZiBJbml0YWxpemVzIGEgQ1BVQ29udGV4dFBQQzY0IHN0 cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0Ci0rLy8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4 LgotKy8vIQotKy8vISBccGFyYW1baW5dIHRocmVhZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFk IGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gZmxvYXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0 IGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gdmVjdG9yX2NvbnRleHQgVGhlIG5hdGl2ZSB2ZWN0 b3IgY29udGV4dC4KLSsvLyEgXHBhcmFtW291dF0gY29udGV4dCBUaGUgQ1BVQ29udGV4dFBQQzY0 IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2 b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCi0rICAgIGNvbnN0IFRocmVhZENvbnRleHQ6 OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3QgRmxvYXRDb250ZXh0OjpmNjRfdCYg ZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgVmVjdG9yQ29udGV4dDo6djY0X3QmIHZlY3Rvcl9j b250ZXh0LAotKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsK LSsgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5ncHIsIHNpemVvZihjb250 ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBj b250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJl YWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0r ICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0 aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9j b250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBz Y3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwg MzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgo KHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAg IHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3Jf Y29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52 cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZl ID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0g ezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotK3Rl bXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0 KAotKyAgICBjb25zdCBTaWduYWxUaHJlYWRDb250ZXh0NjQgJnRocmVhZF9jb250ZXh0LAotKyAg ICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2NCAmZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3Qg U2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJh aXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywg dGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQt Pm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsKLSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250 ZXh0Lm1zcjsKLSsgIGNvbnRleHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRl eHQtPnhlciA9IHRocmVhZF9jb250ZXh0LnhlcjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9j b250ZXh0LmxuazsKLSsgIGNvbnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsg IG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRl eHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwot KwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52 cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZy cmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsx XSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMy KSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0K LSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwot KyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotKwotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFj ZSBpbnRlcm5hbAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3Vz X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVi dWdfcmVuZGV6dm91c190ZXN0LmNjCi1pbmRleCBiZTIyYzkwMy4uYzVkZjIzZDEgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVu ZGV6dm91c190ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi1AQCAtMTU5LDkgKzE1OSwxMSBAQCB2 b2lkIFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAg ICAgICAgICAgY29uc3QgYm9vbCBpc192ZHNvX21hcHBpbmcgPQotICAgICAgICAgICAgICAgZGV2 aWNlID09IDAgJiYgaW5vZGUgPT0gMCAmJiBtYXBwaW5nX25hbWUgPT0gIlt2ZHNvXSI7Ci0gICAg ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgtdmRzby5zby4i OwotKyAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeDY0W10gPSAibGludXgt dmRzbzY0LnNvLiI7Ci0gICAgICAgICAgIHJldHVybiBpc192ZHNvX21hcHBpbmcgPT0KLSAgICAg ICAgICAgICAgICAgIChtb2R1bGVfbmFtZS5lbXB0eSgpIHx8Ci0tICAgICAgICAgICAgICAgICAg bW9kdWxlX25hbWUuY29tcGFyZSgwLCBzdHJsZW4oa1ByZWZpeCksIGtQcmVmaXgpID09IDApOwot KyAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXgp LCBrUHJlZml4KSA9PSAwIHx8Ci0rICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUuY29tcGFy ZSgwLCBzdHJsZW4oa1ByZWZpeDY0KSwga1ByZWZpeDY0KSA9PSAwKTsKLSAgICAgICAgIH0sCi0g ICAgICAgICBtb2R1bGVfbWFwcGluZy0+bmFtZSwKLSAgICAgICAgIG1vZHVsZV9tYXBwaW5nLT5k ZXZpY2UsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLWluZGV4 IGNkNDBiM2IxLi42YmNmMjNiNiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLSsrKyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNo b3RfbGludXguY2MKLUBAIC0zMjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RM aW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSAgICAgICByZWFkZXIsIGNvbnRl eHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0KTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLStzdGF0 aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRl eHQpIHsKLSsgIGNvbnN0IFByb2Nlc3NNZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7 Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBncF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3Mg KwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQs IG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBncF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRy YWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0aHJlYWRfY29udGV4dDsKLSsgIGlmICghbWVtb3J5 LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9j b250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsK LSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19h ZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBf cmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250 ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29u dGV4dCksICZmcF9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFk IGZwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJl c3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6 TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25h bFZlY3RvckNvbnRleHQgdl9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0 cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0KSwgJnZfY29udGV4dCkpIHsKLSsgICAgTE9HKEVS Uk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAg fQotKwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVh ZF9jb250ZXh0LCBmcF9jb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2X2Nv bnRleHQsIGRlc3RfY29udGV4dCk7Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rdGVtcGxh dGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRy YWl0czY0PigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1B ZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQ VUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8u cHBjNjQ7Ci0rCi0rICByZXR1cm4gaW50ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2 ND4oCi0rICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKLSt9 Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRl eHQ8Q29udGV4dFRyYWl0czMyPigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0r ICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewotKyAgLy8gUFBDNjQgaXMgNjQt Yml0Ci0rICByZXR1cm4gZmFsc2U7Ci0rfQotKwotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWQotIAotIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNz UmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaCB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXguaAotaW5kZXggZWEwY2QyMTAuLmU0MmRmNTIwIDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hv dF9saW51eC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLUBAIC04NCw2ICs4NCw4IEBAIGNsYXNzIEV4 Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMgRXhjZXB0aW9uU25hcHNob3Qgewot ICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAgIENQVUNvbnRleHRNSVBT IG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIENQVUNvbnRleHRQUEM2NCBwcGM2NDsKLSAjZW5k aWYKLSAgIH0gY29udGV4dF91bmlvbl87Ci0gICBDUFVDb250ZXh0IGNvbnRleHRfOwotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRp b25fc25hcHNob3RfbGludXhfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotaW5kZXggZTRm ZjFhYjcuLjI1NTM0ZGQwIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi0rKysgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBz aG90X2xpbnV4X3Rlc3QuY2MKLUBAIC0yOTYsNyArMjk2LDI4IEBAIHZvaWQgRXhwZWN0Q29udGV4 dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVj dGVkKSB7Ci0gICAgICAgICAgICAgMCk7Ci0gI3VuZGVmIENQVV9BUkNIX05BTUUKLSB9Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rdXNpbmcgTmF0aXZlQ1BVQ29udGV4 dCA9IHVjb250ZXh0X3Q7Ci0rCi0rdm9pZCBJbml0aWFsaXplQ29udGV4dChOYXRpdmVDUFVDb250 ZXh0KiBjb250ZXh0KSB7Ci0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKytyZWcp IHsKLSsgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddID0gcmVnOwotKyAgfQot KwotKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzLCA0NCwKLSsgICAgICBz aXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykpOwotK30KLSAKLSt2b2lkIEV4cGVj dENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250ZXh0 JiBleHBlY3RlZCkgewotKyAgRVhQRUNUX0VRKGFjdHVhbC5hcmNoaXRlY3R1cmUsIGtDUFVBcmNo aXRlY3R1cmVQUEM2NCk7Ci0rCi0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKyty ZWcpIHsKLSsgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+cmVnc1tyZWddLCBleHBlY3RlZC51 Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOwotKyAgfQotKwotKyAgRVhQRUNUX0VRKG1lbWNtcChh Y3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNvbnRleHQuZnBfcmVncywKLSsgICAg ICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3MpKSwgMCk7Ci0rfQotICNlbHNlCi0g I2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNj Ci1pbmRleCBiOTZhYmZlNy4uZGYxMmNhNTYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKLSsrKyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRl cl9saW51eC5jYwotQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6 VGhyZWFkOjpJbml0aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIpIHsKLSAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgc3RhY2tfcG9pbnRlciA9IHJl YWRlci0+SXM2NEJpdCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3NbMjld Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJl YWRfY29udGV4dC50MzIucmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0rICBzdGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0 LmdwclsxXTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9s aW51eF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLWluZGV4IDViNTcyMzYxLi4wNDljMzI4NSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9w cm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotQEAgLTYx Miw2ICs2MTIsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBiYXNlOjpGaWxlUGF0aCYg bW9kdWxlX3BhdGgpIHsKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX0FBUkNINjQ7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRlZmluZWQoQVJDSF9DUFVfTUlQUzY0 RUwpCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9NSVBTOwotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9QUEM2NDsKLSAj ZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9IEVWX0NVUlJFTlQ7Ci1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9j b250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2ln bmFsX2NvbnRleHQuaAotaW5kZXggMTEwMDI0NjguLjhlMzM1YTA5IDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgK LSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxf Y29udGV4dC5oCi1AQCAtNDIyLDYgKzQyMiw4OSBAQCBzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVD b250ZXh0PENvbnRleHRUcmFpdHM2ND4sIG1jb250ZXh0LmZwcmVncykgPT0KLSAgICAgICAgICAg ICAgICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotICNlbmRpZgotIAotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKwotK3N0cnVjdCBTaWduYWxUaHJlYWRDb250ZXh0 NjQgewotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBuaXA7Ci0rICB1aW50NjRf dCBtc3I7Ci0rICB1aW50NjRfdCBvcmlnX3IzOwotKyAgdWludDY0X3QgY3RyOwotKyAgdWludDY0 X3QgbG5rOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3Qg c29mdGU7Ci0rICB1aW50NjRfdCB0cmFwOwotKyAgdWludDY0X3QgZGFyOwotKyAgdWludDY0X3Qg ZHNpc3I7Ci0rICB1aW50NjRfdCByZXN1bHQ7Ci0rICB1aW50NjRfdCBkc2NyOwotKyAgdWludDY0 X3QgZnByMFszXTsKLSt9OwotKwotK3N0cnVjdCBTaWduYWxGbG9hdENvbnRleHQ2NCB7Ci0rICBk b3VibGUgcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0rfTsKLSsKLStzdHJ1Y3QgU2lnbmFs VmVjdG9yQ29udGV4dDY0IHsKLSsgIGludDMyX3QgdnJyZWdzWzMyXVs0XTsKLSsgIHN0cnVjdCB7 Ci0rICAgIGludDMyX3QgX19wYWRbM107Ci0rICAgIGludDMyX3QgdnNjcl93b3JkOwotKyAgfSB2 c2NyOwotKyAgaW50MzJfdCB2cnNhdmU7Ci0rICBpbnQzMl90IF9fcGFkWzNdOwotK30gX19hdHRy aWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSk7Ci0rCi0rCi0rI3ByYWdtYSBwYWNrKHBvcCkKLStz dHJ1Y3QgTUNvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZXNlcnZlZFs0XTsKLSsgIGludDMyX3Qg c2lnbmFsOwotKyAgaW50MzJfdCBfX3BhZDA7Ci0rICB1aW50NjRfdCBoYW5kbGVyOwotKyAgdWlu dDY0X3Qgb2xkbWFzazsKLSsgIHVpbnQ2NF90IHB0X3JlZ3NfcHRyOwotKyAgU2lnbmFsVGhyZWFk Q29udGV4dDY0IGdwX3JlZ3M7Ci0rICBTaWduYWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKLSsg IFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOwotKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2 OV07Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0IHsK LSsgIHVzaW5nIE1Db250ZXh0ID0gTUNvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbFRocmVhZENv bnRleHQgPSBTaWduYWxUaHJlYWRDb250ZXh0NjQ7Ci0rICB1c2luZyBTaWduYWxGbG9hdENvbnRl eHQgPSBTaWduYWxGbG9hdENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbFZlY3RvckNvbnRleHQg PSBTaWduYWxWZWN0b3JDb250ZXh0NjQ7Ci0rICB1c2luZyBDUFVDb250ZXh0ID0gQ1BVQ29udGV4 dFBQQzY0OwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHMzMiA6IHB1YmxpYyBUcmFpdHMz MiB7fTsKLSsKLStzdHJ1Y3QgVUNvbnRleHQgewotKyAgdWludDY0X3QgZmxhZ3M7Ci0rICB1aW50 NjRfdCBsaW5rOwotKyAgU2lnbmFsU3RhY2s8Q29udGV4dFRyYWl0czY0PiBzdGFjazsKLSsgIFNp Z3NldDxDb250ZXh0VHJhaXRzNjQ+IHNpZ21hc2s7Ci0rICBNQ29udGV4dDY0IG1jb250ZXh0Owot K307Ci0rI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi0rCi0rc3RhdGljX2Fzc2VydChzaXplb2YoVUNv bnRleHQpID09IHNpemVvZih1Y29udGV4dF90KSwKLSsgICAgICAgICAgICAgICJ1Y29udGV4dF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihNQ29udGV4dDY0KSA9PSBz aXplb2YobWNvbnRleHRfdCksCi0rICAgICAgICAgICAgICAibWNvbnRleHRfdCBzaXplIG1pc21h dGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVGhyZWFkQ29udGV4dDY0KSA9PSBz aXplb2YoZ3JlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJncmVnc2V0X3Qgc2l6ZSBtaXNtYXRj aCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbEZsb2F0Q29udGV4dDY0KSA9PSBzaXpl b2YoZnByZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZnByZWdzZXRfdCBzaXplIG1pc21hdGNo Iik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVmVjdG9yQ29udGV4dDY0KSA9PSBzaXpl b2YodnJyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAidnJyZWdzZXRfdCBzaXplIG1pc21hdGNo Iik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpID09Ci0rICAg ICAgICAgICAgICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19tY29udGV4dCksICJtY29udGV4dCBv ZmZzZXQgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKE1Db250ZXh0NjQsIGdw X3JlZ3MpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZihtY29udGV4dF90LCBncF9yZWdzKSwg ImdwX3JlZ3Mgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9s aW51eC5jYwotaW5kZXggODU2NGQzZDQuLmI2OTBlY2Q0IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5j YwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3Rl bV9zbmFwc2hvdF9saW51eC5jYwotQEAgLTIwMyw2ICsyMDMsOCBAQCBDUFVBcmNoaXRlY3R1cmUg U3lzdGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkgY29uc3QgewotICNlbGlm IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gcHJvY2Vzc19yZWFkZXJf LT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQ QzY0OwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYK LUBAIC0yMTgsNiArMjIwLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2 aXNpb24oKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAg IC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiAwOwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQ UEM2NAotKyAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVj dHVyZQotICNlbmRpZgotQEAgLTIzOCw2ICsyNDMsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFw c2hvdExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiBz dGQ6OnN0cmluZygpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg Ly8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7 Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAg LTM3MSw2ICszNzksOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNv bnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGlt cGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIGZhbHNlOwotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAot KyAgcmV0dXJuIGZhbHNlOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLWlu ZGV4IGUzZTJiZWJkLi44ZWY0Mzc1MiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLSsrKyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3Rf bGludXguY2MKLUBAIC0xODYsNiArMTg2LDE0IEBAIGJvb2wgVGhyZWFkU25hcHNob3RMaW51eDo6 SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAotICAgICAgICAg dGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMyLAotICAgICAgICAgY29udGV4dF8u bWlwc2VsKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsg IGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKLSsgIGNvbnRl eHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0OwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRl eHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby50aHJl YWRfY29udGV4dC50NjQsCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQu ZjY0LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0b3JfY29udGV4dC52NjQsCi0rICAg ICAgY29udGV4dF8ucHBjNjQpOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVh ZF9zbmFwc2hvdF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1pbmRleCA0NGNjNmY2ZC4uZDQxMzY0NjEg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotQEAgLTY4LDYgKzY4LDgg QEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTbmFwc2hv dCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgICAgQ1BVQ29udGV4 dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKLSsjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0Owot ICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxp YXJ5X3ZlY3Rvci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1 eGlsaWFyeV92ZWN0b3IuY2MKLWluZGV4IGQzZDVlYmRmLi4zZmQ3MzBjYiAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3Iu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFy eV92ZWN0b3IuY2MKLUBAIC01Niw2ICs1NiwxMSBAQCBib29sIEF1eGlsaWFyeVZlY3Rvcjo6UmVh ZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgIGlmICh0eXBlID09IEFUX0lH Tk9SRSkgewotICAgICAgIGNvbnRpbnVlOwotICAgICB9Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgICBpZiAodHlwZSA9PSBBVF9JR05PUkVQUEMpIHsKLSsgICAgICBj b250aW51ZTsKLSsgICAgfQotKyNlbmRpZgotICAgICBpZiAoIU1hcEluc2VydE9yUmVwbGFjZSgm dmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7Ci0gICAgICAgTE9HKEVSUk9SKSA8PCAi ZHVwbGljYXRlIGF1eHYgZW50cnkiOwotICAgICAgIHJldHVybiBmYWxzZTsKLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNj IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tlci5j YwotaW5kZXggMTU1YTFlMGMuLjVlNTBjZWI1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tlci5jYwotKysrIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tlci5jYwotQEAgLTk0LDgg Kzk0LDggQEAgaW50IFB0cmFjZUJyb2tlcjo6UnVuKCkgewotIH0KLSAKLSBib29sIFB0cmFjZUJy b2tlcjo6QWxsb2NhdGVBdHRhY2htZW50cygpIHsKLS0gIGNvbnN0ZXhwciBzaXplX3QgcGFnZV9z aXplID0gNDA5NjsKLS0gIGNvbnN0ZXhwciBzaXplX3QgYWxsb2Nfc2l6ZSA9Ci0rICBzdGF0aWMg c2l6ZV90IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0rICBzaXplX3QgYWxsb2Nfc2l6ZSA9 Ci0gICAgICAgKHNpemVvZihTY29wZWRQdHJhY2VBdHRhY2gpICsgcGFnZV9zaXplIC0gMSkgJiB+ KHBhZ2Vfc2l6ZSAtIDEpOwotICAgdm9pZCogYWxsb2MgPSBzYnJrKGFsbG9jX3NpemUpOwotICAg aWYgKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFsbG9jKSA9PSAtMSkgewotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1pbmRleCA1 NTdlMGQzNi4uMDhhZTQzNGIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1AQCAtMzk4LDYgKzM5OCw2NCBAQCBib29sIEdldFRo cmVhZEFyZWE2NChwaWRfdCB0aWQsCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rLy8gUFBDNjQgaGFzIGhhZCBIQVZFX0FSQ0hf VFJBQ0VIT09LIHNldCBzaW5jZSAyLjYuMjcgKGV2ZW4gYmVmb3JlIHg4NiBoYWQgaXQpLgotKy8v IFRoYXQgbWVhbnMgd2UgY2FuIHNpbXBseSB1c2UgUFRSQUNFX0dFVFJFR0VTRVQuCi0rCi0rdGVt cGxhdGUgPHR5cGVuYW1lIERlc3RpbmF0aW9uPgotK2Jvb2wgR2V0UmVnaXN0ZXJTZXQocGlkX3Qg dGlkLCBpbnQgc2V0LCBEZXN0aW5hdGlvbiogZGVzdCwgYm9vbCBjYW5fbG9nKSB7Ci0rICBpb3Zl YyBpb3Y7Ci0rICBpb3YuaW92X2Jhc2UgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihkZXN0KTsK LSsgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mKCpkZXN0KTsKLSsgIGlmIChwdHJhY2UoUFRSQUNFX0dF VFJFR1NFVCwgdGlkLCByZWludGVycHJldF9jYXN0PHZvaWQqPihzZXQpLCAmaW92KSAhPSAwKSB7 Ci0rICAgIFBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJwdHJhY2UiOwotKyAgICByZXR1cm4g ZmFsc2U7Ci0rICB9Ci0rICBpZiAoaW92Lmlvdl9sZW4gIT0gc2l6ZW9mKCpkZXN0KSkgewotKyAg ICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJVbmV4cGVjdGVkIHJlZ2lzdGVycyBzaXplIjsK LSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotK2Jvb2wg R2V0VmVjdG9yUmVnaXN0ZXJzNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgVmVjdG9yQ29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFBDX1ZNWCwg JmNvbnRleHQtPnY2NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG bG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUkZQUkVH LCAmY29udGV4dC0+ZjY0LCBjYW5fbG9nKTsKLSt9Ci0rCi0rYm9vbCBHZXRUaHJlYWRBcmVhNjQo cGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQmIGNv bnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MqIGFkZHJlc3MsCi0r ICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7Ci0rICAvLyBQUEM2NCBkb2Vzbid0 IGhhdmUgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBzaW5jZSB0aGUgdGhyZWFkIHBvaW50ZXIKLSsg IC8vIGlzIHN0b3JlZCBpbiBHUFIgMTMuCi0rICBUaHJlYWRDb250ZXh0Ojp0NjRfdCB0YzsKLSsg IGlmICghR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUlNUQVRVUywgJnRjLCBjYW5fbG9nKSkgewot KyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJVbmFibGUgdG8gZ2V0IHRocmVhZCBwb2lu dGVyISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsKLSsgICphZGRyZXNzID0gdGMuZ3By WzEzXTsKLSsKLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSsvLyBTdHVicyBmb3IgMzItYml0IGZ1 bmN0aW9ucyBub3QgYXBwbGljYWJsZSBvbiBQUEM2NAotK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVyczMyKHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG bG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxzZTsgfQotK2Jvb2wgR2V0VGhyZWFkQXJlYTMyKHBp ZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0ICZjb250 ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzICphZGRyZXNzLAotKyAg ICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KLSsKLSAj ZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAg LTQ5NCw2ICs1NTIsOSBAQCBib29sIFB0cmFjZXI6OkdldFRocmVhZEluZm8ocGlkX3QgdGlkLCBU aHJlYWRJbmZvKiBpbmZvKSB7Ci0gICBpZiAoaXNfNjRfYml0XykgewotICAgICByZXR1cm4gR2V0 R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnM2NCh0aWQsICZpbmZvLT50aHJlYWRfY29udGV4dCwgY2Fu X2xvZ18pICYmCi0gICAgICAgICAgICBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQodGlkLCAm aW5mby0+ZmxvYXRfY29udGV4dCwgY2FuX2xvZ18pICYmCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgICAgICAgICAgR2V0VmVjdG9yUmVnaXN0ZXJzNjQodGlkLCAmaW5m by0+dmVjdG9yX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotKyNlbmRpZgotICAgICAgICAgICAgR2V0 VGhyZWFkQXJlYTY0KHRpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT50aHJl YWRfY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5mby0+dGhyZWFkX3Nw ZWNpZmljX2RhdGFfYWRkcmVzcywKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotaW5kZXggNWI1NWMyNGEuLmRlYTBkMWYzIDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFk X2luZm8uaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhy ZWFkX2luZm8uaAotQEAgLTI4LDYgKzI4LDEwIEBACi0gI2luY2x1ZGUgPGFuZHJvaWQvYXBpLWxl dmVsLmg+Ci0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQot KyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgY3Jhc2hw YWQgewotIAotIC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJz IGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgotQEAgLTc5LDYgKzgzLDggQEAgdW5pb24gVGhy ZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7Ci0gICAgIHVpbnQzMl90IGNw MF9jYXVzZTsKLSAgICAgdWludDMyX3QgcGFkZGluZzFfOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBQUEM2NCBpcyA2NC1iaXQKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTEzMiw2ICsxMzgs MjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQ2NF90IGNwMF9iYWR2YWRkcjsK LSAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKLSAgICAgdWludDY0X3QgY3AwX2NhdXNlOwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyBzdHJ1 Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCi0rICAgIHVpbnQ2NF90IGdwclszMl07Ci0rICAg IHVpbnQ2NF90IG5pcDsKLSsgICAgdWludDY0X3QgbXNyOwotKyAgICB1aW50NjRfdCBvcmlnX2dw cjM7Ci0rICAgIHVpbnQ2NF90IGN0cjsKLSsgICAgdWludDY0X3QgbG5rOwotKyAgICB1aW50NjRf dCB4ZXI7Ci0rICAgIHVpbnQ2NF90IGNjcjsKLSsgICAgdWludDY0X3Qgc29mdGU7Ci0rICAgIHVp bnQ2NF90IHRyYXA7Ci0rICAgIHVpbnQ2NF90IGRhcjsKLSsgICAgdWludDY0X3QgZHNpc3I7Ci0r ICAgIHVpbnQ2NF90IHJlc3VsdDsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8g QVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTE0Myw2ICsxNjQsOCBAQCB1bmlvbiBUaHJlYWRDb250 ZXh0IHsKLSAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSB1c2VyX3JlZ3M7Ci0gI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAvLyBObyBhcHByb3ByaWF0ZSBOYXRpdmVU aHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQUwotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHN0cnVj dCBwdF9yZWdzOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0Ci1AQCAtMjE4LDYgKzI0MSw5IEBAIHVuaW9uIEZs b2F0Q29udGV4dCB7Ci0gICAgIH0gZnByZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0g ICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKLSsgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBpcyA2NC1iaXQgb25seSwgc28gdGhp cwotKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNsYXJlZCBhcyBlbXB0eS4KLSAjZWxz ZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTI1 Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAgZG91YmxlIGZwcmVnc1sz Ml07Ci0gICAgIHVpbnQzMl90IGZwY3NyOwotICAgICB1aW50MzJfdCBmcHVfaWQ7Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3RzIGZwcmVnc2V0 X3QgaW4gc3lzL3Vjb250ZXh0LmgKLSsgICAgZG91YmxlIGZwcmVnc1szMl07Ci0rICAgIGRvdWJs ZSBmcHNjcjsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2 X0ZBTUlMWQotQEAgLTI4MCw2ICszMTAsOCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgc3Rh dGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNlcl9mcHNpbWRfc3RydWN0KSwgIlNp emUgbWlzbWF0Y2giKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8v IE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRleHQgbmF0aXZlIHR5cGUgZm9yIGF2 YWlsYWJsZSBNSVBTLgotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg c3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksICJTaXplIG1p c21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4 NgotQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSBzdGF0aWNfYXNz ZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29udGV4dD46OnZhbHVlLAotICAgICAg ICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKLSAKLSsvLyEgXGJyaWVmIFRoZSB2ZWN0 b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkKLSt1bmlvbiBWZWN0 b3JDb250ZXh0IHsKLSsgIHN0cnVjdCB2MzJfdCB7fSB2MzI7Ci0rI2lmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSkgLy8g VmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFsaWduZWQuCi0rI2VuZGlmCi0rICBz dHJ1Y3QgdjY0X3QgewotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAg Ly8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICB1aW50MzJfdCB2 cnJlZ3NbMzJdWzRdOwotKyAgICBzdHJ1Y3QgewotKyAgICAgIHVpbnQzMl90IF9fcGFkWzNdOwot KyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKLSsgICAgfSB2c2NyOwotKyAgICB1aW50MzJfdCB2 cnNhdmU7Ci0rICAgIHVpbnQzMl90IF9fcGFkWzNdOwotKyNlbmRpZgotKyAgfSB2NjQ7Ci0rfTsK LSsKLSAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRyYWNlYC1hYmxlIGluZm9ybWF0aW9u IGFib3V0IGEgdGhyZWFkLgotIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIFRocmVhZEluZm8oKTsK LUBAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRocmVhZEluZm8gewotICAgLy8hIFxicmllZiBU aGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUgdGhyZWFkLgotICAgRmxvYXRDb250 ZXh0IGZsb2F0X2NvbnRleHQ7Ci0gCi0rICAvLyEgXGJyaWVmIChPcHRpb25hbCkgVGhlIHZlY3Rv ciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KLSsgIFZlY3RvckNvbnRleHQgdmVjdG9y X2NvbnRleHQ7Ci0rCi0gICAvLyEgXGJyaWVmIFRoZSB0aHJlYWQtbG9jYWwgc3RvcmFnZSBhZGRy ZXNzIGZvciB0aGUgdGhyZWFkLgotICAgTGludXhWTUFkZHJlc3MgdGhyZWFkX3NwZWNpZmljX2Rh dGFfYWRkcmVzczsKLSB9OwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1pbmRleCAzZmY3MTE4NC4uM2U4MmY0Yjkg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1 cmVfY29udGV4dC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNj L2NhcHR1cmVfY29udGV4dC5oCi1AQCAtNjgsNiArNjgsNyBAQCB1c2luZyBOYXRpdmVDUFVDb250 ZXh0ID0gdWNvbnRleHRfdDsKLSAvLyEgICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQg ICAgICAgfCBgJSVyZGlgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0 ICAgIHwgYHIwYC9geDBgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBT NjQgIHwgYCRhMGAKLSsvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAg fCBgcjNgCi0gLy8hCi0gLy8hICAgICBBZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFS TS9BUk02NCB3aWxsIGJlIHRoZSByZXR1cm4gYWRkcmVzcyBvZgotIC8vISAgICAgdGhpcyBmdW5j dGlvbi4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNj L2NhcHR1cmVfY29udGV4dF9saW51eC5TIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotaW5kZXggNTIyMTVlZTUuLmIzZTRhM2Vj IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfbGludXguUwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotQEAgLTMyLDcgKzMyLDcgQEAKLSAgIC5i YWxpZ24gNCwgMHgwCi0gICAudHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wsICVmdW5jdGlvbgot ICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMiwgJWZ1bmN0aW9uCi0tI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAuYmFsaWduIDQsIDB4MAotICNlbmRpZgotIAotQEAgLTQyMyw0ICs0MjMsMjE0 IEBAIENBUFRVUkVDT05URVhUX1NZTUJPTDI6Ci0gICBqciAkcmEKLSAKLSAgIC5zZXQgYXQKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBTdG9yZSByMC1yMzEKLSsgIHN0ZCAw LCAweGU4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1swXQotKyAgc3RkIDEs IDB4ZjAoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzFdCi0rICBzdGQgMiwg MHhmOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMl0KLSsgIC8vIG5vdGUg dGhhdCByMydzIG9yaWdpbmFsIHZhbHVlIHdhcyBsb3N0Ci0rICBzdGQgMywgMHgxMDAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbM10KLSsgIHN0ZCA0LCAweDEwOCgzKSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0XQotKyAgc3RkIDUsIDB4MTEwKDMpICAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzVdCi0rICBzdGQgNiwgMHgxMTgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNl0KLSsgIHN0ZCA3LCAweDEyMCgzKSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s3XQotKyAgc3RkIDgsIDB4MTI4KDMpICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzhdCi0rICBzdGQgOSwgMHgxMzAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOV0KLSsgIHN0ZCAxMCwgMHgxMzgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMF0KLSsgIHN0ZCAxMSwgMHgxNDAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMV0KLSsgIHN0ZCAxMiwgMHgxNDgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMl0KLSsgIHN0ZCAxMywgMHgxNTAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxM10KLSsgIHN0ZCAxNCwgMHgxNTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNF0KLSsgIHN0ZCAxNSwgMHgxNjAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNV0KLSsgIHN0ZCAxNiwgMHgxNjgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNl0KLSsgIHN0ZCAxNywgMHgxNzAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxN10KLSsgIHN0ZCAxOCwgMHgxNzgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOF0KLSsgIHN0ZCAxOSwgMHgxODAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOV0KLSsgIHN0ZCAyMCwgMHgxODgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMF0KLSsgIHN0ZCAyMSwgMHgxOTAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMV0KLSsgIHN0ZCAyMiwgMHgxOTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMl0KLSsgIHN0ZCAyMywgMHgxYTAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syM10KLSsgIHN0ZCAyNCwgMHgxYTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNF0KLSsgIHN0ZCAyNSwgMHgxYjAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNV0KLSsgIHN0ZCAyNiwgMHgxYjgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNl0KLSsgIHN0ZCAyNywgMHgxYzAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syN10KLSsgIHN0ZCAyOCwgMHgxYzgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOF0KLSsgIHN0ZCAyOSwgMHgxZDAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOV0KLSsgIHN0ZCAzMCwgMHgxZDgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMF0KLSsgIHN0ZCAzMSwgMHgxZTAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0KLSsKLSsgIC8vIEZvciBOSVAsIHdlIGNhbiB1c2Ug dGhlIHZhbHVlIGluIHRoZSBsaW5rIHJlZ2lzdGVyCi0rICBtZmxyIDAKLSsgIHN0ZCAwLCAweDFl OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0KLSsKLSsgIC8vIENU UgotKyAgbWZjdHIgMAotKyAgc3RkIDAsIDB4MjAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfQ1RSXQotKwotKyAgLy8gRm9yIExOSywgd2UnbGwgdXNlIHRoZSBjYWxsZXIn cyBMUiBzYXZlIGFyZWEgKDIgc3RhY2sgZnJhbWVzIHVwKS4KLSsgIC8vIHI0IGNhbiBiZSB1c2Vk IGFzIGEgc2NyYXRjaCByZWdpc3RlciBzaW5jZSBpdCBoYXMgYWxyZWFkeSBiZWVuIHNhdmVkLgot KyAgbGQgNCwgMCgxKQotKyAgbGQgNCwgMTYoNCkKLSsgIHN0ZCA0LCAweDIwOCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS10KLSsKLSsgIC8vIFhFUgotKyAgbWZ4ZXIg MAotKyAgc3RkIDAsIDB4MjEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf WEVSXQotKwotKyAgLy8gQ0NSCi0rICBtZmNyIDAKLSsgIHN0ZCAwLCAweDIxOCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0KLSsKLSsgIC8vIE1TUiwgb3JpZ19yMywg TVEsIFRSQVAsIERBUiwgRFNJU1IsIFJFU1VMVCwgRFNDUiwKLSsgIC8vIG5vdCB1c2VkIG9yIG5v dCByZWxldmFudCwgIHplcm8gdGhlbSBvdXQuCi0rICBsaSA0LCAwCi0rICBzdGQgNCwgMHgxZjAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdCi0rICBzdGQgNCwgMHgx ZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9PUklHX1IzXQotKyAgc3Rk IDQsIDB4MjIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVFdCi0rICBz dGQgNCwgMHgyMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9UUkFQXQot KyAgc3RkIDQsIDB4MjMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfREFS XQotKyAgc3RkIDQsIDB4MjM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf RFNJU1JdCi0rICBzdGQgNCwgMHgyNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9SRVNVTFRdCi0rICBzdGQgNCwgMHgyNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9EU0NSXQotKwotKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnJl Z3MgdG8gcG9pbnQgdG8gZ3BfcmVncwotKyAgYWRkaSAwLCAzLCAweGU4Ci0rICBzdGQgMCwgMHhl MCgzKQotKwotKyAgLy8gU2F2ZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgMC0zMQotKyAgc3Rm ZCAwLCAweDI2OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1swXQotKyAgc3Rm ZCAxLCAweDI3MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxXQotKyAgc3Rm ZCAyLCAweDI3OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syXQotKyAgc3Rm ZCAzLCAweDI4MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szXQotKyAgc3Rm ZCA0LCAweDI4OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s0XQotKyAgc3Rm ZCA1LCAweDI5MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s1XQotKyAgc3Rm ZCA2LCAweDI5OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s2XQotKyAgc3Rm ZCA3LCAweDJhMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s3XQotKyAgc3Rm ZCA4LCAweDJhOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s4XQotKyAgc3Rm ZCA5LCAweDJiMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s5XQotKyAgc3Rm ZCAxMCwgMHgyYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMF0KLSsgIHN0 ZmQgMTEsIDB4MmMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTFdCi0rICBz dGZkIDEyLCAweDJjOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEyXQotKyAg c3RmZCAxMywgMHgyZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxM10KLSsg IHN0ZmQgMTQsIDB4MmQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTRdCi0r ICBzdGZkIDE1LCAweDJlMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE1XQot KyAgc3RmZCAxNiwgMHgyZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNl0K LSsgIHN0ZmQgMTcsIDB4MmYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTdd Ci0rICBzdGZkIDE4LCAweDJmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE4 XQotKyAgc3RmZCAxOSwgMHgzMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sx OV0KLSsgIHN0ZmQgMjAsIDB4MzA4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MjBdCi0rICBzdGZkIDIxLCAweDMxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzIxXQotKyAgc3RmZCAyMiwgMHgzMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1syMl0KLSsgIHN0ZmQgMjMsIDB4MzIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMjNdCi0rICBzdGZkIDI0LCAweDMyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzI0XQotKyAgc3RmZCAyNSwgMHgzMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1syNV0KLSsgIHN0ZmQgMjYsIDB4MzM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMjZdCi0rICBzdGZkIDI3LCAweDM0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzI3XQotKyAgc3RmZCAyOCwgMHgzNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1syOF0KLSsgIHN0ZmQgMjksIDB4MzUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMjldCi0rICBzdGZkIDMwLCAweDM1OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzMwXQotKyAgc3RmZCAzMSwgMHgzNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1szMV0KLSsKLSsgIC8vIEZQU0NSCi0rICBtZmZzIDAKLSsgIHN0ZmQgMCwgMHgz NjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMl0KLSsKLSsgIC8vIFNhdmUg Vk1YIFZlY3RvciByZWdpc3RlcnMKLSsgIC8vIFVwZGF0ZSByNCB0byBjb250YWluIHRoZSBiYXNl IGFkZHJlc3Mgb2Ygdm14X3Jlc2VydmUKLSsgIGFkZGkgNCwgMywgMHgzNzgKLSsgIC8vIEVuc3Vy ZSB0aGF0IGl0IGlzIHF1YWR3b3JkIGFsaWduZWQKLSsgIGFuZGkuIDUsIDQsIDB4RgotKyAgYmVx IDFmIC8vIE5vIGFsaWdubWVudCBpcyBuZWNlc3NhcnkKLSsgIC8vIEFkZHJlc3MgaXMgZG91Ymxl d29yZCBhbGlnbmVkIGFuZCBub3QgcXVhZHdvcmQgYWxpZ25lZCwgYWRkIDgKLSsgIGFkZGkgNCwg NCwgOAotKwotKzE6Ci0rICAvLyBTdG9yZSBWTVggcmVnaXN0ZXJzIDAtMzEKLSsgIC8vIHI0IHdp bGwgY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzCi0rICAvLyByNSB3aWxsIGNvbnRhaW4gdGhlIGlu ZGV4Ci0rICBsaSA1LCAwCi0rICBzdHZ4IDAsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMSwg NCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxXQot KyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMs IDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgM10K LSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA0XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA1 LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDVd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDYsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dngg NywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA3 XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA4LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDhdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDksIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg OV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0 dnggMTEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAxMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTIsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggMTMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAxM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTQsIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNF0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggMTUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAxNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTYsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNl0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggMTcsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAxN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTgsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOF0KLSsgIGFkZGkgNSwg NSwgMTYKLSsgIHN0dnggMTksIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAxOV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjAsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMF0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggMjEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAyMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjIsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMl0KLSsgIGFk ZGkgNSwgNSwgMTYKLSsgIHN0dnggMjMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAyM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjQsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNF0KLSsg IGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjYs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNl0K LSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjcsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dngg MjgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAy OF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjksIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0 dnggMzAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAzMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMzEsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsK LSsgIC8vIFZTQ1IKLSsgIG1mdnNjciAwCi0rICBzdHZ4IDAsIDQsIDUKLSsgIGFkZGkgNSwgNSwg MTYKLSsKLSsgIC8vIFZSU0FWRQotKyAgbWZ2cnNhdmUgMAotKyAgc3R3eCAwLCA0LCA1Ci0rCi0r ICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQudl9yZWdzIHRvIHBvaW50IHRvIHZteF9y ZXNlcnZlICsgYWxpZ25tZW50LgotKyAgc3RkIDQsIDB4MzcwKDMpCi0rCi0rICAvLyBaZXJvIG91 dCBhbGwgdW51c2VkIGZpZWxkcwotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4YzgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuc2lnbmFsCi0rICBzdGQgNCwgMHhkMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5oYW5kbGVyCi0rICBzdGQgNCwgMHhkOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5vbGRtYXNrCi0rCi0rICBibHIKLSAjZW5kaWYgIC8vIF9faTM4Nl9fCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3QuY2MKLWluZGV4IGNmMjNjMmRlLi41ZjI2NGJjOSAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3Qu Y2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3QuY2MKLUBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgVGVzdENhcHR1cmVDb250ZXh0 KCkgewotICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb250ZXh0 XzEpOwotIAotICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIFwKLS0gICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikK LSsgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotICAgLy8gU2FuaXRpemVycyBjYW4gY2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQg dGhhdCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxkCi0gICAvLyBsaWtlbHkgZmFpbC4KLSAg IGNvbnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51 eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250 ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotaW5kZXggOWZjNWRiMjguLjVmNjlmOGRjIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfdGVzdF91dGlsX2xpbnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLUBAIC0zNiw2ICsz Niw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNv bnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LnJlZ3NbMF0sIEZyb21Q b2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzRd LCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQu Z3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZW5k aWYKLSB9Ci0gCi1AQCAtNTAsNiArNTIsOCBAQCB1aW50cHRyX3QgUHJvZ3JhbUNvdW50ZXJGcm9t Q29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29u dGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAotQEAgLTY0LDYgKzY4LDggQEAgdWludHB0cl90IFN0 YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsK LSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOwotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncmVnc1syOV07 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4 dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwotICNlbmRpZgotIH0KLSAKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKLWlu ZGV4IDU4YmZhOGY4Li44ZmMzN2M0NiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYy5vcmlnCTIwMjAtMTEtMTcgMTM6Mzk6 NDcuMDAwMDAwMDAwIC0wNTAwCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MJMjAyMC0xMS0xOCAyMTowNjozMy40MzM0MDg2MjMgLTA1 MDAKLUBAIC00Niw5ICs0Niw5IEBACi0gICByZXR1cm4gc2lnID09IFNJR0FCUlQgfHwKLSAgICAg ICAgICBzaWcgPT0gU0lHQUxSTSB8fAotICAgICAgICAgIHNpZyA9PSBTSUdCVVMgfHwKLS0jaWYg IWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0rI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAm JiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSAgICAgICAgICBzaWcgPT0gU0lHRlBFIHx8Ci0t I2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKLSsjZW5kaWYgIC8vICFkZWZpbmVk KEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQotICAgICAg ICAgIHNpZyA9PSBTSUdJTEwgfHwKLSAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZB TUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLUBAIC0xMTcsOSArMTE3LDExIEBACi0g ICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLS0jaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0r I2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkK LSAgICAgLy8gQVJNNjQgaGFzIGhhcmR3YXJlIGludGVnZXIgZGl2aXNpb24gaW5zdHJ1Y3Rpb25z IHRoYXQgZG9u4oCZdCBnZW5lcmF0ZSBhCi0gICAgIC8vIHRyYXAgZm9yIGRpdmlkZS1ieS16ZXJv LCBzbyB0aGlzIGRvZXNu4oCZdCBwcm9kdWNlIFNJR0ZQRS4KLSsgICAgLy8KLSsgICAgLy8gUFBD NjQgZml4ZWQtcG9pbnQgZGl2aXNpb24gYnkgemVybyBhbHNvIGRvZXNuJ3QgcHJvZHVjZSBhIFNJ R0ZQRS4KLSAgICAgY2FzZSBTSUdGUEU6IHsKLSAgICAgICAvLyBPcHRpbWl6YXRpb24gbWFrZXMg dGhpcyB0cmlja3ksIHNvIGdldCB6ZXJvIGZyb20gYSBzeXN0ZW0gY2FsbCBsaWtlbHkKLSAgICAg ICAvLyB0byBzdWNjZWVkLCBhbmQgdHJ5IHRvIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHQu Ci1AQCAtMTM3LDcgKzEzOSw3IEBACi0gICAgICAgZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7 Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLS0jZW5kaWYgIC8vIEFSQ0hfQ1BVX0FSTTY0Ci0rI2Vu ZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBD NjQpCi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNI X0NQVV9BUk1FTCkKLSAgICAgY2FzZSBTSUdJTEw6IHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv ZGF2MWQvQlVJTEQuZ24gdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLWluZGV4IDc4OGRjNmNm Li41ZmQ3ZThmZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgotKysrIHRo aXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi1AQCAtMTgyLDYgKzE4Miw4IEBAIHN0YXRpY19saWJy YXJ5KCJkYXYxZF84Yml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyAr PSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAot ICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yMTAsNiArMjEyLDggQEAgc3RhdGljX2xpYnJh cnkoImRhdjFkXzEwYml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyAr PSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAot ICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yNTYsNiArMjYwLDIxIEBAIGlmIChjdXJyZW50 X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IikgewotICAgICAgICI6ZGF2MWRf Y29uZmlnIiwKLSAgICAgXQotIAotKyAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotKyAgfQotK30g ZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgc3RhdGljX2xpYnJhcnkoImRh djFkX3BwYyIpIHsKLSsgICAgc291cmNlcyA9IFsKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9j cHUuYyIsCi0rICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmgiLAotKyAgICBdCi0rCi0rICAg IGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQot KyAgICBjb25maWdzICs9IFsKLSsgICAgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fY2hy b21pdW1fY29kZSIsCi0rICAgICAgIjpkYXYxZF9jb25maWciLAotKyAgICBdCi0rCi0gICAgIGNm bGFncyA9IGRhdjFkX2NvcHRzCi0gICB9Ci0gfQotQEAgLTI4NSw1ICszMDQsNyBAQCBzdGF0aWNf bGlicmFyeSgiZGF2MWQiKSB7Ci0gICAgIH0KLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0g ImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAgICBkZXBzICs9IFsgIjpkYXYx ZF9hcm0iIF0KLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBk ZXBzICs9IFsgIjpkYXYxZF9wcGMiIF0KLSAgIH0KLSB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaCB0aGlyZF9wYXJ0eS9kYXYxZC9jb25m aWcvbGludXgvcHBjNjQvY29uZmlnLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMC4uZjZjYTU3ZjcKLS0tLSAvZGV2L251bGwKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9jb25m aWcvbGludXgvcHBjNjQvY29uZmlnLmgKLUBAIC0wLDAgKzEsMzkgQEAKLSsvKgotKyAqIEF1dG9n ZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4KLSsgKiBEbyBub3QgZWRpdCwgeW91 ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KLSsgKi8KLSsKLSsjcHJhZ21hIG9uY2UKLSsKLSsjZGVm aW5lIEFSQ0hfQUFSQ0g2NCAwCi0rCi0rI2RlZmluZSBBUkNIX0FSTSAwCi0rCi0rI2RlZmluZSBB UkNIX1BQQzY0TEUgMQotKwotKyNkZWZpbmUgQVJDSF9YODYgMAotKwotKyNkZWZpbmUgQVJDSF9Y ODZfMzIgMAotKwotKyNkZWZpbmUgQVJDSF9YODZfNjQgMAotKwotKyNkZWZpbmUgQ09ORklHXzE2 QlBDIDEKLSsKLSsjZGVmaW5lIENPTkZJR184QlBDIDEKLSsKLSsvLyAjZGVmaW5lIENPTkZJR19M T0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hyb21pdW0KLSsKLSsjZGVmaW5lIEVO RElBTk5FU1NfQklHIDAKLSsKLSsjZGVmaW5lIEhBVkVfQVNNIDEKLSsKLSsjZGVmaW5lIEhBVkVf Q0xPQ0tfR0VUVElNRSAxCi0rCi0rI2RlZmluZSBIQVZFX0RMU1lNIDEKLSsKLSsjZGVmaW5lIEhB VkVfR0VUQVVYVkFMIDEKLSsKLSsjZGVmaW5lIEhBVkVfUE9TSVhfTUVNQUxJR04gMQotKwotKyNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCi0rCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2Rh djFkX2dlbmVyYXRlZC5nbmkgdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQot aW5kZXggOGJlY2FjMDIuLmQ1ZjRmY2FjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2RhdjFkL2Rh djFkX2dlbmVyYXRlZC5nbmkKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQu Z25pCi1AQCAtNzEsNiArNzEsMTEgQEAgYXJtX3RlbXBsYXRlX3NvdXJjZXMgPSBbCi0gICAibGli ZGF2MWQvc3JjL2FybS9tY19pbml0X3RtcGwuYyIsCi0gXQotIAotK3BwYzY0X3RlbXBsYXRlX3Nv dXJjZXMgPSBbCi0rICAibGliZGF2MWQvc3JjL3BwYy9jZGVmX2luaXRfdG1wbC5jIiwKLSsgICJs aWJkYXYxZC9zcmMvcHBjL2xvb3ByZXN0b3JhdGlvbl9pbml0X3RtcGwuYyIsCi0rXQotKwotIHRl bXBsYXRlX3NvdXJjZXMgPSBbCi0gICAibGliZGF2MWQvc3JjL2NkZWZfYXBwbHlfdG1wbC5jIiwK LSAgICJsaWJkYXYxZC9zcmMvY2RlZl90bXBsLmMiLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9k YXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkgdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNl LnB5Ci1pbmRleCA5YWI1ZTAwYi4uYWQzZmVmZmUgMTAwNzU1Ci0tLS0gdGhpcmRfcGFydHkvZGF2 MWQvZ2VuZXJhdGVfc291cmNlLnB5Ci0rKysgdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291 cmNlLnB5Ci1AQCAtNTAsNyArNTAsOCBAQCBkZWYgV3JpdGVHbihmZCk6Ci0gICBXcml0ZUFycmF5 KGZkLCAiYXJtMzJfYXNtX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vMzIv Ki5TIikpCi0gICBXcml0ZUFycmF5KGZkLCAiYXJtNjRfYXNtX3NvdXJjZXMiLCBnbG9iLmdsb2Io ImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCi0gICBXcml0ZUFycmF5KGZkLCAiYXJtX3RlbXBs YXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vKl90bXBsLmMiKSkKLS0K LSsgIFdyaXRlQXJyYXkoZmQsICJwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJs aWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCi0rIAotICAgdGVtcGxhdGVfc291cmNlcyA9IGds b2IuZ2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikKLSAgIFdyaXRlQXJyYXkoZmQsICJ0ZW1w bGF0ZV9zb3VyY2VzIiwgdGVtcGxhdGVfc291cmNlcykKLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oIHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRh djFkL3NyYy9wcGMvdHlwZXMuaAotaW5kZXggMGI0YmQ3MmYuLmEwY2FhNWU3IDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAotKysrIHRoaXJkX3Bh cnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAotQEAgLTUxLDQgKzUxLDE5IEBACi0g I2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVj X3NwbGF0X3UxNigwKSkpCi0gI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfdW5w YWNrbCgoaTE2eDgpdikpCi0gCi0rI2lmIGRlZmluZWQoX19jbGFuZ19fKQotKyN1bmRlZiB2ZWNf c3BsYXRzCi0rI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIHVuc2ln bmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCi0rICAgICAgICBzaWduZWQgY2hhcjogICAg ICAgICgoaTh4MTYpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUxNng4 KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBcCi0r ICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAotKyAgICAgICAgc2ln bmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZzogKCh1NjR4MikoTikpLCBcCi0rICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgoaTY0 eDIpKE4pKSAgXAotKyAgICApCi0rI2VuZGlmCi0rCi0gI2VuZGlmIC8qIERBVjFEX1NSQ19QUENf VFlQRVNfSCAqLwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBw b3J0LmggdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCBkMmJh ZWU5ZC4uOTk1NWNlNDQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxf c3VwcG9ydC5oCi0rKysgdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1A QCAtMzkyMiw3ICszOTIyLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgICAgIExTU19S RUcoMiwgYnVmKTsKLSAgICAgICBMU1NfQk9EWSh2b2lkKiwgbW1hcDIsICIwIihfX3IyKSk7Ci0g ICAgIH0KLS0jZWxzZQotKyNlbGlmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pIC8qIHBwYzY0IGRv ZXNuJ3QgaGF2ZSBtbWFwMiAqLwotICAgICAjZGVmaW5lIF9fTlJfX21tYXAyIF9fTlJfbW1hcDIK LSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDYodm9pZCosIF9tbWFwMiwgICAgICAgICAgICB2b2lk KiwgcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90LCAgICAgICAgICAgICAgICAg ICBsLCBpbnQsICAgICAgICAgICAgICAgcCwKLUBAIC00MDMzLDcgKzQwMzMsNyBAQCBzdHJ1Y3Qg a2VybmVsX3N0YXRmcyB7Ci0gICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIGRlZmluZWQo X19BUk1fQVJDSF8zX18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCAgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX01JUFNf U0lNX0FCSTMyKSB8fCAgICAgICAgICAgICAgICAgICBcCi0tICAgICAgZGVmaW5lZChfX1BQQ19f KSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotKyAgICAgKGRlZmluZWQoX19QUENfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgICAoZGVmaW5lZChfX3MzOTBfXykgJiYgIWRlZmluZWQoX19zMzkweF9fKSkKLSAgICAgLyog T24gdGhlc2UgYXJjaGl0ZWN0dXJlcywgaW1wbGVtZW50IG1tYXAoKSB3aXRoIG1tYXAyKCkuICov Ci0gICAgIExTU19JTkxJTkUgdm9pZCogTFNTX05BTUUobW1hcCkodm9pZCAqcywgc2l6ZV90IGws IGludCBwLCBpbnQgZiwgaW50IGQsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9w ZmZmdC5jIHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1pbmRleCBiZGFjNGQ3ODQuLjUx ZTBmMmNhYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotKysrIHRo aXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1AQCAtMTAwLDYgKzEwMCw3IEBACi0gICAgQWx0 aXZlYyBzdXBwb3J0IG1hY3JvcyAKLSAqLwotICNpZiAhZGVmaW5lZChQRkZGVF9TSU1EX0RJU0FC TEUpICYmIChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSkKLSsjaW5jbHVk ZSA8YWx0aXZlYy5oPgotIHR5cGVkZWYgdmVjdG9yIGZsb2F0IHY0c2Y7Ci0gIyAgZGVmaW5lIFNJ TURfU1ogNAotICMgIGRlZmluZSBWWkVSTygpICgodmVjdG9yIGZsb2F0KSB2ZWNfc3BsYXRfdTgo MCkpCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAg dGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAotaW5kZXggODhlYjFjN2Qu LjRiZTMzZmE1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmlu Zy5jcHAKLSsrKyB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi1AQCAt MjQwLDcgKzI0MCwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2YWx1ZSkgewotICAgICBp ZiAobmVlZHNEb3RaZXJvKSB7Ci0gICAgICAgICBidWZmZXIgPDwgIi4wIjsKLSAgICAgfQotLSAg ICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKLSsKLSsgICAgc3RkOjpzdHJp bmcgcmV0KGJ1ZmZlci5zdHIoKSk7Ci0rICAgIGlmIChzaWduYml0KHZhbHVlKSAmJiByZXRbMF0g PT0gJy4nKSB7Ci0rICAgICAgICByZXRbMF0gPSAnLSc7Ci0rICAgIH0KLSsgICAgcmV0dXJuIFN0 cmluZyhyZXQuY19zdHIoKSk7Ci0gfQotIAotIFNLU0xfSU5UIHN0b2koY29uc3QgU3RyaW5nJiBz KSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0 ZTMuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLWluZGV4 IDFiMmMyZWM3Li43NTkzZGJhMSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2Ft YWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsrKyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1h dGlvbi9zcWxpdGUzLmMKLUBAIC0xNDQwMCw3ICsxNDQwMCw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQ RSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykg ICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX194ODZfNjQp ICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAot ICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVm aW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAgICAgZGVmaW5lZChfX0FS TUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwg ICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBf X09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAg MTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBc Ci0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVCX18pCi1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUz LmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotaW5k ZXggMTljODc2ODkuLmM3YWIwMzllIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMv YW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLSsrKyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2Ft YWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi1AQCAtMTQ0MTMsNyArMTQ0MTMsOCBAQCB0eXBlZGVm IElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQo X19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVk KF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkg IHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAg ICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18p IHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRl ZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01f QVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09S REVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllU RU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19w cGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFQl9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJl ZS5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLWluZGV4IGVmYWVm ODEzLi40Y2Q1N2Q1NSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJl ZS9ydHJlZS5jCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwot QEAgLTQzMiw3ICs0MzIsNyBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7Ci0gI2lmIGRlZmluZWQo aTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAg ICBcCi0gICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQo X01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgIGRlZmluZWQoX19h cm1fXykKLSsgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjIGRlZmluZSBT UUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZp bmVkKF9fcHBjX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oIHRoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1pbmRleCAxMjJlMjZhZC4uZWMyMWRjYjUgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLSsrKyB0aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotQEAgLTg2OCw3ICs4NjgsOCBAQCB0eXBl ZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmlu ZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZp bmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2 NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkg ICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVM X18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAg IGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQo X01fQVJNNjQpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9P UkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZ VEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9f cHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUJfXykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9j YXB0dXJlL2RpZmZlcl9ibG9jay5jYyB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9w X2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjCi1pbmRleCBkZDlhYjQ1Ny4uYzAwNWQ5NTkgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9i bG9jay5jYy5vcmlnCTIwMjAtMTEtMTcgMTM6NDI6MDIuMDAwMDAwMDAwIC0wNTAwCi0rKysgdGhp cmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYwky MDIwLTExLTE4IDIxOjExOjAzLjAzOTkwNTM2MCAtMDUwMAotQEAgLTMwLDExICszMCw3IEBACi0g ICBzdGF0aWMgYm9vbCAoKmRpZmZfcHJvYykoY29uc3QgdWludDhfdCosIGNvbnN0IHVpbnQ4X3Qq KSA9IG51bGxwdHI7Ci0gCi0gICBpZiAoIWRpZmZfcHJvYykgewotLSNpZiBkZWZpbmVkKFdFQlJU Q19BUkNIX0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRDX0FSQ0hfTUlQU19GQU1JTFkpCi0t ICAgIC8vIEZvciBBUk0gYW5kIE1JUFMgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNpb24u Ci0tICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCi0tICAgIGRp ZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0tI2Vsc2UKLSsjaWYgZGVmaW5lZChXRUJS VENfQVJDSF9YODZfRkFNSUxZKQotICAgICBib29sIGhhdmVfc3NlMiA9IEdldENQVUluZm8oa1NT RTIpICE9IDA7Ci0gICAgIC8vIEZvciB4ODYgcHJvY2Vzc29ycywgY2hlY2sgaWYgU1NFMiBpcyBz dXBwb3J0ZWQuCi0gICAgIGlmIChoYXZlX3NzZTIgJiYga0Jsb2NrU2l6ZSA9PSAzMikgewotQEAg LTQ0LDYgKzQwLDEwIEBACi0gICAgIH0gZWxzZSB7Ci0gICAgICAgZGlmZl9wcm9jID0gJlZlY3Rv ckRpZmZlcmVuY2VfQzsKLSAgICAgfQotKyNlbHNlCi0rICAgIC8vIEZvciBvdGhlciBwcm9jZXNz b3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KLSsgICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVu dCBhIE5FT04gdmVyc2lvbi4KLSsgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsK LSAjZW5kaWYKLSAgIH0KLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNl L3N5c3RlbS9hcmNoLmggdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgK LWluZGV4IGVkMjE2ZTY2Li4yNWQzNmMwNyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS93ZWJydGMv cnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotKysrIHRoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9z eXN0ZW0vYXJjaC5oCi1AQCAtNTAsNiArNTAsMTggQEAKLSAjZWxpZiBkZWZpbmVkKF9fRU1TQ1JJ UFRFTl9fKQotICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotICNkZWZpbmUgV0VCUlRDX0FS Q0hfTElUVExFX0VORElBTgotKyNlbGlmIGRlZmluZWQoX19QUENfXykKLSsjZGVmaW5lIFdFQlJU Q19BUkNIX1BQQ19GQU1JTFkKLSsjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVf RU5ESUFOX18KLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxzZQotKyNk ZWZpbmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fTFA2 NF9fKQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfNjRfQklUUwotKyNlbHNlCi0rI2RlZmluZSBXRUJS VENfQVJDSF8zMl9CSVRTCi0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUGxlYXNlIGFkZCBzdXBw b3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0gI2Vu ZGlmCi0gZGlmZiAtLWdpdCB2OC9CVUlMRC5nbiB2OC9CVUlMRC5nbgotaW5kZXggMTY3ZTYzNTAz Li4xMjVjNDQ1ZWEgMTAwNjQ0Ci0tLS0gdjgvQlVJTEQuZ24KLSsrKyB2OC9CVUlMRC5nbgotQEAg LTY5Niw2ICs2OTYsMTIgQEAgY29uZmlnKCJ0b29sY2hhaW4iKSB7Ci0gICAgIH0KLSAgICAgaWYg KGhvc3RfYnl0ZW9yZGVyID09ICJsaXR0bGUiKSB7Ci0gICAgICAgZGVmaW5lcyArPSBbICJWOF9U QVJHRVRfQVJDSF9QUENfTEUiIF0KLSsgICAgICAgIGNmbGFncyArPSBbCi0rICAgICAgICAjIEVu YWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhlciBQT1dFUjggYW5kIGhpZ2hlciBm ZWF0dXJlcwotKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCi0rICAgICAgICAiLW1hbHRpdmVjIiwK LSsgICAgICAgICItbXZzeCIsCi0rICAgICAgXQotICAgICB9IGVsc2UgaWYgKGhvc3RfYnl0ZW9y ZGVyID09ICJiaWciKSB7Ci0gICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENf QkUiIF0KLSAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4IikgewotZGlmZiAtLWdpdCB1aS9n bC9mZWF0dXJlcy5nbmkgdWkvZ2wvZmVhdHVyZXMuZ25pCi1pbmRleCBjYjJjOTg2NDkuLjVlMDli YzFmNyAxMDA2NDQKLS0tLSB1aS9nbC9mZWF0dXJlcy5nbmkKLSsrKyB1aS9nbC9mZWF0dXJlcy5n bmkKLUBAIC0yNSw1ICsyNSw2IEBAIGRlY2xhcmVfYXJncygpIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBpc19jaHJvbWVvcyB8fCBpc19mdWNoc2lhKSAmJgotICAgICAgICAgICAgICAgICAg ICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fAotICAg ICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gImFybSIgfHwgdGFyZ2V0X2NwdSA9 PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlw c2VsIiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIpCi0rICAgICAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIgfHwK LSsgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09ICJwcGM2NCIpCi0gfQotZGlm ZiAtLWdpdCB2OC90ZXN0L0JVSUxELmduIHY4L3Rlc3QvQlVJTEQuZ24KLWluZGV4IGY2ZDMwNTM3 YS4uMjg3YjI3MDgwIDEwMDY0NAotLS0tIHY4L3Rlc3QvQlVJTEQuZ24KLSsrKyB2OC90ZXN0L0JV SUxELmduCi1AQCAtMzEsNyArMzEsNyBAQCBncm91cCgiZ25fYWxsIikgewotICAgICBkZXBzICs9 IFsKLSAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCi0gICAgICAgImNjdGVzdDpnZW5lcmF0ZS1ieXRl Y29kZS1leHBlY3RhdGlvbnMiLAotLSAgICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAg ICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICBdCi0gICB9Ci0gfQotQEAgLTczLDcgKzcz LDcgQEAgZ3JvdXAoInY4X2JvdF9kZWZhdWx0IikgewotICAgICAibWVzc2FnZTp2OF9tZXNzYWdl IiwKLSAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCi0gICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1 bXAiLAotLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0rICAgICMidW5pdHRlc3RzOnVuaXR0 ZXN0cyIsCi0gICAgICJ3YXNtLWFwaS10ZXN0czp3YXNtX2FwaV90ZXN0cyIsCi0gICAgICJ3YXNt LWpzOnY4X3dhc21fanMiLAotICAgICAid2FzbS1zcGVjLXRlc3RzOnY4X3dhc21fc3BlY190ZXN0 cyIsCi1AQCAtOTMsNyArOTMsNyBAQCBncm91cCgidjhfZGVmYXVsdCIpIHsKLSAgICAgIm1lc3Nh Z2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4X21qc3VuaXQiLAotICAgICAibWtncm9r ZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAotKyAgICAjInVu aXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAid2FzbS1hcGktdGVzdHM6d2FzbV9hcGlfdGVzdHMi LAotICAgICAid2FzbS1qczp2OF93YXNtX2pzIiwKLSAgICAgIndhc20tc3BlYy10ZXN0czp2OF93 YXNtX3NwZWNfdGVzdHMiLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSBi L3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggMDk4Y2I5MDRkYTkuLmMwOGM5YTYwMDRk IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hy b21pdW0vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjaHJv bWl1bScKIHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL2Rl dmVsb3BlcnMvY2FsZW5kYXIgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgotdmVyc2lvbj04OC4wLjQz MjQuMTgyCit2ZXJzaW9uPTg5LjAuNDM4OS43MgogcmV2aXNpb249MQogYXJjaHM9Imk2ODYqIHg4 Nl82NCogYWFyY2g2NCogYXJtdjdsKiBwcGM2NGxlKiIKIHNob3J0X2Rlc2M9Ikdvb2dsZSdzIGF0 dGVtcHQgYXQgY3JlYXRpbmcgYSBzYWZlciwgZmFzdGVyLCBhbmQgbW9yZSBzdGFibGUgYnJvd3Nl ciIKQEAgLTksNyArOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cu Y2hyb21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29n bGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsLyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0zMDQxMWZjM2VjMmQzM2RmNGM1Y2FkNDFmMjFhZmZhMzgyM2M4 MGY3ZGJkMzk0ZjZkNjhmOWExZTgxMDE1YjgxCitjaGVja3N1bT05NDZhMGI2NWFhZDEwZTBmNzdh NTM5MTAzODkyMDk5YjcyMzgzMTBjNzMzZjI1YjQxZDU4Yjc2ZjZhYzBiYzRmCiBub2Nyb3NzPXll cwogCiBsaWIzMmRpc2FibGVkPXllcwpAQCAtMzQsNyArMzQsNyBAQCBtYWtlZGVwZW5kcz0ibGli cG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVs CiAgbGliWGN1cnNvci1kZXZlbCBsaWJmbGFjLWRldmVsIHNwZWV4LWRldmVsIGxpYm10cC1kZXZl bCBsaWJ3ZWJwLWRldmVsCiAgbGlianBlZy10dXJiby1kZXZlbCBsaWJldmVudC1kZXZlbCBqc29u LWMtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKICBtaW5pemlwLWRldmVsIGpzb25jcHAtZGV2ZWwgemxp Yi1kZXZlbCBsaWJjYXAtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbAotIHJlMi1kZXZlbCBmb250Y29u ZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIG9wdXMtZGV2ZWwKKyByZTItZGV2ZWwgZm9udGNvbmZp Zy1kZXZlbCBmcmVldHlwZS1kZXZlbAogIGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBweXRob24t c2V0dXB0b29scyB4Y2ItcHJvdG8KICAkKHZvcHRfaWYgcGlwZXdpcmUgbGlicGlwZXdpcmUwLjIt ZGV2ZWwpICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkiCiBkZXBlbmRzPSJsaWJleGlmIGh3 aWRzIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgeGRnLXV0aWxzIgpAQCAt MTE5LDYgKzExOSw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIHVzZV9zeXN0ZW1fdjg9MQogCSMg dXNlX3N5c3RlbV96bGliPTEKIAkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRpbHMgc3Bl ZXgKKwkjIG9wdXMgZmFpbHMgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIHNoaW0gaGVhZGVyIG9wdXMu aCB0cmllcyB0byBpbmNsdWRlIDxvcHVzLmg+CiAJc3lzdGVtPSIKIAkJZmZtcGVnCiAJCWZsYWMK QEAgLTEzMiw3ICsxMzMsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCWxpYndlYnAKIAkJbGlieG1s CiAJCWxpYnhzbHQKLQkJb3B1cwogCQlyZTIKIAkJc25hcHB5CiAJIgo= --===============2008725067389653061==--