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 2228 invoked from network); 3 Mar 2021 16:49:54 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 16:49:54 -0000 Content-Type: multipart/mixed; boundary="===============1503988295852350248==" 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 17:49:51 +0100 List-Id: Message-ID: <20210303164951.O4oCtzvyGiFWLoLgTpkRsdpyQT1lyfjM2J4EDYmmjuU@z> GitHub notification mails are now in MIME to allow UTF8. --===============1503988295852350248== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHVsbG1vbGwgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3B1 bGxtb2xsL3ZvaWQtcGFja2FnZXMgY2hyb21pdW0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5MjA1CgpbV0lQXSBjaHJvbWl1bTogdXBkYXRlIHRvIDg5 LjAuNDM4OS43MgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5 IGN1cnNvcnkgYW5kIHNlZW1zIHRvIHdvcmsNCisgaTY4NiBwYXRjaCBhcHBsaWVzIHcvbyBjaGFu Z2UsIGJ1aWx0LCBjdXJzb3J5IHRlc3QgaW4gYSBWTQ0KKyB4ODZfNjQtbXVzbCBwYXRjaCBzZXQg dXBkYXRlZCwgY3VycmVudGx5IGJ1bGRpbmcsIG5vdCB5ZXQgdGVzdGVkDQorIHBwYzY0bGUgcGF0 Y2ggcmVtb3ZlZCBmb3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVk PykNCisgc3lzdGVtIG9wdXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIHNoaW0gaGVh ZGVyIG9wdXMuaCB0cmllcyB0byBpbmNsdWRlIDxvcHVzLmg+IGFuZCBmYWlscw0KKyBub3Qgc3Vy ZSBpZiBsaWJjX21hbGxvYy5wYXRjaCBpcyBvaywgaS5lLiBzaW1wbHkgdXNlIG1hbGxvYygpIGlu c3RlYWQgb2YgX19saWJjX21hbGxvYygpLg0KKyBtb3JlIHRvIGRvDQoNCltjaSBza2lwXQ0KDQpJ ZiB5b3UgZG9uJ3Qgd2FudCB0byBidWlsZCB5b3Vyc2VsZjoNCmh0dHBzOi8vcmVwby52b2lkbGlu dXguZGUveDg2XzY0L2Nocm9taXVtLTg5LjAuNDM4OS43Ml8xLng4Nl82NC54YnBzDQpodHRwczov L3JlcG8udm9pZGxpbnV4LmRlL2k2ODYvY2hyb21pdW0tODkuMC40Mzg5LjcyXzEuaTY4Ni54YnBz DQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8yOTIwNS5wYXRjaCBpcyBhdHRhY2hlZA== --===============1503988295852350248== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSA0ZjY2YzVjMGZhZWJjY2M1YzYwOGQxZmNiNjZiMDM3YzAxYTM1ZWZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgpDVkUtMjAyMS0yMTE2NgoKKyB4ODZfNjQgcGF0Y2ggc2V0IHVwZGF0ZWQsIGJ1aWx0LCB0ZXN0 ZWQgdmVyeSBjdXJzb3J5IGFuZCBzZWVtcyB0byB3b3JrCisgaTY4NiBwYXRjaCBhcHBsaWVzIHcv byBjaGFuZ2UsIGJ1aWx0LCBjdXJzb3J5IHRlc3QgaW4gYSBWTQorIHg4Nl82NC1tdXNsIHBhdGNo IHNldCB1cGRhdGVkLCBidWlsdCwgbm90IHlldCB0ZXN0ZWQKKyBwYXRjaGVzL3BwYzY0bGUtcHBj NjRsZS1zdXBwb3J0LnBhdGNoIHJlbW92ZWQgZm9yIG5vdyAoYWxyZWFkeSB1cHN0cmVhbWVkPyBu ZWVkIHRvIGNoZWNrIGFnYWluKQorIGZpbGVzL211c2wtcGFjaGVzL3h4eC1wcGM2NGxlLXN1cHBv cnQucGF0Y2ggc3RyaXBwZWQgZG93biB0byB3aGF0IHN0aWxsIGFwcGxpZXMKKyBzeXN0ZW0gb3B1 cyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIgb3B1cy5oIHRyaWVz IHRvIGluY2x1ZGUgPG9wdXMuaD4gYW5kIGZhaWxzCisgbm90IHN1cmUgaWYgbGliY19tYWxsb2Mu cGF0Y2ggaXMgb2ssIGkuZS4gc2ltcGx5IHVzZSBtYWxsb2MoKSBpbnN0ZWFkIG9mIF9fbGliY19t YWxsb2MoKS4KKyBtb3JlIHRvIGRvCgpbY2kgc2tpcF0KLS0tCiAuLi4vZGVmYXVsdC1wdGhyZWFk LXN0YWNrc2l6ZS5wYXRjaCAgICAgICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtZml4ZXMucGF0Y2ggICAgICAgfCAgIDQwICstCiAuLi4vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtaGFja3MucGF0Y2ggICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtbGliYysrLnBhdGNoICAgICAgfCAgICA2ICstCiAuLi4vbXVzbC1wYXRjaGVzL211 c2wtbm8tZ2xpYmMtdmVyc2lvbi5wYXRjaCAgfCAgIDI4ICsKIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1zYW5kYm94LnBhdGNoICAgICB8ICAgMTIgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvbm8tbWFsbGluZm8ucGF0Y2ggICAgICB8ICAgIDYgKy0KIC4uLi9maWxlcy9tdXNsLXBhdGNo ZXMvcmVzb2x2ZXIucGF0Y2ggICAgICAgICB8ICAgIDIgKy0KIC4uLi9tdXNsLXBhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCAgICB8ICAxMTAgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaCB8ICAgMTAgLQogLi4uL2Nocm9taXVtLTg4LUFYVHJl ZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoIHwgICAyNyAtCiAuLi5pdW0tODgtQm9va21hcmtNb2Rl bE9ic2VydmVyLWluY2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLnVtLTg4LUNvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyLWRjaGVjay5wYXRjaCB8ICAgMzYgLQogLi4uL2Nocm9taXVtLTg4LVN0cmluZ1Bv b2wtaW5jbHVkZS5wYXRjaCAgICAgIHwgICAyMCAtCiAuLi5yb21pdW0tODgtZmVkZXJhdGVkX2xl YXJuaW5nLWluY2x1ZGUucGF0Y2ggfCAgIDIxIC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LWds aWJjLTIuMzMucGF0Y2ggICAgICB8ICAxNDQgLQogLi4uaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1Nw YWNlQ2hhcmFjdGVyLnBhdGNoIHwgICAyNyAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlw LWluY2x1ZGUucGF0Y2ggICAgfCAgIDI1IC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBp LWF0dHJpYnV0ZS5wYXRjaCB8ICAgMzkgLQogLi4udW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0 ZXItZGNoZWNrLnBhdGNoIHwgICAxMSArCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19t YWxsb2MucGF0Y2ggICAgfCAgIDIzICstCiAuLi5yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXIt d2FybmluZ3MucGF0Y2ggfCAgIDI2IC0KIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3Rp bWVkd2FpdC5wYXRjaCB8ICAgMjQgLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNp bmZvLnBhdGNoICAgIHwgICAxNiArLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNv bnRleHQucGF0Y2ggIHwgICAyNyAtCiBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tc3RkLXRp bWUucGF0Y2ggICAgfCAgIDExICsKIC4uLi9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFy cmllci5wYXRjaCB8ICAgNjAgLQogLi4uL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aCAgICAgICAgIHwgMzY1NiAtLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogMjkgZmlsZXMgY2hhbmdlZCwgOTUg aW5zZXJ0aW9ucygrKSwgNDM0OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLW5vLWdsaWJjLXZlcnNpb24ucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYnJvd3Nlci1z aXplX3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODgtQVhUcmVlRm9ybWF0dGVyLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9i c2VydmVyLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4 LVN0cmluZ1Bvb2wtaW5jbHVkZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1mZWRlcmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC1nbGliYy0yLjMzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTg4LWlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1p bmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRl ci1kY2hlY2sucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvbGx2bS1yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3MucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9uaWMt cHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9uby1nZXRjb250ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLXN0ZC10aW1lLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1z dXBwb3J0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBh dGNoZXMvZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v ZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKaW5kZXgg MTZlNGQyMWU2ZWQuLjhiZjlhM2RmYjM0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2Zp bGVzL211c2wtcGF0Y2hlcy9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCisrKyBiL3Ny Y3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVhZC1zdGFja3Np emUucGF0Y2gKQEAgLTEsMTIgKzEsMTIgQEAKIC0tLSBiYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90 aHJlYWRfbGludXguY2Mub3JpZwogKysrIGJhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9s aW51eC5jYwotQEAgLTk5ICs5OSwyIEBAIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXpl KGNvbnN0IHAKK0BAIC00NDAgKzQ0MCwyIEBAIHNpemVfdCBHZXREZWZhdWx0VGhyZWFkU3RhY2tT aXplKGNvbnN0IHAKIC0gIHJldHVybiAwOwogKyAgLy8gdXNlIDhtYiBsaWtlIGdsaWJjIHRvIGF2 b2lkIHJ1bm5pbmcgb3V0IG9mIHNwYWNlCiArICByZXR1cm4gKDEgPDwgMjMpOwogLS0tIGNocm9t ZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjLm9yaWcKICsrKyBjaHJvbWUv YXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYwotQEAgLTE4NCwxMSArMTg0LDE5 IEBACitAQCAtMTg3LDExICsxODcsMTkgQEAKICAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkID0g cGlwZWZkWzBdOwogICAgZ19zaHV0ZG93bl9waXBlX3dyaXRlX2ZkID0gcGlwZWZkWzFdOwogICNp ZiAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWZpeGVzLnBhdGNoCmluZGV4IGE3ODMyZmYzMmU4Li4x ZjEyZmY4YjA4ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNo ZXMvbXVzbC1maXhlcy5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0 Y2hlcy9tdXNsLWZpeGVzLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogLS0tIC4vdGhpcmRfcGFydHkv bHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oLm9yaWcKICsrKyAuL3RoaXJkX3BhcnR5L2xzcy9s aW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTExMjcsNiArMTEyNywxMiBAQAorQEAgLTEyNTgs NiArMTI1OCwxMiBAQAogICNpZm5kZWYgX19OUl9mYWxsb2NhdGUKICAjZGVmaW5lIF9fTlJfZmFs bG9jYXRlICAgICAgICAgIDI4NQogICNlbmRpZgpAQCAtMTUsNyArMTUsNyBAQAogICNpZiBfTUlQ U19TSU0gPT0gX01JUFNfU0lNX0FCSTMyCiAtLS0gLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu aC5vcmlnCiArKysgLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotQEAgLTM3LDYgKzM3LDEw IEBACitAQCAtMzgsNiArMzgsMTAgQEAKICAjaW5jbHVkZSAiY29tbW9uL21lbW9yeS5oIgogICNp bmNsdWRlICJnb29nbGVfYnJlYWtwYWQvY29tbW9uL21pbmlkdW1wX2Zvcm1hdC5oIgogIApAQCAt MjgsNyArMjgsNyBAQAogIC8vIFdyYXBzIHBsYXRmb3JtLWRlcGVuZGVudCBpbXBsZW1lbnRhdGlv bnMgb2YgYWNjZXNzb3JzIHRvIHVjb250ZXh0X3Qgc3RydWN0cy4KIC0tLSAuL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oLm9yaWcK ICsrKyAuL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxm X2NvcmVfZHVtcC5oCi1AQCAtMzYsNiArMzYsNyBAQAorQEAgLTM3LDYgKzM3LDcgQEAKICAjaW5j bHVkZSA8ZWxmLmg+CiAgI2luY2x1ZGUgPGxpbmsuaD4KICAjaW5jbHVkZSA8c3RkZGVmLmg+CkBA IC0zOCw3ICszOCw3IEBACiAgCiAtLS0gLi9zYW5kYm94L2xpbnV4L3N1aWQvcHJvY2Vzc191dGls Lmgub3JpZwogKysrIC4vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCi1AQCAtMTEs NiArMTEsMTQgQEAKK0BAIC0xMiw2ICsxMiwxNCBAQAogICNpbmNsdWRlIDxzdGRib29sLmg+CiAg I2luY2x1ZGUgPHN5cy90eXBlcy5oPgogIApAQCAtNjYsNyArNjYsNyBAQAogICNpZiBkZWZpbmVk KF9fbWlwc19fKQogLS0tIC4vdGhpcmRfcGFydHkvZmZtcGVnL2xpYmF2dXRpbC9jcHUuYy5vcmln CiArKysgLi90aGlyZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2NwdS5jCi1AQCAtMzgsNyArMzgs NiBAQAorQEAgLTQxLDcgKzQxLDYgQEAKICAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAgI2VuZGlm CiAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtNzQsMjggKzc0LDYgQEAKICAjZW5kaWYKICAj aWYgSEFWRV9VTklTVERfSAogICNpbmNsdWRlIDx1bmlzdGQuaD4KLWRpZmYgLS1naXQgYS9jaHJv bWUvYnJvd3Nlci9tZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmlj cy5jYyBiL2Nocm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9w YXJ0c19tZXRyaWNzLmNjCi0tLS0gY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nl cl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MKLSsrKyBjaHJvbWUvYnJvd3Nlci9tZXRyaWNz L2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwotQEAgLTM5LDcgKzM5 LDkgQEAKLSAjZW5kaWYgIC8vIGRlZmluZWQoT1NfQU5EUk9JRCkgJiYgZGVmaW5lZChfX2FybV9f KQotIAotICNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSsj aWYgZGVmaW5lZChfX0dMSUJDX18pCi0gI2luY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KLSsj ZW5kaWYKLSAKLSAjaW5jbHVkZSAiYmFzZS9saW51eF91dGlsLmgiCi0gI2luY2x1ZGUgImJhc2Uv c3RyaW5ncy9zdHJpbmdfc3BsaXQuaCIKLUBAIC0yOTUsNyArMjk3LDcgQEAgdm9pZCBSZWNvcmRM aW51eERpc3RybygpIHsKLSAjZW5kaWYgIC8vIGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVk KE9TX0NIUk9NRU9TKQotIAotIHZvaWQgUmVjb3JkTGludXhHbGliY1ZlcnNpb24oKSB7Ci0tI2lm IGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gICBiYXNlOjpWZXJzaW9uIHZl cnNpb24oZ251X2dldF9saWJjX3ZlcnNpb24oKSk7Ci0gCi0gICBVTUFMaW51eEdsaWJjVmVyc2lv biBnbGliY192ZXJzaW9uX3Jlc3VsdCA9IFVNQV9MSU5VWF9HTElCQ19OT1RfUEFSU0VBQkxFOwog LS0tIHNlcnZpY2VzL2RldmljZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXguY2Mub3Jp ZwkyMDE5LTA3LTAzIDEwOjU3OjMyLjU2ODE3MTgzNSAtMDQwMAogKysrIHNlcnZpY2VzL2Rldmlj ZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXguY2MJMjAxOS0wNy0wMyAxMDo1NzoxNi44 Njc5ODMwMzEgLTA0MDAKIEBAIC02LDYgKzYsNyBAQApAQCAtMTMxLDcgKzEwOSw3IEBAIGRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlzZXIuaCBiL3Ro aXJkX3BhcnR5L290cy9pbmNsCiAgICAgIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3Ry YWNlOwogLS0tIC4vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNr X3V0aWwuY2Mub3JpZwogKysrIC4vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v d3RmL3N0YWNrX3V0aWwuY2MKLUBAIC0yOCw3ICsyOCw3IEBACitAQCAtMjksNyArMjksNyBAQAog IC8vIEZJWE1FOiBPbiBNYWMgT1NYIGFuZCBMaW51eCwgdGhpcyBtZXRob2QgY2Fubm90IGVzdGlt YXRlIHN0YWNrIHNpemUKICAvLyBjb3JyZWN0bHkgZm9yIHRoZSBtYWluIHRocmVhZC4KICAKQEAg LTE0MCw3ICsxMTgsNyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvb3RzL2luY2x1ZGUvb3Bl bnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9vdHMvaW5jbAogICAgICBkZWZpbmVkKE9T X0ZVQ0hTSUEpCiAgICAvLyBwdGhyZWFkX2dldGF0dHJfbnAoKSBjYW4gZmFpbCBpZiB0aGUgdGhy ZWFkIGlzIG5vdCBpbnZva2VkIGJ5CiAgICAvLyBwdGhyZWFkX2NyZWF0ZSgpIChlLmcuLCB0aGUg bWFpbiB0aHJlYWQgb2YgYmxpbmtfdW5pdHRlc3RzKS4KLUBAIC05Niw3ICs5Niw3IEBACitAQCAt OTcsNyArOTcsNyBAQAogIH0KICAKICB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgewpAQCAtMTUxLDcg KzEyOSw3IEBAIGRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1z YW5pdGlzZXIuaCBiL3RoaXJkX3BhcnR5L290cy9pbmNsCiAgICBpbnQgZXJyb3I7CiAtLS0gLi9u ZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYy5vcmlnCiArKysgLi9uZXQvZG5zL2Ru c19jb25maWdfc2VydmljZV9wb3NpeC5jYwotQEAgLTEyMiw3ICsxMjIsNyBAQAorQEAgLTE1MCw3 ICsxNTAsNyBAQAogICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCByZXN1bHQ7CiAgICBjb25maWct PnVuaGFuZGxlZF9vcHRpb25zID0gZmFsc2U7CiAgLy8gVE9ETyhmdWNoc2lhKTogVXNlIHJlc19u aW5pdCgpIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lhLgpAQCAtMTgxLDcgKzE1OSw3 IEBAIGRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9vdHMvaW5jbHVkZS9vcGVudHlwZS1zYW5pdGlz ZXIuaCBiL3RoaXJkX3BhcnR5L290cy9pbmNsCiAgCiAtLS0gdGhpcmRfcGFydHkvbmFzbS9uYXNt bGliL3JlYWxwYXRoLmMub3JpZwkyMDE5LTA3LTAzIDEyOjIzOjA1LjAyMTk0OTg5NSAtMDQwMAog KysrIHRoaXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jCTIwMTktMDctMDMgMTI6MjQ6 MjQuMjQ2ODYyNjY1IC0wNDAwCi1AQCAtNDksNyArNDksNyBAQAorQEAgLTQ3LDcgKzQ3LDcgQEAK ICAKICAjaW5jbHVkZSAibmFzbWxpYi5oIgogIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v ZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtaGFja3MucGF0Y2gKaW5kZXggZWRjMWIwNjBkZmIuLjky NzZlNDhhYjhlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hl cy9tdXNsLWhhY2tzLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtaGFja3MucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0gYmFzZS9kZWJ1Zy9zdGFj a190cmFjZS5jYy5vcmlnCTIwMTgtMTItMDggMTQ6MTE6MjUuMzAzNDc1MTE2ICswMTAwCiArKysg YmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYwkyMDE4LTEyLTA4IDE4OjAwOjQzLjg3NDk0Njk5OSAr MDEwMAotQEAgLTIyOSw3ICsyMjksNyBAQAorQEAgLTIyNSw3ICsyMjUsNyBAQAogIH0KICBzdGQ6 OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4 X3N0cmluZykgY29uc3QgewogICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwpAQCAtMTEsNyAr MTEsNyBAQAogICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKIC0tLSBuZXQvc29ja2V0L3VkcF9zb2Nr ZXRfcG9zaXguY2Mub3JpZwkyMDE5LTA3LTAzIDEzOjEzOjQ2LjAzNDM0MjY0OSAtMDQwMAogKysr IG5ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYwkyMDE5LTA3LTAzIDEzOjIzOjUzLjExNzA4 MTkwOSAtMDQwMAotQEAgLTExOTQsNyArMTE5NCw3IEBACitAQCAtMTE1Myw3ICsxMTUzLDcgQEAK ICAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEo KSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKICAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUo KSk7CiAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWxpYmMrKy5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtbGliYysrLnBh dGNoCmluZGV4IDA4OGQ4MGZhZDUyLi5lMDc3NjgyMzQwMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9j aHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKKysrIGIvc3JjcGtn cy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2gKQEAgLTIsNyAr Miw3IEBAIGRpZmYgLS1naXQgYS9idWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9p bmNsdWRlL2xvY2FsZSBiL2J1aWxkdG9vbHMvdGhpCiBpbmRleCBkMjlhMmRjLi41Mzk5OGJjIDEw MDY0NAogLS0tIGJ1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9j YWxlCiArKysgYnVpbGR0b29scy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2Nh bGUKLUBAIC0xMSw2ICsxMSwxNSBAQAorQEAgLTEwLDYgKzEwLDE1IEBACiAgI2lmbmRlZiBfTElC Q1BQX0xPQ0FMRQogICNkZWZpbmUgX0xJQkNQUF9MT0NBTEUKICAKQEAgLTIyLDcgKzIyLDcgQEAg ZGlmZiAtLWdpdCBhL2J1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL3NyYy9sb2Nh bGUuY3BwIGIvYnVpbGR0b29scy90aGkKIGluZGV4IDQxNjNjMmMuLjNkMTkwMmEgMTAwNjQ0CiAt LS0gYS9idWlsZHRvb2xzL3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcAog KysrIGJ1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGliYysrL3RydW5rL3NyYy9sb2NhbGUuY3BwCi1A QCAtMTAyOCwxMSArMTAyOCwxMSBAQCBjdHlwZTxjaGFyPjo6ZG9fbmFycm93KGNvbnN0IGNoYXJf dHlwZSogbG93LCBjb25zdCBjaGFyX3R5cGUqIGhpZ2gsIGNoYXIgZGZhdWx0LAorQEAgLTEwMTks MTEgKzEwMTksMTEgQEAgY3R5cGU8Y2hhcj46OmRvX25hcnJvdyhjb25zdCBjaGFyX3R5cGUqIGxv dywgY29uc3QgY2hhcl90eXBlKiBoaWdoLCBjaGFyIGRmYXVsdCwKICAgICAgcmV0dXJuIGxvdzsK ICB9CiAgCkBAIC0zNiw3ICszNiw3IEBAIGluZGV4IDQxNjNjMmMuLjNkMTkwMmEgMTAwNjQ0CiAg CiAgI2lmZGVmIF9MSUJDUFBfUFJPVklERVNfREVGQVVMVF9SVU5FX1RBQkxFCiAgY29uc3QgY3R5 cGU8Y2hhcj46Om1hc2sqCi1AQCAtMTEzNiwxMiArMTEzNiwxMCBAQCBjdHlwZTxjaGFyPjo6Y2xh c3NpY190YWJsZSgpICBfTk9FWENFUFQKK0BAIC0xMTI3LDEyICsxMTI3LDEwIEBAIGN0eXBlPGNo YXI+OjpjbGFzc2ljX3RhYmxlKCkgIF9OT0VYQ0VQVAogICNlbGlmIGRlZmluZWQoX0FJWCkKICAg ICAgcmV0dXJuIChjb25zdCB1bnNpZ25lZCBpbnQgKilfX2xjX2N0eXBlX3B0ci0+b2JqLT5tYXNr OwogICNlbHNlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hl cy9tdXNsLW5vLWdsaWJjLXZlcnNpb24ucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211 c2wtcGF0Y2hlcy9tdXNsLW5vLWdsaWJjLXZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlmZmVjNjI0NjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1uby1nbGliYy12ZXJzaW9uLnBh dGNoCkBAIC0wLDAgKzEsMjggQEAKKy0tLSBjaHJvbWUvYnJvd3Nlci9tZXRyaWNzL2Nocm9tZV9i cm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDU6 MDMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJv d3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MJMjAyMS0wMy0wMyAxNzozOToxNC45NDQx MDA3NDYgKzAxMDAKK0BAIC01NSw3ICs1NSw5IEBACisgLy8gVE9ETyhjcmJ1Zy5jb20vMTA1MjM5 Nyk6IFJldmlzaXQgdGhlIG1hY3JvIGV4cHJlc3Npb24gb25jZSBidWlsZCBmbGFnIHN3aXRjaAor IC8vIG9mIGxhY3Jvcy1jaHJvbWUgaXMgY29tcGxldGUuCisgI2lmIGRlZmluZWQoT1NfTElOVVgp IHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNST1MpCisrI2lmIGRlZmluZWQoX19HTElCQ19f KQorICNpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUg ImJhc2UvbGludXhfdXRpbC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0 LmgiCitAQCAtMzE3LDYgKzMxOSw3IEBACisgLy8gVE9ETyhjcmJ1Zy5jb20vMTA1MjM5Nyk6IFJl dmlzaXQgdGhlIG1hY3JvIGV4cHJlc3Npb24gb25jZSBidWlsZCBmbGFnIHN3aXRjaAorIC8vIG9m IGxhY3Jvcy1jaHJvbWUgaXMgY29tcGxldGUuCisgI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IEJV SUxERkxBRyhJU19DSFJPTUVPU19MQUNST1MpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAg YmFzZTo6VmVyc2lvbiB2ZXJzaW9uKGdudV9nZXRfbGliY192ZXJzaW9uKCkpOworIAorICAgVU1B TGludXhHbGliY1ZlcnNpb24gZ2xpYmNfdmVyc2lvbl9yZXN1bHQgPSBVTUFfTElOVVhfR0xJQkNf Tk9UX1BBUlNFQUJMRTsKK0BAIC0zMzgsNiArMzQxLDcgQEAKKyAgIH0KKyAgIGJhc2U6OlVtYUhp c3RvZ3JhbVNwYXJzZSgiTGludXguR2xpYmNWZXJzaW9uIiwgZ2xpYmNfdmVyc2lvbl9yZXN1bHQp OworICNlbmRpZgorKyNlbmRpZgorIH0KKyAKKyB2b2lkIFJlY29yZFRvdWNoRXZlbnRTdGF0ZSgp IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wt c2FuZGJveC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wt c2FuZGJveC5wYXRjaAppbmRleCAyMzBiYjdiYmQyOS4uMGI5ODI1M2Y0ZDYgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaAor KysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLXNhbmRib3gucGF0 Y2gKQEAgLTEsNiArMSw2IEBACiAtLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYy5vcmlnCTIwMTktMDctMDMgMTE6 NTM6MjEuMjEzNDc5NzM2IC0wNDAwCiArKysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwkyMDE5LTA3LTAzIDExOjU3 OjAxLjMwNDk5ODI1MyAtMDQwMAotQEAgLTE0MCwzMSArMTQwLDE0IEBACitAQCAtMTMxLDMxICsx MzEsMTQgQEAKICBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmso KSB7CiAgICBjb25zdCBBcmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CiAgCkBAIC00MSw3ICs0 MSw3IEBACiAgCiAtLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmNjLm9yaWcKICsrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuY2MKLUBAIC00OTQsNiArNDk0LDcgQEAKK0BAIC01MjEsNiArNTIxLDcgQEAK ICAgICAgY2FzZSBfX05SX21sb2NrOgogICAgICBjYXNlIF9fTlJfbXVubG9jazoKICAgICAgY2Fz ZSBfX05SX211bm1hcDoKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAgICByZXR1cm4gdHJ1ZTsKICAg ICAgY2FzZSBfX05SX21hZHZpc2U6CiAgICAgIGNhc2UgX19OUl9taW5jb3JlOgotQEAgLTUwOSw3 ICs1MTAsNiBAQAorQEAgLTU0MCw3ICs1NDAsNiBAQAogICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xk dDoKICAjZW5kaWYKICAgICAgY2FzZSBfX05SX21wcm90ZWN0OgpAQCAtNjEsNyArNjEsNyBAQCBk aWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0 cy5jYyBiL3NhbmRib3gvbGludXgvcwogaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQKIC0t LSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCiArKysg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM3 Myw2ICszNzMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRl YXRoKGludCBzeXNubykgeworQEAgLTQwMCw2ICs0MDAsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9f aTM4Nl9fKQogICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKICAjZW5kaWYKQEAgLTY5LDcgKzY5LDcg QEAgaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQKICAgICAgICByZXR1cm4gdHJ1ZTsKICAg ICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgog ICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgotQEAgLTM4NSw3ICszODYsNiBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNu bykgeworQEAgLTQxMyw3ICs0MTMsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9j ZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewogICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCiAgICAgIGNhc2UgX19OUl9z ZXRfdGhyZWFkX2FyZWE6CiAgI2VuZGlmCkBAIC03OSw3ICs3OSw3IEBAIGluZGV4IDgwZjAyYzAu LjIxZmJlMjEgMTAwNjQ0CiAgICAgIGNhc2UgX19OUl92Zm9yazoKIC0tLSBzYW5kYm94L3BvbGlj eS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCiArKysgc2FuZGJveC9wb2xpY3kv bGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotQEAgLTEwMCw5ICsxMDAsOSBAQAor QEAgLTk1LDkgKzk1LDkgQEAKICAgICAgY2FzZSBfX05SX3VuYW1lOgogICAgICBjYXNlIF9fTlJf c2NoZWRfZ2V0cGFyYW06CiAgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL25vLW1hbGxpbmZvLnBh dGNoCmluZGV4IDI1NGExZjYzMmRhLi4xNmU3ZTM2ODE3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9j aHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKKysrIGIvc3JjcGtn cy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTEsNiAr MSw2IEBACiAtLS0gYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYy5vcmln CiArKysgYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYwotQEAgLTI0Myw3 ICsyNDMsNyBAQAorQEAgLTE4NCw3ICsxODQsNyBAQAogICAgYWxsb2NhdGVkX29iamVjdHNfY291 bnQgPSBtYWluX2hlYXBfaW5mby5ibG9ja19jb3VudDsKICAjZWxpZiBkZWZpbmVkKE9TX0ZVQ0hT SUEpCiAgLy8gVE9ETyhmdWNoc2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5 Mi4KQEAgLTMwLDcgKzMwLDcgQEAKICAjZW5kaWYKIC0tLSB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRl ci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vbGliL1N1cHBvcnQvVW5peC9Qcm9jZXNzLmluYwog KysrIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIv U3VwcG9ydC9Vbml4L1Byb2Nlc3MuaW5jLm9yaWcKLUBAIC04NCw3ICs4NCw3IEBACitAQCAtODYs NyArODYsNyBAQAogIH0KICAKICBzaXplX3QgUHJvY2Vzczo6R2V0TWFsbG9jVXNhZ2UoKSB7CkBA IC00Miw3ICs0Miw3IEBACiAKIC0tLSB0aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0 eS9sbHZtLTEwLjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oLm9y aWcJMjAxOS0wOS0zMCAxMzowMzo0Mi41NTY4ODA1MzcgLTA0MDAKICsrKyB0aGlyZF9wYXJ0eS9z d2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xs dm0vQ29uZmlnL2NvbmZpZy5oCTIwMTktMDktMzAgMTM6MDc6MjcuOTg5ODIxMjI3IC0wNDAwCi1A QCAtMTIyLDcgKzEyMiw5IEBACitAQCAtMTI1LDcgKzEyNSw5IEBACiAgLyogI3VuZGVmIEhBVkVf TUFMTENUTCAqLwogIAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8n IGZ1bmN0aW9uLiAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBh dGNoZXMvcmVzb2x2ZXIucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hl cy9yZXNvbHZlci5wYXRjaAppbmRleCAyOWZlMmQyZjFmMy4uMGNlNzdjOTZhNjAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCisr KyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNoCkBA IC0xLDYgKzEsNiBAQAogLS0tIG5ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjLm9yaWcJ MjAyMC0xMC0wOSAxNjozOToxMi4wNjQwNjk4MzUgLTA0MDAKICsrKyBuZXQvZG5zL2hvc3RfcmVz b2x2ZXJfbWFuYWdlci5jYwkyMDIwLTEwLTA5IDE2OjQyOjQ5LjczODMwMjc3MiAtMDQwMAotQEAg LTI3NzksOCArMjc3OSw3IEBACitAQCAtMjU2Miw4ICsyNTYyLDcgQEAKICAgIE5ldHdvcmtDaGFu Z2VOb3RpZmllcjo6QWRkQ29ubmVjdGlvblR5cGVPYnNlcnZlcih0aGlzKTsKICAgIGlmIChzeXN0 ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8pCiAgICAgIHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVy Xy0+QWRkT2JzZXJ2ZXIodGhpcyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVz L211c2wtcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAppbmRleCA5MDAx YTJhODU0ZC4uMWJlOTMyMzEyZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMv bXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJv bWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApAQCAtMSw0 NiArMSwzIEBACi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jv cy5oIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCBhNmFlYzU0 NGUuLjJhNGE3ZjFiYyAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9t YWNyb3MuaAotKysrIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAt MTYsNyArMTYsNyBAQAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4g ZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLS0j ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190IG9uIHBw YzY0Ci0gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190OwotICNlbmRpZgotQEAgLTM2 MSwxMSArMzYxLDExIEBAIHR5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0gI2Rl ZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NAotICNlbmRpZgotIAotLSNkZWZpbmUg U0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19y ZWddKQotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKCgoc3RydWN0IHB0X3JlZ3Mg KikoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5ncHJbX3JlZ10pCi0gCi0gI2RlZmluZSBTRUND T01QX1JFU1VMVChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9T WVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDApCi0tI2RlZmluZSBTRUNDT01QX0lQKF9j dHgpIChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+bmlwCi0rI2RlZmluZSBTRUNDT01QX0lQKF9j dHgpICgoc3RydWN0IHB0X3JlZ3MgKikoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MpLT5uaXAKLSAj ZGVmaW5lIFNFQ0NPTVBfUEFSTTEoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5l IFNFQ0NPTVBfUEFSTTIoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNCkKLSAjZGVmaW5lIFNFQ0NP TVBfUEFSTTMoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNSkKLWRpZmYgLS1naXQgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lz Y2FsbC5jYwotaW5kZXggZDUzYTdmZjU2Li5jMjkwZjBlOTIgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi9zeXNjYWxsLmNjCi1AQCAtNDk5LDkgKzQ5OSw5IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJ blVjb250ZXh0KGludHB0cl90IHJldF92YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAgLy8gU2Ft ZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3Iw LlNPKQotICAgaWYgKHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgewotICAgICBy ZXRfdmFsID0gLXJldF92YWw7Ci0tICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgx IDw8IDI4KTsKLSsgICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncykt PmNjciB8PSAoMSA8PCAyOCk7Ci0gICB9IGVsc2UgewotLSAgICBjdHgtPnVjX21jb250ZXh0LnJl Z3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19t Y29udGV4dC5yZWdzKS0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0gICB9Ci0gI2VuZGlmCi0gICBTRUND T01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKIGRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNs ZWNsb2NrLmggdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2Fs ZWRjeWNsZWNsb2NrLmgKIGluZGV4IGNkY2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKIC0tLSB0aGly ZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2su aApAQCAtNTYsNyArMTMsNyBAQCBpbmRleCBjZGNlOWJmOC4uNzNkNzdkZGEgMTAwNjQ0CiAgI2Vs c2UKIC0tLSB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0 YWNrdHJhY2VfY29uZmlnLmgKICsrKyB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdn aW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKLUBAIC02NCw3ICs2NCw3IEBACitAQCAt NTksNyArNTksNyBAQAogICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykKICAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9JTkxfSEVBREVSIFwKICAgICJhYnNsL2Rl YnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3g4Ni1pbmwuaW5jIgpAQCAtNjUsMjMgKzIyLDEx IEBAIGluZGV4IGNkY2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKICAjZGVmaW5lIEFCU0xfU1RBQ0tU UkFDRV9JTkxfSEVBREVSIFwKICAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNl X3Bvd2VycGMtaW5sLmluYyIKICAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlM RC5nbgotaW5kZXggZjlhNjBlMzcuLjI1ZjNhMGI3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC02 MzcsNiArNjM3LDcgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgaWYg KGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSAgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dF VENPTlRFWFQiIF0KLSsgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KLSAgICAgfSBlbHNl IHsKLSAgICAgICAgIHNvdXJjZXMgKz0gWwotICAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKIGluZGV4IDAzYWZlYzdhLi4wMjY0 ZWNmMSAxMDA2NDQKIC0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwogKysrIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Ro cmVhZF9pbmZvLmNjCi1AQCAtMjczLDYgKzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQ VUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7CitAQCAtMjEwLDYgKzIxMCw5IEBA IHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25z dCB7CiAgCiAgI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQogIApAQCAtOTEsMjMgKzM2LDEx IEBAIGluZGV4IDAzYWZlYzdhLi4wMjY0ZWNmMSAxMDA2NDQKICB1aW50cHRyX3QgVGhyZWFkSW5m bzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewogICAgICByZXR1cm4gbWNvbnRleHQu Z3BfcmVnc1tQVF9OSVBdOwogIH0KLUBAIC0yOTAsOSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZv OjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5j dHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAg b3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAg ICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9y ZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVn c1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikm bWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRf cmVhZGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwogaW5kZXggMTA5MDQ3MGYuLmU1 ODAyMzNkIDEwMDY0NAogLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwogKysrIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29t bW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0 UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0 X3QgKnVjKSB7CitAQCAtMjEwLDYgKzIxMCw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKICAK ICAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCiAgCkBAIC0xMTcsMTggKzUwLDYgQEAgaW5k ZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0NAogIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6 R2V0U3RhY2tQb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CiAgICAgIHJldHVybiB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF07CiAgfQotQEAgLTI4 MCw5ICsyODMsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjLAotICAgICBvdXQtPmN0ciA9IHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsg aSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0 LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW2ldOwotKyAg ICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21j b250ZXh0LmZwX3JlZ3MpW2ldOwotIAotLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSB1Yy0+ dWNfbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNj ciA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3JlZ3MpW0VMRl9ORlBSRUctMV07 Ci0gCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NP VU5UOyBpKyspCi0gICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPQogZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCiBpbmRleCA1YTdhYjUw Yy4uZWU4Yjg1OGMgMTAwNjQ0CiAtLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCkBAIC0xNDUsMzEgKzY2 LDYgQEAgaW5kZXggNWE3YWI1MGMuLmVlOGI4NThjIDEwMDY0NAogIG5hbWVzcGFjZSBnb29nbGVf YnJlYWtwYWQgewogIAogIG5hbWVzcGFjZSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXgg OGUzMzVhMDkuLmIyYTBmMTU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDY5LDcg KzQ2OSw3IEBAIHN0cnVjdCBNQ29udGV4dDY0IHsKLSAgIFNpZ25hbFRocmVhZENvbnRleHQ2NCBn cF9yZWdzOwotICAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0gICBTaWduYWxWZWN0 b3JDb250ZXh0NjQgKnZfcmVnczsKLS0gIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwotKyAgaW50 NjRfdCB2bXhfcmVzZXJ2ZVsxMDFdOwotIH07Ci0gCi0gc3RydWN0IENvbnRleHRUcmFpdHM2NCA6 IHB1YmxpYyBUcmFpdHM2NCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4IGRlYTBkMWYzLi5iMjAzZTViMiAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9p bmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVh ZF9pbmZvLmgKLUBAIC0zMCw2ICszMCw3IEBACi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgotICNlbmRpZgotIAotIG5hbWVzcGFjZSBjcmFzaHBhZCB7CiBkaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGlu dXhfc3lzY2FsbF9zdXBwb3J0LmgKIGluZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2NDQKIC0t LSB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZmEyMTRkOTg3ZDYuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9icm93c2VyLXNpemVfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg QEAKLS0tLSBjaHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMu aAkyMDIwLTA4LTEwIDIwOjM5OjIwLjAwMDAwMDAwMCArMDIwMAotKysrIGNocm9tZS9icm93c2Vy L3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDktMDQgMTM6NDg6MjIu NjQwMDIzMjU2ICswMjAwCi1AQCAtNiw2ICs2LDcgQEAKLSAjZGVmaW5lIENIUk9NRV9CUk9XU0VS X1NFQVJDSF9CQUNLR1JPVU5EX05UUF9CQUNLR1JPVU5EU19IXwotIAotICNpbmNsdWRlIDxhcnJh eT4KLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAKLSBjbGFzcyBHVVJMOwotIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNs dWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZv cm1hdHRlci1pbmNsdWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDc4 MTA5ODkyMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9t aXVtLTg4LUFYVHJlZUZvcm1hdHRlci1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjcgKzAsMCBAQAotRnJvbSA2ZTQwMmQ5N2MyZGVjNTcyNmYzN2U5NWY5N2I3ZjdlMTJiMWQzYjFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9zZSBEYXBlbmEgUGF6IDxqZGFwZW5h QGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDExOjAyOjEzICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgaGVhZGVycyBmb3Igc3RkOjp2ZWN0b3IgYW5kIHN0 ZDo6dW5pcXVlX3B0ciBpbiBBWFRyZWVGb3JtYXR0ZXIKLQotRml4IHRoZXNlIGJ1aWxkIGVycm9y cyB3aXRoIGxpYnN0ZGMrKzoKLS4uLy4uL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVj dC90cmVlX2Zvcm1hdHRlci5oOjM1OjEyOiBlcnJvcjog4oCYc3RkOjp2ZWN0b3LigJkgaGFzIG5v dCBiZWVuIGRlY2xhcmVkCi0uLi8uLi91aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3Qv dHJlZV9mb3JtYXR0ZXIuaDo2MToxNjogZXJyb3I6IOKAmHVuaXF1ZV9wdHLigJkgaW4gbmFtZXNw YWNlIOKAmHN0ZOKAmSBkb2VzIG5vdCBuYW1lIGEgdGVtcGxhdGUgdHlwZQotCi1CdWc6IDk1NzUx OQotQ2hhbmdlLUlkOiBJNDAyYWMwNjQ0MjU1YjNjZDQ5MzJmZjJmZTcyZDk5OWIxMjVhNzg5NQot LS0tCi0KLWRpZmYgLS1naXQgYS91aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2luc3BlY3QvdHJl ZV9mb3JtYXR0ZXIuaCBiL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zv cm1hdHRlci5oCi1pbmRleCA0YTcwYTRkLi5iYjIzNzY4IDEwMDY0NAotLS0tIHVpL2FjY2Vzc2li aWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oCi0rKysgdWkvYWNjZXNzaWJp bGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLUBAIC01LDYgKzUsOSBAQAot ICNpZm5kZWYgVUlfQUNDRVNTSUJJTElUWV9QTEFURk9STV9JTlNQRUNUX1RSRUVfRk9STUFUVEVS X0hfCi0gI2RlZmluZSBVSV9BQ0NFU1NJQklMSVRZX1BMQVRGT1JNX0lOU1BFQ1RfVFJFRV9GT1JN QVRURVJfSF8KLSAKLSsjaW5jbHVkZSA8bWVtb3J5PgotKyNpbmNsdWRlIDx2ZWN0b3I+Ci0rCi0g I2luY2x1ZGUgInVpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC9pbnNwZWN0LmgiCi0g Ci0gI2luY2x1ZGUgInVpL2dmeC9uYXRpdmVfd2lkZ2V0X3R5cGVzLmgiCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVy LWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQm9v a21hcmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDBiMjZhNjBhMzZlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtQm9va21hcmtNb2RlbE9ic2VydmVyLWluY2x1ZGUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tIDEyN2VjM2IxYmYyNmFiMzdmMmFlODMz M2YyODQwMDg4Njg3NTYyNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFu IEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIw IDE1OjU5OjIzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IHNpemVfdCBpcyBkZWZpbmVk IHN0ZGRlZi5oCi0KLUNoYW5nZS1JZDogSTQ0MDBhYzdjNjAwNGI0OWVjNmU3MmM0NGYyNzU0ZTIx NjY2NDJmODgKLS0tLQotCi1kaWZmIC0tZ2l0IGEvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nl ci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oIGIvY29tcG9uZW50cy9ib29rbWFya3MvYnJvd3Nl ci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oCi1pbmRleCA2OWM0MGU3Li4wZTVlYjk2IDEwMDY0 NAotLS0tIGNvbXBvbmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2JzZXJ2 ZXIuaAotKysrIGNvbXBvbmVudHMvYm9va21hcmtzL2Jyb3dzZXIvYm9va21hcmtfbW9kZWxfb2Jz ZXJ2ZXIuaAotQEAgLTcsNiArNyw4IEBACi0gCi0gI2luY2x1ZGUgPHNldD4KLSAKLSsjaW5jbHVk ZSA8c3RkZGVmLmg+Ci0rCi0gY2xhc3MgR1VSTDsKLSAKLSBuYW1lc3BhY2UgYm9va21hcmtzIHsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21wb3Np dG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODgtQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTFjNTJlMGI3ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVy LWRjaGVjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gNTZjNjU0 YTkxNjAwZTNiZjI1NGFhOWY2NmMxMTUxYjA4NTBiNmVlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IEpvc2UgRGFwZW5hIFBheiA8amRhcGVuYUBpZ2FsaWEuY29tPgotRGF0ZTogV2Vk LCAxMSBOb3YgMjAyMCAxMDoyNDo0NyArMDEwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IGRvIG5v dCBwYXNzIHVuaXF1ZV9wdHIgdG8gRENIRUNLX05FLCBidXQgdGhlIGFjdHVhbCBwb2ludGVyLCBp biBDb21wb3NpdG9yRnJhbWVSZXBvcnRlcgotCi1EQ0hFQ0tfTkUgY29tcGFyaXNvbiByZXF1aXJl cyBDaGVja09wVmFsdWVTdHIgdG8gYmUgZGVmaW5lZCBmb3IgdGhlCi10eXBlLCBvciBwcm92aWRp bmcgYW4gb3V0cHV0IHN0cmVhbSBvcGVyYXRvci4gQSB1bmlxdWVfcHRyIGRvZXMgbm90Ci1wcm92 aWRlIGFueS4KLQotQ29tcGlsYXRpb24gaW4gR0NDIGlzIGZhaWxpbmcgaW4gQ29tcG9zaXRvckZy YW1lUmVwb3J0ZXIgYmVjYXVzZSBvZgotdGhpczoKLS4uLy4uL2NjL21ldHJpY3MvY29tcG9zaXRv cl9mcmFtZV9yZXBvcnRlci5jYzogSW4gbWVtYmVyIGZ1bmN0aW9uIOKAmHZvaWQgY2M6OkNvbXBv c2l0b3JGcmFtZVJlcG9ydGVyOjpSZXBvcnRFdmVudExhdGVuY3lIaXN0b2dyYW1zKCkgY29uc3Ti gJk6Ci0uLi8uLi9iYXNlL2NoZWNrX29wLmg6MjI0OjU5OiBlcnJvcjogbm8gbWF0Y2hpbmcgZnVu Y3Rpb24gZm9yIGNhbGwgdG8g4oCYQ2hlY2tPcFZhbHVlU3RyKGNvbnN0IHN0ZDo6dW5pcXVlX3B0 cjxjYzo6RXZlbnRNZXRyaWNzPiYp4oCZCi0KLUZpeGVkIGNvbXBhcmluZyB0aGUgcmVzdWx0IG9m IGdldCgpIG1ldGhvZCBmb3IgdW5pcXVlX3B0ciBpbnN0ZWFkIG9mCi10aGUgdW5pcXVlX3B0ci4K LQotQnVnOiA4MTkyOTQKLUNoYW5nZS1JZDogSTExMTAzZDE4NjdjNzE5NmMxZGU5MmU3MmY5ZjEy ZGNmZDMxYzI5ZjEKLQotKHVwZGF0ZWQgdG8gdXNlIERDSEVDSyBhcyBzdWdnZXN0ZWQgaW4gY29t bWVudHMpCi0tLS0KLQotZGlmZiAtLWdpdCBhL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9y ZXBvcnRlci5jYyBiL2NjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwotaW5k ZXggNzI1YmViMC4uZmFmZDBmMyAxMDA2NDQKLS0tLSBjYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJh bWVfcmVwb3J0ZXIuY2MKLSsrKyBjYy9tZXRyaWNzL2NvbXBvc2l0b3JfZnJhbWVfcmVwb3J0ZXIu Y2MKLUBAIC02ODYsNyArNjg2LDcgQEAKLSAKLSB2b2lkIENvbXBvc2l0b3JGcmFtZVJlcG9ydGVy OjpSZXBvcnRFdmVudExhdGVuY3lIaXN0b2dyYW1zKCkgY29uc3QgewotICAgZm9yIChjb25zdCBh dXRvJiBldmVudF9tZXRyaWNzIDogZXZlbnRzX21ldHJpY3NfKSB7Ci0tICAgIERDSEVDS19ORShl dmVudF9tZXRyaWNzLCBudWxscHRyKTsKLSsgICAgRENIRUNLKGV2ZW50X21ldHJpY3MpOwotICAg ICBjb25zdCBzdGQ6OnN0cmluZyBoaXN0b2dyYW1fYmFzZV9uYW1lID0KLSAgICAgICAgIEdldEV2 ZW50TGF0ZW5jeUhpc3RvZ3JhbUJhc2VOYW1lKCpldmVudF9tZXRyaWNzKTsKLSAgICAgY29uc3Qg aW50IGV2ZW50X3R5cGVfaW5kZXggPSBzdGF0aWNfY2FzdDxpbnQ+KGV2ZW50X21ldHJpY3MtPnR5 cGUoKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgt U3RyaW5nUG9vbC1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9t aXVtLTg4LVN0cmluZ1Bvb2wtaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZTU1YmJhZTJlY2UuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyMCArMCwwIEBACi1Gcm9tIDM3MjM2NmI0MTgwNTMzZjI3ZDMyNTBhNTA4MTA4MjgzNzBk Njk3YjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE2OjEyOjE4ICsw MDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGluY2x1ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVy aWNfbGltaXRzCi0KLUNoYW5nZS1JZDogSWE1MjI2ZTE0MzJhNjIyZjRmNGFiYzhmMWIxOGJjYWI4 NjM4YTczYzYKLS0tLQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250YWlu ZXJzL3N0cmluZ19wb29sLmggYi9zcmMvdHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5n X3Bvb2wuaAotaW5kZXggMTFhZTkxYy4uNThjNmRiMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9w ZXJmZXR0by9zcmMvdHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wuaAotKysr IHRoaXJkX3BhcnR5L3BlcmZldHRvL3NyYy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJp bmdfcG9vbC5oCi1AQCAtMjIsNiArMjIsNyBAQAotIAotICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFw PgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0rI2luY2x1ZGUgPGxpbWl0cz4KLSAKLSAjaW5jbHVkZSAi cGVyZmV0dG8vZXh0L2Jhc2Uvb3B0aW9uYWwuaCIKLSAjaW5jbHVkZSAicGVyZmV0dG8vZXh0L2Jh c2UvcGFnZWRfbWVtb3J5LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYjE1MzdkODAxLi4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZmVkZXJhdGVkX2xl YXJuaW5nLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9t IGJjYjIwYmFiZWU2MDJiNTVmZTRiZDAyNmUxM2E0MWQxMGI4OTYzMmYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+ Ci1EYXRlOiBTYXQsIDIxIE5vdiAyMDIwIDE1OjU1OjAyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hd IElXWVU6IGluY2x1ZGUgbGltaXRzIGZvciBzdGQ6Om51bWVyaWNfbGltaXRzCi0KLUNoYW5nZS1J ZDogSTFiNmIwN2ViYjM5N2EyOWM4NGQzZWQ1MWFlNDE1MjNlM2VjYWI0OTcKLS0tLQotCi1kaWZm IC0tZ2l0IGEvY29tcG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2Mg Yi9jb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYwotaW5kZXgg ZGY2NmU1ZC4uMmViNTBmMSAxMDA2NDQKLS0tLSBjb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFybmlu Zy9mbG9jX2NvbnN0YW50cy5jYwotKysrIGNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zs b2NfY29uc3RhbnRzLmNjCi1AQCAtNCw2ICs0LDggQEAKLSAKLSAjaW5jbHVkZSAiY29tcG9uZW50 cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuaCIKLSAKLSsjaW5jbHVkZSA8bGlt aXRzPgotKwotIG5hbWVzcGFjZSBmZWRlcmF0ZWRfbGVhcm5pbmcgewotIAotIC8vIFRoaXMgaXMg b25seSBmb3IgZXhwZXJpbWVudGF0aW9uIGFuZCB3b24ndCBiZSBzZXJ2ZWQgdG8gd2Vic2l0ZXMu CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMt Mi4zMy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0y LjMzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDMwNmQ1ZTQyOS4uMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJj LTIuMzMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotIyBQYXRjaCBtYWRl IGJ5IEtldmluIEtvZmxlciA8S2V2aW5AdGlnY2MudGljYWxjLm9yZz4KLSMgaHR0cHM6Ly9idWd6 aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xOTA0NjUyCi0KLWRpZmYgLXVwIGNocm9t aXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5LmNjLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi0tLS0gc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYy5mc3RhdGZpeAkyMDIxLTAx LTI1IDEwOjExOjQ1LjQyNzQzNjM5OCAtMDUwMAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MJMjAyMS0wMS0yNSAxMDoxMjo1MS4zMzc2OTkw MDMgLTA1MDAKLUBAIC0yNTcsNiArMjU3LDE4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxs SW1wbChpbnQgZnNfZGUKLSAgICAgcmV0dXJuIFJlc3RyaWN0S2lsbFRhcmdldChjdXJyZW50X3Bp ZCwgc3lzbm8pOwotICAgfQotIAotKyNpZiBkZWZpbmVkKF9fTlJfbmV3ZnN0YXRhdCkKLSsgIGlm IChzeXNubyA9PSBfX05SX25ld2ZzdGF0YXQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVGc3RhdGF0 U0lHU1lTKCk7Ci0rICB9Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQp Ci0rICBpZiAoc3lzbm8gPT0gX19OUl9mc3RhdGF0NjQpIHsKLSsgICAgcmV0dXJuIFJld3JpdGVG c3RhdGF0U0lHU1lTKCk7Ci0rICB9Ci0rI2VuZGlmCi0rCi0gICBpZiAoU3lzY2FsbFNldHM6Oklz RmlsZVN5c3RlbShzeXNubykgfHwKLSAgICAgICBTeXNjYWxsU2V0czo6SXNDdXJyZW50RGlyZWN0 b3J5KHN5c25vKSkgewotICAgICByZXR1cm4gRXJyb3IoZnNfZGVuaWVkX2Vycm5vKTsKLWRpZmYg LXVwIGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc2lnc3lzX2hhbmRsZXJzLmNjLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi0tLS0gc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5jYy5mc3RhdGZp eAkyMDIxLTAxLTI1IDEwOjEzOjEwLjE3OTc3NDA4MSAtMDUwMAotKysrIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuY2MJMjAyMS0wMS0yNSAxMDoxNjox OC43OTA1MjU3NDYgLTA1MDAKLUBAIC02LDYgKzYsOCBAQAotIAotICNpbmNsdWRlICJzYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmgiCi0gCi0rI2luY2x1 ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0ZGRlZi5oPgot ICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtMzU1LDYgKzM1 NywzNSBAQCBpbnRwdHJfdCBTSUdTWVNTY2hlZEhhbmRsZXIoY29uc3Qgc3RydWN0Ci0gICByZXR1 cm4gLUVOT1NZUzsKLSB9Ci0gCi0raW50cHRyX3QgU0lHU1lTRnN0YXRhdEhhbmRsZXIoY29uc3Qg c3RydWN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdzLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQqIGF1eCkgewotKyAgc3dpdGNoIChhcmdzLm5yKSB7Ci0rI2lmIGRlZmluZWQo X19OUl9uZXdmc3RhdGF0KQotKyAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDoKLSsjZW5kaWYKLSsj aWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSsgICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKLSsj ZW5kaWYKLSsjaWYgZGVmaW5lZChfX05SX25ld2ZzdGF0YXQpIHx8IGRlZmluZWQoX19OUl9mc3Rh dGF0NjQpCi0rICAgICAgaWYgKCpyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIgKj4oYXJncy5h cmdzWzFdKSA9PSAnXDAnCi0rICAgICAgICAgICYmIGFyZ3MuYXJnc1szXSA9PSBzdGF0aWNfY2Fz dDx1aW50NjRfdD4oQVRfRU1QVFlfUEFUSCkpIHsKLSsgICAgICAgIHJldHVybiBzYW5kYm94Ojpz eXNfZnN0YXQ2NChzdGF0aWNfY2FzdDxpbnQ+KGFyZ3MuYXJnc1swXSksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc3RhdDY0ICo+ KGFyZ3MuYXJnc1syXSkpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBlcnJubyA9IEVBQ0NF UzsKLSsgICAgICAgIHJldHVybiAtMTsKLSsgICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rI2VuZGlm Ci0rICB9Ci0rCi0rICBDcmFzaFNJR1NZU19IYW5kbGVyKGFyZ3MsIGF1eCk7Ci0rCi0rICAvLyBT aG91bGQgbmV2ZXIgYmUgcmVhY2hlZC4KLSsgIFJBV19DSEVDSyhmYWxzZSk7Ci0rICByZXR1cm4g LUVOT1NZUzsKLSt9Ci0rCi0gYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZUygpIHsKLSAg IHJldHVybiBicGZfZHNsOjpUcmFwKENyYXNoU0lHU1lTX0hhbmRsZXIsIE5VTEwpOwotIH0KLUBA IC0zODcsNiArNDE4LDEwIEBAIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZVNjaGVkU0lHU1lT KCkKLSAgIHJldHVybiBicGZfZHNsOjpUcmFwKFNJR1NZU1NjaGVkSGFuZGxlciwgTlVMTCk7Ci0g fQotIAotK2JwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZUZzdGF0YXRTSUdTWVMoKSB7Ci0rICBy ZXR1cm4gYnBmX2RzbDo6VHJhcChTSUdTWVNGc3RhdGF0SGFuZGxlciwgTlVMTCk7Ci0rfQotKwot IHZvaWQgQWxsb2NhdGVDcmFzaEtleXMoKSB7Ci0gI2lmICFkZWZpbmVkKE9TX05BQ0xfTk9OU0ZJ KQotICAgaWYgKHNlY2NvbXBfY3Jhc2hfa2V5KQotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0 Ljk2L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaC5m c3RhdGZpeCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5oCi0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5oLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTY6MzYuOTgy NTk4MjM2IC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5 c19oYW5kbGVycy5oCTIwMjEtMDEtMjUgMTA6MTg6NDUuNzA1MTExMDI3IC0wNTAwCi1AQCAtNjIs NiArNjIsMTAgQEAgU0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lHU1lTUHRyYWNlRmFpbAotIC8v IHNjaGVkX3NldHBhcmFtKCksIHNjaGVkX3NldHNjaGVkdWxlcigpCi0gU0FOREJPWF9FWFBPUlQg aW50cHRyX3QgU0lHU1lTU2NoZWRIYW5kbGVyKGNvbnN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdz LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgp OwotKy8vIElmIHRoZSBmc3RhdGF0IHN5c2NhbGwgaXMgYWN0dWFsbHkgYSBkaXNndWlzZWQgZnN0 YXQsIGNhbGxzIHRoZSByZWd1bGFyIGZzdGF0Ci0rLy8gc3lzY2FsbCwgb3RoZXJ3aXNlLCBjcmFz aGVzIGluIHRoZSBzYW1lIHdheSBhcyBDcmFzaFNJR1NZU19IYW5kbGVyLgotK1NBTkRCT1hfRVhQ T1JUIGludHB0cl90IFNJR1NZU0ZzdGF0YXRIYW5kbGVyKGNvbnN0IHN0cnVjdCBhcmNoX3NlY2Nv bXBfZGF0YSYgYXJncywgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCogYXV4KTsKLSAKLSAvLyBWYXJpYW50cyBvZiB0aGUgYWJvdmUgZnVuY3Rpb25z IGZvciB1c2Ugd2l0aCBicGZfZHNsLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4 cHIgQ3Jhc2hTSUdTWVMoKTsKLUBAIC03Miw2ICs3Niw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9k c2w6OlJlc3VsdEV4cHIgQ3Jhc2gKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHBy IENyYXNoU0lHU1lTRnV0ZXgoKTsKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHBy IENyYXNoU0lHU1lTUHRyYWNlKCk7Ci0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhw ciBSZXdyaXRlU2NoZWRTSUdTWVMoKTsKLStTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRF eHByIFJld3JpdGVGc3RhdGF0U0lHU1lTKCk7Ci0gCi0gLy8gQWxsb2NhdGVzIGEgY3Jhc2gga2V5 IHNvIHRoYXQgU2VjY29tcCBpbmZvcm1hdGlvbiBjYW4gYmUgcmVjb3JkZWQuCi0gdm9pZCBBbGxv Y2F0ZUNyYXNoS2V5cygpOwotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gv bGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYy5mc3RhdGZpeCBjaHJvbWl1bS04OC4w LjQzMjQuOTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0tLS0g c2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjLmZzdGF0Zml4CTIwMjEt MDEtMjUgMTA6MTg6NTMuMzA3MTQxMzExIC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZXJ2aWNl cy9zeXNjYWxsX3dyYXBwZXJzLmNjCTIwMjEtMDEtMjUgMTA6MTk6NDYuOTgyMzU1MjkzIC0wNTAw Ci1AQCAtMjYxLDQgKzI2MSwxMyBAQCBpbnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnbnVtLAotIAot ICNlbmRpZiAgLy8gZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotIAotK1NBTkRCT1hfRVhQT1JU IGludCBzeXNfZnN0YXQ2NChpbnQgZmQsIHN0cnVjdCBzdGF0NjQgKmJ1ZikKLSt7Ci0rI2lmIGRl ZmluZWQoX19OUl9mc3RhdDY0KQotKyAgICByZXR1cm4gc3lzY2FsbChfX05SX2ZzdGF0NjQsIGZk LCBidWYpOwotKyNlbHNlCi0rICAgIHJldHVybiBzeXNjYWxsKF9fTlJfZnN0YXQsIGZkLCBidWYp OwotKyNlbmRpZgotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2Ugc2FuZGJveAotZGlmZiAtdXAgY2hy b21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVy cy5oLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlcnZpY2Vz L3N5c2NhbGxfd3JhcHBlcnMuaAotLS0tIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93 cmFwcGVycy5oLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTk6NTMuMTE1Mzc5NzQxIC0wNTAwCi0r Kysgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmgJMjAyMS0wMS0yNSAx MDoyMDo0NS40ODU1ODg0MjEgLTA1MDAKLUBAIC0xNyw2ICsxNyw3IEBAIHN0cnVjdCBzb2NrX2Zw cm9nOwotIHN0cnVjdCBybGltaXQ2NDsKLSBzdHJ1Y3QgY2FwX2hkcjsKLSBzdHJ1Y3QgY2FwX2Rh dGE7Ci0rc3RydWN0IHN0YXQ2NDsKLSAKLSBuYW1lc3BhY2Ugc2FuZGJveCB7Ci0gCi1AQCAtODQs NiArODUsOSBAQCBTQU5EQk9YX0VYUE9SVCBpbnQgc3lzX3NpZ2FjdGlvbihpbnQgc2lnCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiogYWN0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24qIG9s ZGFjdCk7Ci0gCi0rLy8gUmVjZW50IGdsaWJjIHJld3JpdGVzIGZzdGF0IHRvIGZzdGF0YXQuCi0r U0FOREJPWF9FWFBPUlQgaW50IHN5c19mc3RhdDY0KGludCBmZCwgc3RydWN0IHN0YXQ2NCAqYnVm KTsKLSsKLSB9ICAvLyBuYW1lc3BhY2Ugc2FuZGJveAotIAotICNlbmRpZiAgLy8gU0FOREJPWF9M SU5VWF9TRVJWSUNFU19TWVNDQUxMX1dSQVBQRVJTX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlci5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNl Q2hhcmFjdGVyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGExMTQyM2Iy ZC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4 LWlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr MCwwIEBACi1Gcm9tIDc1ZmY4ODJiYjVmMmZjZDE0NDMxZTY1ZmE2MzhhZTcyYmRiNDcwODYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29v Z2xlbWFpbC5jb20+Ci1EYXRlOiBTdW4sIDE1IE5vdiAyMDIwIDE0OjMxOjIzICswMDAwCi1TdWJq ZWN0OiBbUEFUQ0hdIGZpeCBpZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyIGNvbnN0YW50IGZvciBz eXN0ZW0gaWN1Ci0KLWh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9j aHJvbWl1bS9zcmMvKy8xNjg3NDExCi1yZW5hbWVkIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIg dG8ga0lkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIuCi0tLS0KLSB0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYyB8IDIgKy0KLSAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNf aWN1LmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4 dF9jb2RlY19pY3UuY2MKLWluZGV4IGZiOGFiMDUuLjVkNGVhMTMgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MK LSsrKyB0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2Nv ZGVjX2ljdS5jYwotQEAgLTQzMiw3ICs0MzIsNyBAQCBTdHJpbmcgVGV4dENvZGVjSUNVOjpEZWNv ZGUoY29uc3QgY2hhciogYnl0ZXMsCi0gICAvLyBJQ1UgZGVjb2RlcyBpdCBhcyBVK0U1RTUuCi0g ICBpZiAoIXN0cmNtcChlbmNvZGluZ18uR2V0TmFtZSgpLCAiR0JLIikpIHsKLSAgICAgaWYgKEVx dWFsSWdub3JpbmdBU0NJSUNhc2UoZW5jb2RpbmdfLkdldE5hbWUoKSwgImdiMTgwMzAiKSkKLS0g ICAgICByZXN1bHRTdHJpbmcuUmVwbGFjZSgweEU1RTUsIGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0 ZXIpOwotKyAgICAgIHJlc3VsdFN0cmluZy5SZXBsYWNlKDB4RTVFNSwga0lkZW9ncmFwaGljU3Bh Y2VDaGFyYWN0ZXIpOwotICAgICAvLyBNYWtlIEdCSyBjb21wbGlhbnQgdG8gdGhlIGVuY29kaW5n IHNwZWMgYW5kIGFsaWduIHdpdGggR0IxODAzMAotICAgICByZXN1bHRTdHJpbmcuUmVwbGFjZSgw eDAxRjksIDB4RTdDOCk7Ci0gICAgIC8vIEZJWE1FOiBPbmNlIGh0dHBzOi8vd3d3LnczLm9yZy9C dWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9Mjg3NDAjYzMKLS0tIAotMi4yNi4yCi0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUu cGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1pbmNsdWRl LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTRiNmZmZmQ1NC4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5j bHVkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gYmMzODNhNWRk N2ZhOGYyYjUzNWYyODgxNWZkNjkzMmZiYzBkMmE0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFdl ZCwgMjggT2N0IDIwMjAgMTY6MDA6MzUgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5j bHVkZSBzdGRkZWYuaCBmb3Igc2l6ZV90Ci0KLS0tLQotIHRoaXJkX3BhcnR5L2Rhd24vc3JjL2Nv bW1vbi9pdHlwX2FycmF5LmggfCAyICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXku aCBiL3RoaXJkX3BhcnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLWluZGV4IDQ4ZTA4 MGYuLmM3ODQxOTggMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBf YXJyYXkuaAotKysrIHRoaXJkX3BhcnR5L2Rhd24vc3JjL2NvbW1vbi9pdHlwX2FycmF5LmgKLUBA IC0yMSw2ICsyMSw4IEBACi0gI2luY2x1ZGUgPGFycmF5PgotICNpbmNsdWRlIDx0eXBlX3RyYWl0 cz4KLSAKLSsjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rCi0gbmFtZXNwYWNlIGl0eXAgewotIAotICAg ICAvLyBpdHlwOjphcnJheSBpcyBhIGhlbHBlciBjbGFzcyB0aGF0IHdyYXBzIHN0ZDo6YXJyYXkg d2l0aCB0aGUgcmVzdHJpY3Rpb24gdGhhdAotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MTYxYWY0NWM3Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmli dXRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotRnJvbSA0ZjQ2MDQ4Nzdm M2I2NjZhYzdhMzczYWU0NDNlM2MzNzk1NDI0NTY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJp LCA2IE5vdiAyMDIwIDExOjE4OjQyICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogZml4IGF0 dHJpYnV0ZSBvbiBmdW5jdGlvbiBkZWZpbml0aW9uCi0KLUdDQyBkb2VzIG5vdCBhY2NlcHQgYXR0 cmlidXRlcyBhdCB0aGUgZW5kIGZvciBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLVNvbHV0aW9uIGlz IHRvIG1vdmUgaXQgYmVmb3JlIGZ1bmN0aW9uIG5hbWUuIE90aGVyd2lzZSBHQ0MgZmFpbHMgbGlr ZQotdGhpczoKLQotLi4vLi4vYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oOjk3OjI4OiBlcnJvcjog YXR0cmlidXRlcyBhcmUgbm90IGFsbG93ZWQKLW9uIGEgZnVuY3Rpb24tZGVmaW5pdGlvbgotICAg OTcgfCAjZGVmaW5lIFdBUk5fVU5VU0VEX1JFU1VMVCBfX2F0dHJpYnV0ZV9fKCh3YXJuX3VudXNl ZF9yZXN1bHQpKQotICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+Ci0JIC4uLy4uL21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmg6MzIyOjM2OiBu b3RlOiBpbgotCSBleHBhbnNpb24gb2YgbWFjcm8gJ1dBUk5fVU5VU0VEX1JFU1VMVCcKLQkgICAz MjIgfCAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFQqIGRhdGEpIFdBUk5fVU5VU0VEX1JFU1VM VCB7Ci0JICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn4KLS0tLQotIG1lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmggfCA0ICsr LS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaCBiL21lZGlhL2dwdS92 YWFwaS92YWFwaV93cmFwcGVyLmgKLWluZGV4IGZkMWZkODIuLmRlZWRhMWYgMTAwNjQ0Ci0tLS0g bWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaAotKysrIG1lZGlhL2dwdS92YWFwaS92YWFw aV93cmFwcGVyLmgKLUBAIC0zMTgsOCArMzE4LDggQEAgY2xhc3MgTUVESUFfR1BVX0VYUE9SVCBW YWFwaVdyYXBwZXIKLSAgIC8vIENvbnZlbmllbnQgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBTdWJt aXRCdWZmZXIoKSB3aGVyZSB8c2l6ZXwgaXMgZGVkdWNlZCB0bwotICAgLy8gYmUgdGhlIHNpemUg b2YgdGhlIHR5cGUgb2YgfCpkYXRhfC4KLSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotLSAgYm9v bCBTdWJtaXRCdWZmZXIoVkFCdWZmZXJUeXBlIHZhX2J1ZmZlcl90eXBlLAotLSAgICAgICAgICAg ICAgICAgICAgY29uc3QgVCogZGF0YSkgV0FSTl9VTlVTRURfUkVTVUxUIHsKLSsgIGJvb2wgV0FS Tl9VTlVTRURfUkVTVUxUIFN1Ym1pdEJ1ZmZlcihWQUJ1ZmZlclR5cGUgdmFfYnVmZmVyX3R5cGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVCogZGF0YSkg ewotICAgICByZXR1cm4gU3VibWl0QnVmZmVyKHZhX2J1ZmZlcl90eXBlLCBzaXplb2YoVCksIGRh dGEpOwotICAgfQotICAgLy8gQmF0Y2gtdmVyc2lvbiBvZiBTdWJtaXRCdWZmZXIoKSwgd2hlcmUg dGhlIGxvY2sgZm9yIGFjY2Vzc2luZyBsaWJ2YSBpcwotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJl cG9ydGVyLWRjaGVjay5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OS1Db21wb3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQzMWFkN2ZlYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVy LWRjaGVjay5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gbmV0L3RoaXJkX3BhcnR5L3F1aWNo ZS9zcmMvcXVpYy9jb3JlL3F1aWNfcGF0aF92YWxpZGF0b3IuY2Mub3JpZwkyMDIxLTAzLTAyIDE4 OjQ4OjA2LjAwMDAwMDAwMCArMDEwMAorKysrIG5ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1 aWMvY29yZS9xdWljX3BhdGhfdmFsaWRhdG9yLmNjCTIwMjEtMDMtMDMgMTM6MTc6NTYuNjI0Mjgx NDc1ICswMTAwCitAQCAtNjgsNyArNjgsNyBAQAorIHZvaWQgUXVpY1BhdGhWYWxpZGF0b3I6OlN0 YXJ0UGF0aFZhbGlkYXRpb24oCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWljUGF0aFZhbGlkYXRp b25Db250ZXh0PiBjb250ZXh0LAorICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzdWx0RGVsZWdhdGU+ IHJlc3VsdF9kZWxlZ2F0ZSkgeworLSAgRENIRUNLX05FKG51bGxwdHIsIGNvbnRleHQpOworKyAg RENIRUNLKGNvbnRleHQpOworICAgUVVJQ19ETE9HKElORk8pIDw8ICJTdGFydCB2YWxpZGF0aW5n IHBhdGggIiA8PCAqY29udGV4dAorICAgICAgICAgICAgICAgICAgIDw8ICIgdmlhIHdyaXRlcjog IiA8PCBjb250ZXh0LT5Xcml0ZXJUb1VzZSgpOworICAgaWYgKHBhdGhfY29udGV4dF8gIT0gbnVs bHB0cikgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9j LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoCmluZGV4 IGVkYTExZWM4NjYzLi5mOGQ4ZDY2ZGExOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9s aWJjX21hbGxvYy5wYXRjaApAQCAtMSwyNiArMSwxMSBAQAotLS0tIGJhc2UvcHJvY2Vzcy9tZW1v cnlfbGludXguY2Mub3JpZwkyMDE3LTA5LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAotKysr IGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MJMjAxNy0wOS0xNSAwODo0NDozOS44MDQ5OTU0 NjkgKzAwMDAKLUBAIC0yMSw2ICsyMSwxMiBAQAotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21h bGxvYy9jaHJvbWl1bS9zcmMvZ3BlcmZ0b29scy90Y21hbGxvYy5oIgotICNlbmRpZgotIAotKyNp ZiBkZWZpbmVkKExJQkNfR0xJQkMpCi0rZXh0ZXJuICJDIiB7Ci0rZXh0ZXJuIHZvaWQgKl9fbGli Y19tYWxsb2Moc2l6ZV90IHNpemUpOwotK30KLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgYmFzZSB7 Ci0gCi0gc2l6ZV90IGdfb29tX3NpemUgPSAwVTsKLS0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xp bnV4LmNjLm9yaWcJMjAyMC0wOC0zMCAxNDoxODozNS40MDExMzI1OTMgLTA0MDAKLSsrKyBiYXNl L3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIwMjAtMDgtMzAgMTQ6MTk6MDguMDMwMTk5MTg5IC0w NDAwCi1AQCAtMTQxLDcgKzE0MSw3IEBACistLS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5j Yy5vcmlnCTIwMjEtMDMtMDIgMTg6NDQ6NTguMDAwMDAwMDAwICswMTAwCisrKysgYmFzZS9wcm9j ZXNzL21lbW9yeV9saW51eC5jYwkyMDIxLTAzLTAzIDEyOjA1OjU3Ljk1MjI5Njk4NCArMDEwMAor QEAgLTE1MSw3ICsxNTEsNyBAQAogICAgICAoIWRlZmluZWQoTElCQ19HTElCQykgJiYgIUJVSUxE RkxBRyhVU0VfVENNQUxMT0MpKQogICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKICAjZWxpZiBk ZWZpbmVkKExJQkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQogLSAgKnJlc3Vs dCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7Ci0rICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNp emUpOworKyAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKICAjZWxpZiBCVUlMREZMQUcoVVNFX1RD TUFMTE9DKQogICAgKnJlc3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOwog ICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3Zl LXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDE2YjA2NTIxMi4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBp bGVyLXdhcm5pbmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLS0tIGJ1 aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbi5vcmlnCTIwMjEtMDEtMjAgMDk6MDE6NDQuMzYy MTE0MzExIC0wNTAwCi0rKysgYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCTIwMjEtMDEt MjAgMDk6MDM6NDEuODgwMjMyMjQ4IC0wNTAwCi1AQCAtMTUzNCw5ICsxNTM0LDYgQEAKLSAKLSAg ICAgICAgICAgIyBUT0RPKGh0dHBzOi8vY3JidWcuY29tLzEwMjgxMTApOiBFdmFsdWF0ZSBhbmQg cG9zc2libGUgZW5hYmxlLgotICAgICAgICAgICAiLVduby1kZXByZWNhdGVkLWNvcHkiLAotLQot LSAgICAgICAgICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTA1MDI4MSk6IENsZWFuIHVwLCBl bmFibGUuCi0tICAgICAgICAgICItV25vLW5vbi1jLXR5cGVkZWYtZm9yLWxpbmthZ2UiLAotICAg ICAgICAgXQotIAotICAgICAgICAgY2ZsYWdzX2MgKz0gWwotQEAgLTE1NDgsMTMgKzE1NDUsNiBA QAotICAgICAgICAgICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTE0MzcwMCk6IENsZWFuIHVw IGFuZCByZS1lbmFibGUuCi0gICAgICAgICAgIGNmbGFnc19vYmpjID0gWyAiLVduby1nbnUtZm9s ZGluZy1jb25zdGFudCIgXQotICAgICAgICAgfQotLQotLSAgICAgICAgaWYgKGVuYWJsZV93bWF4 X3Rva2VucykgewotLSAgICAgICAgICBjZmxhZ3MgKz0gWyAiLVdtYXgtdG9rZW5zIiBdCi0tICAg ICAgICB9IGVsc2UgewotLSAgICAgICAgICAjIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20vMTA0OTU2 OSk6IFJlbW92ZSBhZnRlciBDbGFuZyA4N2IyMzVkYi4KLS0gICAgICAgICAgY2ZsYWdzICs9IFsg Ii1Xbm8tbWF4LXRva2VucyIgXQotLSAgICAgICAgfQotICAgICAgIH0KLSAgICAgfQotICAgfQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0 aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVz bC12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMzNhOGVhMzJjOWMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVXNlIG1vbm90b25pYyBjbG9j ayBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgotCi1kaWZmIC0tZ2l0 IGEvdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjIGIvdjgvc3JjL2Jh c2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCi1pbmRleCA1ZWE3MDgzLi5jMTMwMjdl IDEwMDY0NAotLS0tIC4vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNj Ci0rKysgLi92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKLUBAIC0x Niw3ICsxNiw3IEBAIG5hbWVzcGFjZSBiYXNlIHsKLSAKLSBDb25kaXRpb25WYXJpYWJsZTo6Q29u ZGl0aW9uVmFyaWFibGUoKSB7Ci0gI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8 fCBWOF9PU19PUEVOQlNEIHx8IFwKLS0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJD KSkKLSsgICAgIFY4X09TX0xJTlVYKQotICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGlu dXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0 aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KLSAgIHB0 aHJlYWRfY29uZGF0dHJfdCBhdHRyOwotQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBDb25kaXRpb25W YXJpYWJsZTo6V2FpdEZvcihNdXRleCogbXV0ZXgsIGNvbnN0IFRpbWVEZWx0YSYgcmVsX3RpbWUp IHsKLSAgICAgICAmbmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMp OwotICNlbHNlCi0gI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19P UEVOQlNEIHx8IFwKLS0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKLSsgICAg IFY4X09TX0xJTlVYKQotICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBn bGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCi0gICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29u ZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KLSAgIHJlc3VsdCA9IGNs b2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRj aGVzL25vLWV4ZWNpbmZvLnBhdGNoCmluZGV4IDM4Njk5N2U4ZWQxLi4zNTZhNzYxOWFjOSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCisrKyBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1leGVjaW5mby5wYXRjaApAQCAtMSw1ICsxLDUg QEAKLS0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjLm9yaWcJMjAxOS0wNS0xNCAx NDo0OTo0NC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4 LmNjCTIwMTktMDctMDIgMTA6NDM6NDMuNDkwMDQ1MDEzIC0wNDAwCistLS0gYmFzZS9kZWJ1Zy9z dGFja190cmFjZV9wb3NpeC5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDQ6NTguMDAwMDAwMDAwICsw MTAwCisrKysgYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYwkyMDIxLTAzLTAzIDE2OjQ2 OjM3LjgyODg4Mzk3MyArMDEwMAogQEAgLTI3LDcgKzI3LDcgQEAKICAjaWYgIWRlZmluZWQoVVNF X1NZTUJPTElaRSkKICAjaW5jbHVkZSA8Y3h4YWJpLmg+CkBAIC05LDcgKzksNyBAQAogICNpbmNs dWRlIDxleGVjaW5mby5oPgogICNlbmRpZgogIAotQEAgLTg2LDcgKzg2LDcgQEAKK0BAIC04OCw3 ICs4OCw3IEBACiAgICAvLyBOb3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5j LXNpZ25hbCBzYWZlIChzdGQ6OnN0cmluZyB1c2VzCiAgICAvLyBtYWxsb2MgaW50ZXJuYWxseSku CiAgCkBAIC0xOCw3ICsxOCw3IEBACiAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9m cm9tID0gMDsKICAgIHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgewogICAgICAv LyBMb29rIGZvciB0aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJv bS4KLUBAIC0xMjEsNyArMTIxLDcgQEAKK0BAIC0xMjMsNyArMTIzLDcgQEAKICAgICAgICBzZWFy Y2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQgKyAyOwogICAgICB9CiAgICB9CkBAIC0yNyw3ICsyNyw3 IEBACiAgfQogICNlbmRpZiAgLy8gIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKICAKLUBAIC0xMzMs NyArMTMzLDcgQEAKK0BAIC0xMzUsNyArMTM1LDcgQEAKICAgIHZpcnR1YWwgfkJhY2t0cmFjZU91 dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7CiAgfTsKICAKQEAgLTM2LDcgKzM2LDcgQEAKICB2b2lk IE91dHB1dFBvaW50ZXIodm9pZCogcG9pbnRlciwgQmFja3RyYWNlT3V0cHV0SGFuZGxlciogaGFu ZGxlcikgewogICAgLy8gVGhpcyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCB0byBzdG9yZSBh IDY0LWJpdCBudW1iZXIgaW4gaGV4OgogICAgLy8gMTYgaGV4IGRpZ2l0cyArIDEgZm9yIG51bGwt dGVybWluYXRvci4KLUBAIC0yMTYsNyArMjE2LDcgQEAKK0BAIC0yMTgsNyArMjE4LDcgQEAKICAg IH0KICAjZW5kaWYgIC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkKICB9CkBAIC00NSw3ICs0NSw3 IEBACiAgCiAgdm9pZCBQcmludFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgewogICAgLy8g Tk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBp bi1wcm9jZXNzCi1AQCAtODEyLDcgKzgxMiw3IEBACitAQCAtODI3LDcgKzgyNyw3IEBACiAgICAv LyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5 IGluLXByb2Nlc3MKICAgIC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxs b2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgogIApAQCAtNTQsNyArNTQsNyBAQAogICAgLy8g VGhvdWdoIHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55IHBvc3Np YmxlIG5lZ2F0aXZlCiAgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5jZS4KICAg IHJldHVybiBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFjZSwgY291 bnQpKTsKLUBAIC04MjUsMTMgKzgyNSwxMyBAQAorQEAgLTg0MCwxMyArODQwLDEzIEBACiAgLy8g Tk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBp bi1wcm9jZXNzCiAgLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBv ciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvbm8tZ2V0Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9u by1nZXRjb250ZXh0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmE0OTg3 MzRjOS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNv bnRleHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0tLS0gdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9o YW5kbGVyLmNjLm9yaWcJMjAxNS0xMi0wNiAwOTo1OTo1NS41NTQ1MzY2NDYgKzAxMDAKLSsrKyB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuY2MJMjAxNS0xMi0wNiAxMDowMToxNi44MTgyMzgwMzUgKzAxMDAKLUBA IC00NzcsNyArNDc3LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERl bAotICAgc2lnaW5mby5zaV9jb2RlID0gU0lfVVNFUjsKLSAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0 cGlkKCk7Ci0gICB1Y29udGV4dF90IGNvbnRleHQ7Ci0rI2lmIGRlZmluZWQoX19HTElCQ19fKQot ICAgZ2V0Y29udGV4dCgmY29udGV4dCk7Ci0rI2VuZGlmCi0gICByZXR1cm4gSGFuZGxlU2lnbmFs KHNpZywgJnNpZ2luZm8sICZjb250ZXh0KTsKLSB9Ci0gCi1AQCAtNjQ3LDkgKzY0OSwxNCBAQCBi b29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Ci0gICBzeXNfcHJjdGwoUFJf U0VUX0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKLSAKLSAgIENyYXNoQ29udGV4dCBjb250ZXh0Owot KwotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdl dGNvbnRleHQoJmNvbnRleHQuY29udGV4dCk7Ci0gICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCi0g ICAgIHJldHVybiBmYWxzZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotIAot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKQotICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4dCBpbiBt aW5pZHVtcHdyaXRlci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9uby1zdGQtdGltZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uN2YzNWMyMmYwODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbm8tc3RkLXRpbWUucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0t IHVpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZV9zZXJpYWxpemVyLmgub3JpZwkyMDIxLTAzLTAyIDE4 OjQ2OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHVpL2FjY2Vzc2liaWxpdHkvYXhfdHJlZV9zZXJp YWxpemVyLmgJMjAyMS0wMy0wMyAxNDowMzo0My45MjYxNjAzMzMgKzAxMDAKK0BAIC03NDYsNyAr NzQ2LDcgQEAKKyAjZW5kaWYgIC8vIGRlZmluZWQoQVhfRkFJTF9GQVNUX0JVSUxEKQorICAgICAg ICAgc3RhdGljIGJvb2wgaGFzX3NlbnRfZHVwZV9pZF9lcnIgPSBmYWxzZTsKKyAgICAgICAgIGlm ICghaGFzX3NlbnRfZHVwZV9pZF9lcnIpIHsKKy0gICAgICAgICAgc3RkOjpzcmFuZChzdGQ6OnRp bWUobnVsbHB0cikpOyAgLy8gdXNlIGN1cnJlbnQgdGltZSBhcyBzZWVkLgorKyAgICAgICAgICBz dGQ6OnNyYW5kKHRpbWUobnVsbHB0cikpOyAgLy8gdXNlIGN1cnJlbnQgdGltZSBhcyBzZWVkLgor ICAgICAgICAgICBpZiAoc3RkOjpyYW5kKCkgJSA1MCA9PSAwKSB7ICAgICAvLyBSb3VnaGx5IDIl IG9mIHRoZSB0aW1lLgorICAgICAgICAgICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNo aW5nKCk7CisgICAgICAgICAgICAgaGFzX3NlbnRfZHVwZV9pZF9lcnIgPSB0cnVlOyAgLy8gT25s eSBzZW5kIG9uY2UuCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJv eC1tZW1iYXJyaWVyLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVt YmFycmllci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMxYTlmNmE1ZTku LjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJh cnJpZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0tLS0gc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCi1AQCAtMTA2Myw0ICsx MDYzLDggQEAKLSAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDI3OQotICNlbmRpZgotIAotKyNp ZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgz Ci0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0FS TTY0X0xJTlVYX1NZU0NBTExTX0hfCi0KLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2FybV9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfc3lzY2FsbHMuaAotQEAgLTEzODUsNiArMTM4NSwxMCBAQAotICNkZWZpbmUgX19O Ul9tZW1mZF9jcmVhdGUgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4NSkKLSAjZW5kaWYKLSAKLSsjaWYg IWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05S X1NZU0NBTExfQkFTRSszODkpCi0rI2VuZGlmCi0rCi0gLy8gQVJNIHByaXZhdGUgc3lzY2FsbHMu Ci0gI2lmICFkZWZpbmVkKF9fQVJNX05SX0JBU0UpCi0gI2RlZmluZSBfX0FSTV9OUl9CQVNFIChf X05SX1NZU0NBTExfQkFTRSArIDB4RjAwMDApCi0KLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAotQEAgLTE0MjIsNSArMTQyMiw5IEBACi0g I2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzNTYKLSAjZW5kaWYKLSAKLSsjaWYgIWRlZmluZWQo X19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDM3NQotKyNlbmRpZgot KwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfMzJfTElOVVhf U1lTQ0FMTFNfSF8KLSAKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9s aW51eF9zeXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRf bGludXhfc3lzY2FsbHMuaAotQEAgLTEyOTAsNSArMTI5MCw5IEBACi0gI2RlZmluZSBfX05SX21l bWZkX2NyZWF0ZSAzMTkKLSAjZW5kaWYKLSAKLSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVy KQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDMyNAotKyNlbmRpZgotKwotICNlbmRpZiAgLy8g U0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSAK LS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi0r Kysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAg LTM3MCw2ICszNzAsNyBAQAotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZXhp dDoKLSAgICAgY2FzZSBfX05SX2V4aXRfZ3JvdXA6Ci0rICAgIGNhc2UgX19OUl9tZW1iYXJyaWVy OgotICAgICBjYXNlIF9fTlJfd2FpdDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0gI2lmIGRl ZmluZWQoX19pMzg2X18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBj NjRsZS1zdXBwb3J0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDU3NTVj MjEyNS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNjU2ICswLDAgQEAKLWNvbW1p dCBlNzk0NGMxNjJjYTEzYjJjMzBiMTgwYzA2ZjkxN2Y0NTY0M2I4Y2NhCi1BdXRob3I6IHE2NiA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFR1ZSBBdWcgNCAxOTo1Nzo0OCAyMDIwICsw MjAwCi0KLSAgICBwcGM2NGxlIHN1cHBvcnQKLQotZGlmZiAtLWdpdCBidWlsZC9kb3dubG9hZF9u YWNsX3Rvb2xjaGFpbnMucHkgYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hhaW5zLnB5Ci1pbmRl eCAyODZhOTJhMjcuLmVjMzZhODVkMyAxMDA3NTUKLS0tLSBidWlsZC9kb3dubG9hZF9uYWNsX3Rv b2xjaGFpbnMucHkKLSsrKyBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLUBAIC0x Myw2ICsxMywxMCBAQCBpbXBvcnQgc3lzCi0gCi0gCi0gZGVmIE1haW4oYXJncyk6Ci0rICAjIElm IGBkaXNhYmxlX25hY2w9MWAgaXMgaW4gR1lQX0RFRklORVMsIGV4aXQKLSsgIGlmICdkaXNhYmxl X25hY2w9MScgaW4gb3MuZW52aXJvbi5nZXQoJ0dZUF9ERUZJTkVTJywgJycpOgotKyAgICByZXR1 cm4gMAotKwotICAgc2NyaXB0X2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgo X19maWxlX18pKQotICAgc3JjX2RpciA9IG9zLnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQotICAg bmFjbF9kaXIgPSBvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ25hdGl2ZV9jbGllbnQnKQotZGlmZiAt LWdpdCBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduIGNocm9tZS9pbnN0YWxsZXIvbGlu dXgvQlVJTEQuZ24KLWluZGV4IGIxMDFiMGNiMi4uOWZkNWE3NjE3IDEwMDY0NAotLS0tIGNocm9t ZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KLSsrKyBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JV SUxELmduCi1AQCAtOTIsOCArOTIsNiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBwYWNrYWdpbmdfZmls ZXNfYmluYXJpZXMgKyBbCi0gICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGct bWltZSIsCi0gICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0dGluZ3Mi LAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1VUy5wYWsi LAotLSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9tYW5pZmVz dC5qc29uIiwKLS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQv cHJlbG9hZGVkX2RhdGEucGIiLAotICAgICAgICAgICAgICAgICAgIF0KLSAKLSBhY3Rpb25fZm9y ZWFjaCgiY2FsY3VsYXRlX2RlYl9kZXBlbmRlbmNpZXMiKSB7Ci1AQCAtMzI5LDcgKzMyNyw2IEBA IGdyb3VwKCJpbnN0YWxsZXJfZGVwcyIpIHsKLSAgICAgIjp0aGVtZV9maWxlcyIsCi0gICAgICIv L2Nocm9tZSIsCi0gICAgICIvL2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKLS0gICAgIi8vY2hy b21lL2Jyb3dzZXIvcmVzb3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIsCi0gICAg ICIvL3NhbmRib3gvbGludXg6Y2hyb21lX3NhbmRib3giLAotICAgICAiLy90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9oYW5kbGVyOmNyYXNocGFkX2hhbmRsZXIiLAotICAgXQotZGlmZiAt LWdpdCBzYW5kYm94L2ZlYXR1cmVzLmduaSBzYW5kYm94L2ZlYXR1cmVzLmduaQotaW5kZXggMDky ODBkMzVmLi40MjUxNDE1N2YgMTAwNjQ0Ci0tLS0gc2FuZGJveC9mZWF0dXJlcy5nbmkKLSsrKyBz YW5kYm94L2ZlYXR1cmVzLmduaQotQEAgLTExLDYgKzExLDcgQEAgaW1wb3J0KCIvL2J1aWxkL2Nv bmZpZy9uYWNsL2NvbmZpZy5nbmkiKQotIHVzZV9zZWNjb21wX2JwZiA9IChpc19saW51eCB8fCBp c19hbmRyb2lkKSAmJgotICAgICAgICAgICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8 fCBjdXJyZW50X2NwdSA9PSAieDY0IiB8fAotICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2Nw dSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAg ICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIp Ci0rICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRf Y3B1ID09ICJtaXBzNjRlbCIgfHwKLSsgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0g InBwYzY0IikKLSAKLSB1c2Vfc2VjY29tcF9icGYgPSB1c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFj bF9ub25zZmkKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9CVUlMRC5nbiBzYW5kYm94L2xpbnV4 L0JVSUxELmduCi1pbmRleCBjMjczNTFmOWEuLjkxNDFlMTIzOSAxMDA2NDQKLS0tLSBzYW5kYm94 L2xpbnV4L0JVSUxELmduCi0rKysgc2FuZGJveC9saW51eC9CVUlMRC5nbgotQEAgLTQwNyw2ICs0 MDcsOCBAQCBjb21wb25lbnQoInNhbmRib3hfc2VydmljZXMiKSB7Ci0gCi0gc291cmNlX3NldCgi c2FuZGJveF9zZXJ2aWNlc19oZWFkZXJzIikgewotICAgc291cmNlcyA9IFsKLSsgICAgInN5c3Rl bV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiLAotKyAgICAic3lzdGVtX2hlYWRlcnMv cHBjNjRfbGludXhfdWNvbnRleHQuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm02NF9saW51 eF9zeXNjYWxscy5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5o IiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwKLWRpZmYgLS1n aXQgc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmggc2FuZGJveC9s aW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMxMzUxMWYyMi4uMGNh M2EzMjZmIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jh bmdlcy5oCi0rKysgc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgK LUBAIC01Niw2ICs1NiwxMyBAQAotICNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIF9fTlJfc3lz Y2FsbHMKLSAjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAotIAotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgotKyNk ZWZpbmUgTUlOX1NZU0NBTEwgMHUKLSsjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCAzODZ1Ci0r I2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSsKLSAjZWxzZQotICNlcnJv ciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5kYm94 L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2Vj Y29tcF9tYWNyb3MuaAotaW5kZXggMWE0MDdiOTUyLi5hNmFlYzU0NGUgMTAwNjQ0Ci0tLS0gc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBzYW5kYm94L2xpbnV4L2Jw Zl9kc2wvc2VjY29tcF9tYWNyb3MuaAotQEAgLTE2LDYgKzE2LDkgQEAKLSAjaWYgZGVmaW5lZChf X21pcHNfXykKLSAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRp b24KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot Ky8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQKLSt0eXBlZGVmIHVuc2lnbmVkIGxv bmcgbG9uZyBncmVnX3Q7Ci0gI2VuZGlmCi0gI2VuZGlmCi0gCi1AQCAtMzQ2LDYgKzM0OSw1MSBA QCBzdHJ1Y3QgcmVnc19zdHJ1Y3QgewotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNChfcmVncykg KF9yZWdzKS5yZWdzWzNdCi0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3Mp LnJlZ3NbNF0KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncykucmVnc1s1 XQotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgotKwotK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgcmVnc19zdHJ1Y3Q7Ci0rCi0rI2lmZGVm IEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4KLSsjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNI X1BQQzY0TEUKLSsjZWxzZQotKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQK LSsjZW5kaWYKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVj X21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9j dHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0rI2RlZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkg U0VDQ09NUF9SRUcoX2N0eCwgMCkKLSsjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51 Y19tY29udGV4dC5yZWdzLT5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTEoX2N0eCkgU0VDQ09N UF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTIoX2N0eCkgU0VDQ09NUF9SRUco X2N0eCwgNCkKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTMoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwg NSkKLSsjZGVmaW5lIFNFQ0NPTVBfUEFSTTQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNikKLSsj ZGVmaW5lIFNFQ0NPTVBfUEFSTTUoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgNykKLSsjZGVmaW5l IFNFQ0NPTVBfUEFSTTYoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgOCkKLSsKLSsjZGVmaW5lIFNF Q0NPTVBfTlJfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIG5yKSkKLSsj ZGVmaW5lIFNFQ0NPTVBfQVJDSF9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgYXJjaCkpCi0rI2RlZmluZSBTRUNDT01QX0lQX01TQl9JRFggXAotKyAgKG9mZnNldG9mKHN0 cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyA0KQotKyNkZWZp bmUgU0VDQ09NUF9JUF9MU0JfSURYIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21w X2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgMCkKLSsjZGVmaW5lIFNFQ0NPTVBfQVJHX01T Ql9JRFgobnIpIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3Mp ICsgOCAqIChucikgKyA0KQotKyNkZWZpbmUgU0VDQ09NUF9BUkdfTFNCX0lEWChucikgXAotKyAg KG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDAp Ci0rCi0rI2RlZmluZSBTRUNDT01QX1BUX1JFU1VMVChfcmVncykgKF9yZWdzKS5ncHJbM10KLSsj ZGVmaW5lIFNFQ0NPTVBfUFRfU1lTQ0FMTChfcmVncykgKF9yZWdzKS5ncHJbMF0KLSsjZGVmaW5l IFNFQ0NPTVBfUFRfSVAoX3JlZ3MpIChfcmVncykubmlwCi0rI2RlZmluZSBTRUNDT01QX1BUX1BB Uk0xKF9yZWdzKSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMihfcmVn cykgKF9yZWdzKS5ncHJbNF0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTMoX3JlZ3MpIChfcmVn cykuZ3ByWzVdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLmdwcls2 XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9yZWdzKS5ncHJbN10KLSsjZGVm aW5lIFNFQ0NPTVBfUFRfUEFSTTYoX3JlZ3MpIChfcmVncykuZ3ByWzhdCi0rCi0gI2Vsc2UKLSAj ZXJyb3IgVW5zdXBwb3J0ZWQgdGFyZ2V0IHBsYXRmb3JtCi0gCi1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2Mgc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotaW5kZXggYTZkMmMwZGZi Li4zN2ZkYzE3OWEgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L2Jhc2VsaW5lX3BvbGljeS5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9iYXNlbGluZV9wb2xpY3kuY2MKLUBAIC04OCw3ICs4OCw4IEBAIGJvb2wgSXNCYXNlbGluZVBv bGljeVdhdGNoZWQoaW50IHN5c25vKSB7Ci0gICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJjdGwo c3lzbm8pIHx8Ci0gICAgICAgICAgU3lzY2FsbFNldHM6OklzUHJvY2Vzc0dyb3VwT3JTZXNzaW9u KHN5c25vKSB8fAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgICAgICAgU3lzY2FsbFNl dHM6OklzU29ja2V0Q2FsbChzeXNubykgfHwKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2FybV9f KQotQEAgLTIxMCw3ICsyMTEsNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50 IGZzX2RlbmllZF9lcnJubywKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX21tYXApCi0gICAgIHJldHVybiBSZXN0cmlj dE1tYXBGbGFncygpOwotICNlbmRpZgotQEAgLTIyOCw3ICsyMjksNyBAQCBSZXN1bHRFeHByIEV2 YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKLSAgICAgcmV0dXJuIFJlc3Ry aWN0UHJjdGwoKTsKLSAKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK LSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg aWYgKHN5c25vID09IF9fTlJfc29ja2V0cGFpcikgewotICAgICAvLyBPbmx5IGFsbG93IEFGX1VO SVgsIFBGX1VOSVguIENyYXNoIGlmIGFueXRoaW5nIGVsc2UgaXMgc2Vlbi4KLSAgICAgc3RhdGlj X2Fzc2VydChBRl9VTklYID09IFBGX1VOSVgsCi1AQCAtMjY4LDcgKzI2OSw4IEBAIFJlc3VsdEV4 cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgfQotIAotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChz eXNubykpCi0gICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCk7Ci0gI2VuZGlm Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9w b2xpY3lfdW5pdHRlc3QuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2Vs aW5lX3BvbGljeV91bml0dGVzdC5jYwotaW5kZXggZmMzNjE4N2M5Li4xYWZmYzkxODkgMTAwNjQ0 Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91 bml0dGVzdC5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGlu ZV9wb2xpY3lfdW5pdHRlc3QuY2MKLUBAIC0yOTEsOCArMjkxLDEwIEBAIFRFU1RfQkFTRUxJTkVf U0lHU1lTKF9fTlJfdGltZXJfY3JlYXRlKQotICNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSBU RVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2V2ZW50ZmQpCi0gVEVTVF9CQVNFTElORV9TSUdTWVMo X19OUl9pbm90aWZ5X2luaXQpCi0rI2lmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gVEVTVF9C QVNFTElORV9TSUdTWVMoX19OUl92c2VydmVyKQotICNlbmRpZgotKyNlbmRpZgotIAotICNpZiBk ZWZpbmVkKExJQkNfR0xJQkMpICYmICFkZWZpbmVkKE9TX0NIUk9NRU9TKQotIEJQRl9URVNUX0Mo QmFzZWxpbmVQb2xpY3ksIEZ1dGV4RUlOVkFMLCBCYXNlbGluZVBvbGljeSkgewotZGlmZiAtLWdp dCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jl c3RyaWN0aW9ucy5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9w YXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwotaW5kZXggZjUxOTE1ZWRjLi5jYTJmNGYxMDYgMTAw NjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1l dGVyc19yZXN0cmljdGlvbnMuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwotQEAgLTQwLDcgKzQwLDggQEAK LSAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgotICNpZiAoZGVmaW5lZChPU19MSU5VWCkgfHwgQlVJ TERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykpICYmIFwKLSAgICAgIWRlZmluZWQoX19hcm1fXykg JiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICAgICAgICAgICBcCi0tICAgICFkZWZpbmVkKFBU UkFDRV9HRVRfVEhSRUFEX0FSRUEpCi0rICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEpICYmCQkJICAgIFwKLSsgICAgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBBbHNvIGlu Y2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5jZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3Ig aW5zdGFuY2UKLSAvLyB0aGUgb25lIGluIFVidW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRS QUNFX0dFVF9USFJFQURfQVJFQS4KLSAvLyBhc20vcHRyYWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qg b24gYXJtMzIgYW5kIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgaXNuJ3QKLUBAIC00OSw2ICs1MCwx MSBAQAotICNlbmRpZgotICNlbmRpZiAgLy8gIU9TX05BQ0xfTk9OU0ZJCi0gCi0rLy8gT24gUFBD NjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBt dXN0IGluY2x1ZGUgdGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8 dGVybWlvcy5oPgotKyNlbmRpZgotKwotICNpZiBkZWZpbmVkKE9TX0FORFJPSUQpCi0gCi0gI2lm ICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhFQykKLUBAIC05OCw2ICsxMDQsMTUgQEAKLSAjZW5kaWYK LSB9Ci0gCi0raW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsKLSsjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgcmV0dXJuIHRydWU7Ci0rI2Vsc2UKLSsgIHJldHVybiBmYWxz ZTsKLSsjZW5kaWYKLSt9Ci0rCi0rCi0gLy8gVWJ1bnR1J3MgdmVyc2lvbiBvZiBnbGliYyBoYXMg YSByYWNlIGNvbmRpdGlvbiBpbiBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQotIC8vIGl0IHRvIGNh bGwgZnV0ZXgoMikgd2l0aCBib2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmthcm91bmQgdGhpcywg d2UgbmVlZAotIC8vIHRvIGFsbG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRvIGZhaWwgd2l0aCBF SU5WQUwsIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlCi1AQCAtMjM5LDYgKzI1NCw4IEBACi0gICB1 aW50NjRfdCBrT0xhcmdlRmlsZUZsYWcgPSBPX0xBUkdFRklMRTsKLSAgIGlmIChJc0FyY2hpdGVj dHVyZVg4Nl82NCgpIHx8IElzQXJjaGl0ZWN0dXJlSTM4NigpIHx8IElzQXJjaGl0ZWN0dXJlTWlw cygpKQotICAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMTAwMDAwOwotKyAgZWxzZSBpZiAoSXNBcmNo aXRlY3R1cmVQUEM2NCgpKQotKyAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMjAwMDAwOwotIAotICAg Y29uc3QgQXJnPGludD4gY21kKDEpOwotICAgY29uc3QgQXJnPGxvbmc+IGxvbmdfYXJnKDIpOwot QEAgLTI1MywxNCArMjcwLDIzIEBACi0gICAgICAgICAgICAgICBGX1NFVExLVywKLSAgICAgICAg ICAgICAgIEZfR0VUTEssCi0gICAgICAgICAgICAgICBGX0RVUEZELAotLSAgICAgICAgICAgICAg Rl9EVVBGRF9DTE9FWEVDKSwKLS0gICAgICAgICAgICAgQWxsb3coKSkKLSsgICAgICAgICAgICAg IEZfRFVQRkRfQ0xPRVhFQwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gT24gUFBD NjQsIEZfU0VUTEssIEZfR0VUTEssIEZfU0VUTEtXIGFyZSBkZWZpbmVkIGFzIHRoZSA2NC1iaXQg dmFyaWFudHMKLSsvLyBidXQgZ2xpYmMgd2lsbCBzb21ldGltZXMgc3RpbGwgdXNlIHRoZSAzMi1i aXQgdmVyc2lvbnMuIEFsbG93IGJvdGguCi0rICAgICAgICAgICAgICAsCi0rICAgICAgICAgICAg ICA1LCAvKiBGX0dFVExLICgzMikgKi8KLSsgICAgICAgICAgICAgIDYsIC8qIEZfU0VUTEsgKDMy KSAqLwotKyAgICAgICAgICAgICAgNyAgLyogRl9TRVRMS1cgKDMyKSAqLwotKyNlbmRpZgotKyAg ICAgICAgICAgICAgKSwKLSsgICAgICAgICAgICBBbGxvdygpKQotICAgICAgIC5DYXNlKEZfU0VU RkwsCi0gICAgICAgICAgICAgSWYoKGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0gMCwgQWxs b3coKSkuRWxzZShDcmFzaFNJR1NZUygpKSkKLSAgICAgICAuRGVmYXVsdChDcmFzaFNJR1NZUygp KTsKLSB9Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0r I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSBSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKSB7Ci0g ICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBhcmUgdW5hYmxlIHRvIHJlc3RyaWN0IHRoZSBmaXJzdCBw YXJhbWV0ZXIgdG8KLSAgIC8vIHNvY2tldHBhaXIoMikuIFdoaWxzdCBpbml0aWFsbHkgc291bmRp bmcgYmFkLCBpdCdzIG5vdGV3b3J0aHkgdGhhdCB2ZXJ5Ci1AQCAtNDEzLDcgKzQzOSw3IEBACi0g I2VuZGlmCi0gICByZXR1cm4gU3dpdGNoKHJlcXVlc3QpCi0gICAgICAgLkNBU0VTKCgKLS0jaWYg IWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAgICAgICAgICAgICAgUFRSQUNFX0dFVFJFR1MsIFBU UkFDRV9HRVRGUFJFR1MsIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEsCi0gICAgICAgICAgICAgICAg ICBQVFJBQ0VfR0VUUkVHU0VULAotICNlbmRpZgotCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmggc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmlj dGlvbnMuaAotaW5kZXggYmE0Mjg5ZjA1Li45YTRkNWFiMmQgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMu aAotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmgKLUBAIC00OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9k c2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RNcHJvdGVjdEZsYWdzKCk7Ci0gLy8gT19OT05CTE9DSyB8 IE9fU1lOQyB8IE9fTEFSR0VGSUxFIHwgT19DTE9FWEVDIHwgT19OT0FUSU1FLgotIFNBTkRCT1hf RVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7Ci0gCi0t I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAvLyBSZXN0cmljdCBzb2NrZXRjYWxsKDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwg c2VuZCgyKSwgcmVjdigyKSwKLSAvLyBzZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigy KSwgc2VuZG1zZygyKSBhbmQgcmVjdm1zZygyKS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpS ZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLWRpZmYgLS1naXQgc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1pbmRleCBkMzY5M2ZkNzguLmQ0 OTJjZjk0YiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5jYwotQEAgLTI5LDcgKzI5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk R2V0dGltZShpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05S X2dldHRpbWVvZmRheToKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl90aW1lOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVl OwotQEAgLTQxLDEyICs0MiwxNCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1l KGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfY2xvY2tfbmFub3NsZWVwOiAgLy8gUGFyYW1l dGVycyBmaWx0ZXJlZCBieSBSZXN0cmljdENsb2NrSUQoKS4KLSAgICAgY2FzZSBfX05SX2Nsb2Nr X3NldHRpbWU6ICAgIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2Z0aW1lOiAgLy8gT2Jzb2xldGUuCi0gI2VuZGlmCi0gICAgIGNhc2UgX19O Ul9zZXR0aW1lb2ZkYXk6ICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl9zdGltZToKLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLUBAIC0xMTIs NyArMTE1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewot ICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0g ICAgIGNhc2UgX19OUl9mY2htb2RhdDoKLSAgICAgY2FzZSBfX05SX2ZjaG93bmF0OiAgLy8gU2hv dWxkIGJlIGNhbGxlZCBjaG93bmF0ID8KLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2Zz dGF0YXQ6ICAvLyBmc3RhdGF0KCkuIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbGlmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotICAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLUBAIC0x MzEsNyArMTM0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykg ewotICAgICBjYXNlIF9fTlJfbWVtZmRfY3JlYXRlOgotICAgICBjYXNlIF9fTlJfbWtkaXJhdDoK LSAgICAgY2FzZSBfX05SX21rbm9kYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X29sZGxzdGF0OgotICAgICBjYXNlIF9fTlJfb2xkc3RhdDoKLSAjZW5kaWYKLUBAIC0xNDUsNyAr MTQ4LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICNl bmRpZgotICAgICBjYXNlIF9fTlJfc3RhdGZzOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfc3RhdGZzNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeW1saW5rYXQ6Ci1AQCAt MTU1LDcgKzE1OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX3RydW5jYXRlNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91 bmxpbmthdDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfdXRpbWU6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91 dGltZW5zYXQ6ICAvLyBOZXcuCi1AQCAtMTc0LDcgKzE3OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAg ICAgICByZXR1cm4gdHJ1ZTsKLSAvLyBUT0RPKGpsbik6IHRoZXNlIHNob3VsZCBiZSBkZW5pZWQg Z3JhY2VmdWxseSBhcyB3ZWxsIChtb3ZlZCBiZWxvdykuCi0tI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2ZhZHZpc2U2 NDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKQotQEAgLTE4NywxMSArMTkzLDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Zsb2Nr OiAgICAgIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZnN0YXRm czogICAgLy8gR2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4KLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9mc3RhdGZzNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9mc3luYzogIC8vIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRmc3Rh dDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi1AQCAtMTk5LDYgKzIwNiw4IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAg ICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5v LgotICNlbGlmIGRlZmluZWQoX19hcm1fXykKLSAgICAgY2FzZSBfX05SX2FybV9zeW5jX2ZpbGVf cmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2UyOiAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gZmFs c2U7Ci1AQCAtMjI0LDcgKzIzMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkRmlsZVN5 c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZ2V0 ZGVudHM2NDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWFkZGlyOgotICNlbmRpZgotICAgICAgIHJldHVybiB0 cnVlOwotQEAgLTI2NSw3ICsyNzUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dldFNpbXBsZUlk KGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzUHJvY2Vzc1ByaXZpbGVnZUNoYW5n ZShpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2NhcHNl dDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2lvcGVybTogIC8vIEludGVsIHByaXZpbGVnZS4KLSAg ICAgY2FzZSBfX05SX2lvcGw6ICAgIC8vIEludGVsIHByaXZpbGVnZS4KLSAjZW5kaWYKLUBAIC0z MTYsNyArMzI2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFsSGFuZGxpbmco aW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9ydF9zaWdyZXR1cm46Ci0gICAgIGNhc2UgX19O Ul9ydF9zaWd0aW1lZHdhaXQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgotICAgICBjYXNlIF9fTlJfc2lncHJv Y21hc2s6Ci0gICAgIGNhc2UgX19OUl9zaWdyZXR1cm46Ci1AQCAtMzMyLDcgKzM0Myw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICNl bmRpZgotICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6Ci0gICAgIGNh c2UgX19OUl9zaWdzdXNwZW5kOgotICNlbmRpZgotQEAgLTM1Niw3ICszNjgsNyBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkKGludCBzeXNubykgewotICNlbmRpZgot ICAgICBjYXNlIF9fTlJfZHVwMzoKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfc2h1dGRvd246Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7 Ci1AQCAtMzkwLDcgKzQwMiw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NT dGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgotICAg ICBjYXNlIF9fTlJfd2FpdDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0tI2lmIGRlZmluZWQo X19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3dhaXRwaWQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7 Ci1AQCAtNDA3LDcgKzQxOSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NT dGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRfdGlk X2FkZHJlc3M6Ci0gICAgIGNhc2UgX19OUl91bnNoYXJlOgotLSNpZiAhZGVmaW5lZChfX21pcHNf XykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAh ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfdmZvcms6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtNDU2LDcgKzQ2OCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykg ewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBkZWZhdWx0OgotICNpZiBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2ls bCB3YW50IHRvIGluc3BlY3QgaXRzIGFyZ3VtZW50LgotICNlbmRpZgotICAgICAgIHJldHVybiBm YWxzZTsKLUBAIC00NjYsNyArNDc4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0 T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRH ZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWNjZXB0Ogot ICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKLSAgICAgY2FzZSBfX05SX2JpbmQ6Ci1AQCAtNDgxLDcg KzQ5Myw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50 IHN5c25vKSB7Ci0gfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRp cGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1Nv Y2tldENhbGwoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtNDk1LDcgKzUw OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0g I2VuZGlmCi0gCi0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50 IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRwZWVybmFt ZToKLUBAIC01MjAsNyArNTM0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVz c1NwYWNlQWNjZXNzKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWluY29yZToKLSAgICAg Y2FzZSBfX05SX21sb2NrYWxsOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfbW1hcDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi1AQCAtNTUwLDcgKzU2NCw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX2xzZWVrOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19sbHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKQotQEAgLTU2MiwyNiArNTc3LDI4IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3JlYWR2 OgotICAgICBjYXNlIF9fTlJfcHJlYWQ2NDoKLSAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9yZWN2OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNl LgotICAgICBjYXNlIF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAj ZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbGVjdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp IHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZDoK LSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfc2VuZG1zZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gICAgIGNhc2Ug X19OUl9zZW5kdG86ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBA IC02MzgsNyArNjU1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVs ZXIoaW50IHN5c25vKSB7Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9nZXRw cmlvcml0eToKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9uaWNlOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6 Ci1AQCAtNjUwLDcgKzY2OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2No ZWR1bGVyKGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24o aW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYK LSAgICAgY2FzZSBfX05SX2tleGVjX2xvYWQ6Ci1AQCAtNjY2LDcgKzY4NSw4IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxs U2V0czo6SXNLZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0t I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX2NyZWF0ZV9tb2R1bGU6Ci0gICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5 bXM6ICAvLyBTaG91bGQgRU5PU1lTLgotICAgICBjYXNlIF9fTlJfcXVlcnlfbW9kdWxlOgotQEAg LTY5OSw3ICs3MTksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX3N3YXBvZmY6Ci0gICAgIGNhc2UgX19OUl9zd2Fwb246Ci0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Vtb3VudDoKLSAjZW5kaWYKLSAg ICAgY2FzZSBfX05SX3Vtb3VudDI6Ci1AQCAtNzE1LDcgKzczNiw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzTnVtYShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldGNwdToKLSAgICAgY2Fz ZSBfX05SX21iaW5kOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK LSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg ICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX21vdmVf cGFnZXM6Ci1AQCAtNzQ0LDE0ICs3NjUsMTUgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQ cm9jZXNzRW52aXJvbm1lbnQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAg IGNhc2UgX19OUl9hY2N0OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQotKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX3VnZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX3VsaW1pdDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldHJ1c2Fn ZToKLUBAIC03ODUsNyArODA3LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1T dGF0dXMoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeXNpbmZvOgotICAg ICBjYXNlIF9fTlJfdW5hbWU6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZHVu YW1lOgotICAgICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6Ci0gI2VuZGlmCi1AQCAtODQ3LDggKzg2 OSwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBzeXNubykg ewotIH0KLSAjZW5kaWYKLSAKLSsvKiBzaGl0dHkgaGFjayBhcm91bmQgVm9pZCdzIDQuMTkga2Vy bmVsIGhlYWRlcnMgbWlzc2luZyB0aG9zZSBudW1iZXJzICovCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykgJiYgIWRlZmluZWQoX19OUl9zaG1nZXQpCi0rI2RlZmluZSBfX05SX3NobWdldCAz OTUKLSsjZGVmaW5lIF9fTlJfc2htY3RsIDM5NgotKyNkZWZpbmUgX19OUl9zaG1hdCAzOTcKLSsj ZGVmaW5lIF9fTlJfc2htZHQgMzk4Ci0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV82NF9CSVRTKSkKLSAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9y aXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgotIGJvb2wgU3lzY2FsbFNldHM6Oklz U3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKLUBAIC04ODAsNyArOTEwLDggQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubykgewotICNlbmRp ZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxl eGluZyBzeXN0ZW0gY2FsbC4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5 c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtOTAwLDcgKzkzMSw4IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQW55U3lzdGVtVihpbnQgc3lzbm8pIHsKLSAgIHJldHVybiBJc1N5c3RlbVZN ZXNzYWdlUXVldWUoc3lzbm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8Ci0gICAg ICAgICAgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KHN5c25vKTsKLSAjZWxpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICByZXR1cm4gSXNTeXN0ZW1WSXBjKHN5c25vKTsKLSAjZW5kaWYKLSB9Ci1AQCAt OTUzLDcgKzk4NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmFOb3RpZnkoaW50IHN5c25vKSB7 Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNUaW1lcihpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lz bm8pIHsKLSAgICAgY2FzZSBfX05SX2dldGl0aW1lcjoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWxhcm06Ci0g I2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRpdGltZXI6Ci1AQCAtMTAxMiwxOCArMTA0NSwyMiBA QCBib29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9z eW5jZnM6Ci0gICAgIGNhc2UgX19OUl92aGFuZ3VwOgotIC8vIFRoZSBzeXN0ZW0gY2FsbHMgYmVs b3cgYXJlIG5vdCBpbXBsZW1lbnRlZC4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWZzX3N5c2NhbGw6Ci0gI2Vu ZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2JyZWFrOgotICNl bmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl9nZXRwbXNnOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9ndHR5OgotICAgICBjYXNlIF9fTlJfaWRsZToKLSAgICAg Y2FzZSBfX05SX2xvY2s6Ci1AQCAtMTAzMSwyMCArMTA2OCwyMiBAQCBib29sIFN5c2NhbGxTZXRz OjpJc01pc2MoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9wcm9mOgotICAgICBjYXNlIF9f TlJfcHJvZmlsOgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9wdXRwbXNnOgotICNlbmRpZgotICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pCi0gICAgIGNhc2UgX19OUl9zZWN1cml0eToKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3R0eToKLSAjZW5kaWYK LS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3R1eGNhbGw6Ci0gI2VuZGlmCi0t I2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYg IWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3ZzZXJ2ZXI6Ci0gI2VuZGlm Ci0gICAgICAgcmV0dXJuIHRydWU7Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3NldHMuaCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9zZXRzLmgKLWluZGV4IDkyMzUzM2VjOS4uNDExZjcyYWNkIDEwMDY0NAotLS0t IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotKysrIHNh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotQEAgLTQzLDEz ICs0MywxNCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMg Ym9vbCBJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubyk7Ci0gCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgIC8vIEJpZyBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNv Y2tldHMuCi0gICBzdGF0aWMgYm9vbCBJc1NvY2tldENhbGwoaW50IHN5c25vKTsKLSAjZW5kaWYK LSAKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmlu ZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgc3RhdGljIGJvb2wg SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKTsKLSAjZW5kaWYKLSAKLUBAIC03 Niw3ICs3Nyw3IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0YXRp YyBib29sIElzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5c25vKTsKLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKSB8fCBcCi0gICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQotICAgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBv ZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KLSAgIHN0 YXRpYyBib29sIElzU3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pOwotQEAgLTg4LDcgKzg5 LDggQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICNlbmRpZgotIAotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5 c3RlbSBjYWxsLgotICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WSXBjKGludCBzeXNubyk7Ci0gI2Vu ZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLWluZGV4IGU0N2U5OGJmNS4uZDUzYTdm ZjU2IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysr IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTE4LDcgKzE4LDcgQEAg bmFtZXNwYWNlIHNhbmRib3ggewotIG5hbWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmluZWQoQVJDSF9D UFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAg IGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpIHx8IGRlZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAvLyBOdW1iZXIg dGhhdCdzIG5vdCBjdXJyZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCi0gY29u c3QgaW50IGtJbnZhbGlkU3lzY2FsbE51bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UKLUBAIC0zMTAs MTIgKzMxMCw1NiBAQCBhc20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlcm5l bCBleGFjdGx5IHdoZXJlIHdlIG1hZGUgYQotICAgICAvLyBFbnRlciB0aGUga2VybmVsCi0gICAg ICJzdmMgMFxuIgotICAgICAiMjpyZXRcbiIKLSsgICAgIi5jZmlfZW5kcHJvY1xuIgotKyAgICAi LnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAiLnRleHRcbiIKLSsgICAgIi5hbGlnbiA0XG4iCi0rICAgICIudHlwZSBT eXNjYWxsQXNtIEBmdW5jdGlvblxuIgotKyAgICAiU3lzY2FsbEFzbTpcbiIKLSsgICAgIi5jZmlf c3RhcnRwcm9jXG4iCi0rCi0rICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCi0rICAgICJj bXBkaSAzLCAwXG4iCi0rICAgICJiZ3QgMmZcbiIKLSsKLSsgICAgLy8gTG9hZCBhZGRyZXNzIG9m IDNmIGludG8gcjMgYW5kIHJldHVybgotKyAgICAibWZsciAxMFxuIgotKyAgICAiYmwgMWZcbiIK LSsgICAgIjE6IG1mbHIgM1xuIgotKyAgICAibXRsciAxMFxuIgotKyAgICAiYWRkaSAzLCAzLCA0 KjEzXG4iCi0rICAgICJibHJcbiIKLSsKLSsgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJh eSBpbnRvIHIzLTgKLSsgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAotKyAgICAiMjpcbiIKLSsg ICAgIm1yIDAsIDNcbiIKLSsgICAgImxkIDMsIDAoNClcbiIKLSsgICAgImxkIDUsIDE2KDQpXG4i Ci0rICAgICJsZCA2LCAyNCg0KVxuIgotKyAgICAibGQgNywgMzIoNClcbiIKLSsgICAgImxkIDgs IDQwKDQpXG4iCi0rICAgICJsZCA0LCA4KDQpXG4iCi0rICAgICJsaSA5LCAwXG4iCi0rCi0rICAg IC8vIEVudGVyIGtlcm5lbAotKyAgICAic2NcbiIKLSsKLSsgICAgLy8gTWFnaWMgcmV0dXJuIGFk ZHJlc3MKLSsgICAgIjM6XG4iCi0rICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVl cyBhcmUgYWx3YXlzIHBvc2l0aXZlLgotKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNP IGFuZCBuZWdhdGUgdXBvbiBlcnJvcgotKyAgICAiYmMgNCwgMywgNGZcbiIKLSsgICAgIm5lZyAz LCAzXG4iCi0rICAgICI0OiBibHJcbiIKLSsKLSAgICAgIi5jZmlfZW5kcHJvY1xuIgotICAgICAi LnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0gI2VuZGlmCi0gICAgICk7ICAvLyBh c20KLSAKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBleHRlcm4gIkMiIHsKLSBpbnRwdHJfdCBTeXNj YWxsQXNtKGludHB0cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9Ci1AQCAtNDI5 LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAotICAgICByZXQgPSBp bm91dDsKLSAgIH0KLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpbnRwdHJf dCByZXQgPSBTeXNjYWxsQXNtKG5yLCBhcmdzKTsKLSAjZWxzZQotICNlcnJvciAiVW5pbXBsZW1l bnRlZCBhcmNoaXRlY3R1cmUiCi0gI2VuZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBAQCB2b2lkIFN5 c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBj dHgpIHsKLSAgICAgLy8gbmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgotICAgICByZXRfdmFsID0g LXJldF92YWw7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVsc2UKLSsgIH0g ZWxzZSB7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2VuZGlmCi0rI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZl cnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSsgIGlmIChyZXRfdmFsIDw9 IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotKyAg ICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9IGVsc2Ugewot KyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgfQotICNl bmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3Zh bCk7Ci0gfQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2Mgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi1pbmRleCA5ODg0YmU4YmIuLjk4ZTQzNzFh YSAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLSsrKyBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLUBAIC0yMzIsNiArMjMyLDIwIEBAIHZvaWQg VHJhcDo6U2lnU3lzKGludCBuciwgTGludXhTaWdJbmZvKiBpbmZvLCB1Y29udGV4dF90KiBjdHgp IHsKLSAgICAgICBTZXRJc0luU2lnSGFuZGxlcigpOwotICAgICB9Ci0gCi0rI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNvbWUgc3lzY2FsbHMgc2Vl bSB0byBhY2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJzdAotKyAgICAvLyBwYXJhbWV0ZXIgd2hp Y2ggY2F1c2VzIGNoZWNrcyBhZ2FpbnN0IGl0IHRvIGZhaWwuIEZvciBub3csIG1hbnVhbGx5Ci0r ICAgIC8vIG5lZ2F0ZSB0aGVtIGJhY2suCi0rICAgIC8vIFRPRE8oc2hhd25AYW5hc3Rhcy5pbyk6 IGludmVzdGlnYXRlIHRoaXMgaXNzdWUgZnVydGhlcgotKyAgICBhdXRvIG5yID0gU0VDQ09NUF9T WVNDQUxMKGN0eCk7Ci0rICAgIGlmIChuciA9PSBfX05SX29wZW5hdCB8fCBuciA9PSBfX05SX21r ZGlyYXQgfHwgbnIgPT0gX19OUl9mYWNjZXNzYXQgfHwgbnIgPT0gX19OUl9yZWFkbGlua2F0IHx8 Ci0rICAgICAgICBuciA9PSBfX05SX3JlbmFtZWF0IHx8IG5yID09IF9fTlJfcmVuYW1lYXQyIHx8 IG5yID09IF9fTlJfbmV3ZnN0YXRhdCB8fCBuciA9PSBfX05SX3VubGlua2F0KSB7Ci0rICAgICAg ICBpZiAoc3RhdGljX2Nhc3Q8aW50PihTRUNDT01QX1BBUk0xKGN0eCkpID4gMCkgewotKyAgICAg ICAgICAgIFNFQ0NPTVBfUEFSTTEoY3R4KSA9IC1TRUNDT01QX1BBUk0xKGN0eCk7Ci0rICAgICAg ICB9Ci0rICAgIH0KLSsjZW5kaWYKLSsKLSAgICAgLy8gQ29weSB0aGUgc2VjY29tcC1zcGVjaWZp YyBkYXRhIGludG8gYSBhcmNoX3NlY2NvbXBfZGF0YSBzdHJ1Y3R1cmUuIFRoaXMKLSAgICAgLy8g aXMgd2hhdCB3ZSBhcmUgc2hvd2luZyB0byBUcmFwRm5jIGNhbGxiYWNrcyB0aGF0IHRoZSBzeXN0 ZW0gY2FsbAotICAgICAvLyBldmFsdWF0b3IgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzYW5kYm94Lgot ZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjIHNhbmRib3gv bGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLWluZGV4IGQ3YjVkOGM0NC4uNGFkYzZkMGQ0 IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLSsrKyBz YW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi1AQCAtODEsNyArODEsNyBAQCBi b29sIENocm9vdFRvU2FmZUVtcHR5RGlyKCkgewotICAgcGlkX3QgcGlkID0gLTE7Ci0gICBhbGln bmFzKDE2KSBjaGFyIHN0YWNrX2J1ZltQVEhSRUFEX1NUQUNLX01JTl07Ci0gI2lmIGRlZmluZWQo QVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBc Ci0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICAgLy8g VGhlIHN0YWNrIGdyb3dzIGRvd253YXJkLgotICAgdm9pZCogc3RhY2sgPSBzdGFja19idWYgKyBz aXplb2Yoc3RhY2tfYnVmKTsKLSAjZWxzZQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlcnZp Y2VzL3N5c2NhbGxfd3JhcHBlcnMuY2Mgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dy YXBwZXJzLmNjCi1pbmRleCBmY2ZkMmFhMTIuLmY2ZWIzMmZiNyAxMDA2NDQKLS0tLSBzYW5kYm94 L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLUBAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Ns b25lKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQot ICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBj dGlkLCB0bHMpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK LSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0gICAvLyBDT05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCi0gICBy ZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywg Y3RpZCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIv YnJva2VyX3Byb2Nlc3MuY2Mgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJv Y2Vzcy5jYwotaW5kZXggODMyMWQyMzc5Li43ZTVhZDFkZTMgMTAwNjQ0Ci0tLS0gc2FuZGJveC9s aW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotKysrIHNhbmRib3gvbGludXgv c3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKLUBAIC0xNTcsNyArMTU3LDcgQEAgYm9v bCBCcm9rZXJQcm9jZXNzOjpJc1N5c2NhbGxBbGxvd2VkKGludCBzeXNubykgY29uc3QgewotICNp ZiBkZWZpbmVkKF9fTlJfZnN0YXRhdCkKLSAgICAgY2FzZSBfX05SX2ZzdGF0YXQ6Ci0gI2VuZGlm Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OgotICNlbmRpZgotICAgICAg IHJldHVybiAhZmFzdF9jaGVja19pbl9jbGllbnRfIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRl c3QoQ09NTUFORF9TVEFUKTsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF9zZWNjb21wLmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNj b21wLmgKLWluZGV4IGE2MGZlMmFkMy4uOWRjY2RiNTFkIDEwMDY0NAotLS0tIHNhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgKLUBAIC0yOSw2ICsyOSw5IEBACi0gI2lmbmRlZiBF TV9BQVJDSDY0Ci0gI2RlZmluZSBFTV9BQVJDSDY0IDE4MwotICNlbmRpZgotKyNpZm5kZWYgRU1f UFBDNjQKLSsjZGVmaW5lIEVNX1BQQzY0IDIxCi0rI2VuZGlmCi0gCi0gI2lmbmRlZiBfX0FVRElU X0FSQ0hfNjRCSVQKLSAjZGVmaW5lIF9fQVVESVRfQVJDSF82NEJJVCAweDgwMDAwMDAwCi1AQCAt NTQsNiArNTcsMTIgQEAKLSAjaWZuZGVmIEFVRElUX0FSQ0hfQUFSQ0g2NAotICNkZWZpbmUgQVVE SVRfQVJDSF9BQVJDSDY0IChFTV9BQVJDSDY0IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJ VF9BUkNIX0xFKQotICNlbmRpZgotKyNpZm5kZWYgQVVESVRfQVJDSF9QUEM2NAotKyNkZWZpbmUg QVVESVRfQVJDSF9QUEM2NCAoRU1fUFBDNjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQpCi0rI2VuZGlm Ci0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0TEUKLSsjZGVmaW5lIEFVRElUX0FSQ0hfUFBDNjRM RSAoRU1fUFBDNjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0rI2Vu ZGlmCi0gCi0gLy8gRm9yIHByY3RsLmgKLSAjaWZuZGVmIFBSX1NFVF9TRUNDT01QCi1kaWZmIC0t Z2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmggc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotaW5kZXggZjVhNzM2NzYxLi41MTVi MjFhNWYgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWdu YWwuaAotKysrIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLUBA IC0xMyw3ICsxMyw3IEBACi0gLy8gKG5vdCB1bmRlZmluZWQsIGJ1dCBkZWZpbmVkIGRpZmZlcmVu dCB2YWx1ZXMgYW5kIGluIGRpZmZlcmVudCBtZW1vcnkKLSAvLyBsYXlvdXRzKS4gU28sIGZpbGwg dGhlIGdhcCBoZXJlLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQot KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gCi0g I2RlZmluZSBMSU5VWF9TSUdIVVAgMQotICNkZWZpbmUgTElOVVhfU0lHSU5UIDIKLWRpZmYgLS1n aXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIHNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotaW5kZXggMmI3OGEwY2MzLi4w YTcwZjVlYTUgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9z eXNjYWxscy5oCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxs cy5oCi1AQCAtMzUsNSArMzUsOSBAQAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9w cGM2NF9saW51eF9zeXNjYWxscy5oIgotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9M SU5VWF9TWVNURU1fSEVBREVSU19MSU5VWF9TWVNDQUxMU19IXwotIAotZGlmZiAtLWdpdCBzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0Lmggc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF91Y29udGV4dC5oCi1pbmRleCAyMmNlNzgwMjcuLmE2OWIwMjRj MiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0 LmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKLUBA IC0xMSw2ICsxMSw4IEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv YXJtX2xpbnV4X3Vjb250ZXh0LmgiCi0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykKLSAjaW5jbHVk ZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9pMzg2X2xpbnV4X3Vjb250ZXh0LmgiCi0r I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgiCi0gI2Vsc2UKLSAjZXJyb3IgIk5v IHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIFBOYUNsIGhlYWRlciIKLSAjZW5kaWYK LWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNj YWxscy5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMu aAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uY2NhY2ZmZTIyCi0tLS0g L2Rldi9udWxsCi0rKysgc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9z eXNjYWxscy5oCi1AQCAtMCwwICsxLDEyIEBACi0rLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9t aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKy8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0rI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi0rI2RlZmluZSBTQU5EQk9YX0xJ TlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi0rCi0rI2luY2x1ZGUg PGFzbS91bmlzdGQuaD4KLSsKLSsvL1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSBz eXNjYWxsIG51bWJlcnMgZm9yIFBQQzY0PwotKwotKyNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9T WVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXwotZGlmZiAtLWdpdCBzYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0Lmggc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oCi1uZXcgZmlsZSBtb2RlIDEw MDY0NAotaW5kZXggMDAwMDAwMDAwLi4wNzcyOGUwODcKLS0tLSAvZGV2L251bGwKLSsrKyBzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLUBAIC0wLDAg KzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VO U0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRf TElOVVhfVUNPTlRFWFRfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNf UFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KLSsKLSsjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Ci0r Ci0rLy9UT0RPOiBpcyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgdWNvbnRleHQgb24gUFBDNjQ/ Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVY X1VDT05URVhUX0hfCi1kaWZmIC0tZ2l0IHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94 L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2Mgc2VydmljZXMvc2VydmljZV9tYW5h Z2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotaW5kZXggZmI4 OWIzMzU2Li4xZTk4NDczMWUgMTAwNjQ0Ci0tLS0gc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3Jl bmRlcmVyX3BvbGljeV9saW51eC5jYwotKysrIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKLUBAIC0xNSw2ICsxNSwxMSBAQAotICNpbmNsdWRlICJzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgiCi0gI2luY2x1ZGUgInNl cnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L3NhbmRib3hfbGludXguaCIKLSAK LSsvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1p b3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwot KyNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0rI2VuZGlmCi0rCi0gLy8gVE9ETyh2aWduYXR0aSk6IHJl cGxhY2UgdGhlIGxvY2FsIGRlZmluaXRpb25zIGJlbG93IHdpdGggI2luY2x1ZGUKLSAvLyA8bGlu dXgvZG1hLWJ1Zi5oPiBvbmNlIGtlcm5lbCB2ZXJzaW9uIDQuNiBiZWNvbWVzIHdpZGVseSB1c2Vk LgotICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9hbmds ZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oIHRoaXJkX3BhcnR5L2FuZ2xlL3Ny Yy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLWluZGV4IDNhODA3ZTFlLi41MjU4NjE3 YSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9J bmZvU2luay5oCi0rKysgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3Iv SW5mb1NpbmsuaAotQEAgLTkyLDcgKzkyLDE2IEBAIGNsYXNzIFRJbmZvU2lua0Jhc2UKLSAgICAg ICAgICAgICBzdHJlYW0ucHJlY2lzaW9uKDgpOwotICAgICAgICAgICAgIHN0cmVhbSA8PCBmOwot ICAgICAgICAgfQotLSAgICAgICAgc2luay5hcHBlbmQoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAg ICAgIC8vIEhhY2sgdG8gd29yayBhcm91bmQgYSBidWcgd2hlcmUgbmVnYXRpdmUgZmxvYXRpbmcg cG9pbnQgdmFsdWVzCi0rICAgICAgICAvLyBhcmUgcmVuZGVyZWQgbGlrZSAnLjAuNScgaW5zdGVh ZCBvZiAnLTAuNScKLSsgICAgICAgIHN0ZDo6c3RyaW5nIHJlcyhzdHJlYW0uc3RyKCkpOwotKwot KyAgICAgICAgaWYgKHNpZ25iaXQoZikpIHsgLy8gdGVzdCBpZiBmIGlzIG5lZ2F0aXZlCi0rICAg ICAgICAgICAgcmVzWzBdID0gJy0nOwotKyAgICAgICAgfQotKwotKyAgICAgICAgc2luay5hcHBl bmQocmVzKTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgfQotICAgICAvLyBXcml0ZSBi b29sZWFuIHZhbHVlcyBhcyB0aGVpciBuYW1lcyBpbnN0ZWFkIG9mIGludGVncmFsIHZhbHVlLgot ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmggdGhp cmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi1pbmRleCA0Mjk2NGNjMS4u NjYwN2RlZWIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0 YW50cy5oCi0rKysgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi1A QCAtOSw2ICs5LDcgQEAKLSAjaWZuZGVmIExJQkFOR0xFX0NPTlNUQU5UU19IXwotICNkZWZpbmUg TElCQU5HTEVfQ09OU1RBTlRTX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGUg ImNvbW1vbi9wbGF0Zm9ybS5oIgotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlM RC5nbgotaW5kZXggYjQzNTQ5OWY0Li5hYzhhODRiNmQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv Ym9yaW5nc3NsL0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1A QCAtMTAxLDYgKzEwMSwxMyBAQCBpZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1 ICE9ICJhcm02NCIpIHsKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgcHVibGljX2NvbmZpZ3Mg PSBbICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICAgIH0KLSsgICAgfSBlbHNlIGlmIChjdXJyZW50 X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAgaWYgKGlzX2xpbnV4KSB7Ci0rICAgICAgICAjIFRP RE86IHBwYzY0IChiZSkgY2hlY2sKLSsgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNf bGludXhfcHBjNjRsZQotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBwdWJsaWNfY29uZmlncyA9 IFsgIjpub19hc21fY29uZmlnIiBdCi0rICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgIHB1 YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAgICAgfQotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5n bgotaW5kZXggNTYxN2RlODguLmRjOGJjMTc2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC01OTgs NyArNTk4LDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtw YWQvc3JjL2NsaWVudC9taW5pZHVtcF9maWxlX3dyaXRlci5oIiwKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NvbW1vbi9jb252ZXJ0X1VURi5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24v Y29udmVydF9VVEYuaCIsCi0tICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtw YWRfZ2V0Y29udGV4dC5TIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZf Y29yZV9kdW1wLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29y ZV9kdW1wLmgiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZnV0aWxzLmNj IiwKLUBAIC02MzYsNiArNjM1LDE0IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0g Ci0gICAgIGxpYnMgPSBbICJkbCIgXQotIAotKyAgICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0 IikgewotKyAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAgICB9IGVs c2UgewotKyAgICAgICAgc291cmNlcyArPSBbCi0rICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9j b21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TIgotKyAgICAgICAgXQotKyAgICB9Ci0r Ci0gICAgIGluY2x1ZGVfZGlycyA9IFsKLSAgICAgICAiLiIsCi0gICAgICAgImJyZWFrcGFkL3Ny YyIsCi1AQCAtNjg2LDcgKzY5Myw2IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0g ICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlcl91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdF91dGlscy5jYyIsCi0gICAg ICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL3Byb2NfY3B1aW5m b19yZWFkZXJfdW5pdHRlc3QuY2MiLAotLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L2JyZWFrcGFkX2dldGNvbnRleHRfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXBfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L2ZpbGVfaWRfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L2xpbnV4X2xpYmNfc3VwcG9ydF91bml0dGVzdC5jYyIsCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2Nw dS5oCi1pbmRleCAwN2Q5MTcxYS4uOWFlZDRjYjMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2Nv bnRleHRfY3B1LmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotQEAgLTQ0LDYgKzQ0 LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4dENQVTsKLSB0eXBlZGVmIE1E UmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOwotICNlbGlmIGRlZmluZWQoX19taXBz X18pCi0gdHlwZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRleHRDUFU7Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4 dENQVTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8g eW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRf aW5mby5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTMuLjAzYWZlYzdh IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi0rKysgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFk X2luZm8uY2MKLUBAIC0yNzAsNyArMjcwLDQyIEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNv bnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmly ID0gbWNvbnRleHQuZnBjX2VpcjsKLSAjZW5kaWYKLSB9Ci0tI2VuZGlmICAvLyBfX21pcHNfXwot KwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVGhyZWFkSW5m bzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewotKyAgICByZXR1cm4gbWNvbnRleHQu Z3BfcmVnc1tQVF9OSVBdOwotK30KLSsKLSt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBN RF9DT05URVhUX1BQQzY0X0ZVTEw7Ci0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVY VF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQu Z3BfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsK LSsgICAgb3V0LT5zcnIwID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNy cjEgPSBtY29udGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSBtY29udGV4dC5n cF9yZWdzW1BUX0NDUl07Ci0rICAgIG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJd OwotKyAgICBvdXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBp KyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVn c1tpXTsKLSsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tO RlBSRUctMV07Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFf UFBDX1ZSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0g PSBcCi0rICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwgMzIp IAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bMV0sIAotKyAg ICAgICAgICAgICgoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52 cnNhdmUgPSB2cmVncy52cnNhdmU7Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0g ezAsIHZyZWdzLnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy dmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCi0gCi0g dm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVn cywgc2l6ZV90KiBzaXplKSB7Ci0gICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKLUBAIC0yNzks NiArMzE0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnMo dm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgICAqZ3BfcmVncyA9IG1jb250ZXh0 LmdyZWdzOwotICAgaWYgKHNpemUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdyZWdz KTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpZiAoZ3BfcmVncykKLSsgICAg KmdwX3JlZ3MgPSBtY29udGV4dC5ncF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0g c2l6ZW9mKG1jb250ZXh0LmdwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZ3BfcmVncykKLSAgICAg KmdwX3JlZ3MgPSAmcmVnczsKLUBAIC0yOTQsNiArMzM0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6 R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7 Ci0gICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKLSAgIGlmIChzaXplKQotICAgICAq c2l6ZSA9IHNpemVvZihtY29udGV4dC5mcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgIGlmIChmcF9yZWdzKQotKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdz OwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOwot ICNlbHNlCi0gICBpZiAoZnBfcmVncykKLSAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOwotQEAgLTMw Miw0ICszNDcsMTMgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJz KHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAjZW5kaWYKLSB9Ci0gCi0rI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSt2b2lkIFRocmVhZEluZm86OkdldFZlY3RvclJlZ2lzdGVy cyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSsgICAgaWYgKHZfcmVncykKLSsgICAg ICAgICp2X3JlZ3MgPSAmdnJlZ3M7Ci0rICAgIGlmIChzaXplKQotKyAgICAgICAgKnNpemUgPSBz aXplb2YodnJlZ3MpOwotK30KLSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2Jy ZWFrcGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmggdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFk X2luZm8uaAotaW5kZXggZmIyMTZmYTYuLjU5M2FhYzgyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Ro cmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi1AQCAtNjgsNiArNjgsMTAg QEAgc3RydWN0IFRocmVhZEluZm8gewotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQg aW4gPHN5cy91c2VyLmg+Ci0gICBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOwotICAgc3Ry dWN0IHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5o Pi4KLSsgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci0rICB2cnJlZ3NldF90IHZyZWdzOwotICNlbGlm IGRlZmluZWQoX19taXBzX18pCi0gICAvLyBVc2UgdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIDxz eXMvdWNvbnRleHQuaD4uCi0gICBtY29udGV4dF90IG1jb250ZXh0OwotQEAgLTg0LDYgKzg4LDEx IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAKLSAgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5k IHNpemUgb2YgZmxvYXQgcG9pbnQgcmVnaXN0ZXIgYXJlYS4KLSAgIHZvaWQgR2V0RmxvYXRpbmdQ b2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKTsKLSsKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBv ZiB0aGUgdmVjdG9yIHJlZ2lzdGVyIGFyZWEuIChQUEM2NCBvbmx5KQotKyAgdm9pZCBHZXRWZWN0 b3JSZWdpc3RlcnModm9pZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKTsKLSsjZW5kaWYKLSB9Owot IAotIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dWNvbnRleHRfcmVhZGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotaW5kZXggZWU1 MTVjNDEuLjEwOTA0NzBmIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwot KysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93 cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1NCw2ICsyNTQsNDggQEAgdm9p ZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25z dCB1Y29udGV4dF90ICp1YykgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29u dGV4dC5mcGNfZWlyOyAgLy8gVW51c2VkLgotICNlbmRpZgotIH0KLSsKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1Bv aW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4 dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKLSt9Ci0rCi0rdWludHB0cl90IFVD b250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMp IHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwot K3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwg Y29uc3QgdWNvbnRleHRfdCogdWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0g TURfQ09OVEVYVF9QUEM2NF9GVUxMOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NP TlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmxyID0gdWMtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfTE5LXTsgICAgCi0rICAgIG91dC0+c3JyMCA9IHVjLT51Y19tY29udGV4dC5n cF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3JyMSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdz W1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1Jd OwotKyAgICBvdXQtPnhlciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAg IG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBp KyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0 LmZwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29u dGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9W RUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3Nh dmUuc2F2ZV92cltpXSA9Ci0rICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3Nb aV1bMF0pIDw8IDMyKSAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdz W2ldWzFdLCAKLSsgICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVsyXSkg PDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVszXX07 Ci0rCi0rICAgIG91dC0+dnJzYXZlID0gdnJlZ3MtPnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jf c2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MtPnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rCi0gI2VuZGlmCi0g Ci0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotaW5kZXggOGU3NGE4 YTUuLjdjYjY2N2E3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLUBAIC01NSw2ICs1NSw5IEBAIHN0cnVjdCBVQ29u dGV4dFJlYWRlciB7Ci0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAgIHN0YXRpYyB2b2lk IEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRl eHQqIGZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhdGljIHZv aWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1 YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVnc2V0X3QqIHZyZWdz KTsKLSAjZWxzZQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAq b3V0LCBjb25zdCB1Y29udGV4dF90ICp1Yyk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLWluZGV4IGM2NWZlYWExLi41YTdhYjUwYyAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLUBA IC00NjEsOSArNDYxLDE2IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGlu dCAvKnNpZyovLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqIHVjKSB7Ci0gICAgIG1lbWNweSgmZ19j cmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAotICAgICAgICAgICAgc2l6ZW9mKGdf Y3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUpKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAvLyBPbiBQUEM2NCwgd2UgbXVzdCBjb3B5IFZSIHN0YXRlCi0rICB1Y29u dGV4dF90KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7Ci0rICBpZiAodWNfcHRyLT51Y19tY29u dGV4dC52X3JlZ3MpIHsKLSsgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0 ZSwgdWNfcHRyLT51Y19tY29udGV4dC52X3JlZ3MsCi0rICAgICAgICAgICBzaXplb2YoZ19jcmFz aF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUpKTsKLSsgIH0KLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQg b2YgdXNlciBBQkkgb24gQVJNIExpbnV4LgotLSAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQ IHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90Ci0rICAvLyBJbiBjYXNlIG9mIE1J UFMsIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90Ci0gICAvLyBh bmQgJ2Zsb2F0X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIgb2YgQ3Jhc2hDb250ZXh0LgotICAgdWNv bnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwotICAgaWYgKHVjX3B0ci0+dWNfbWNv bnRleHQuZnByZWdzKSB7Ci1AQCAtNzAxLDExICs3MDgsMTkgQEAgYm9vbCBFeGNlcHRpb25IYW5k bGVyOjpXcml0ZU1pbmlkdW1wKCkgewotICAgfQotICNlbmRpZgotIAotLSNpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKLSsjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykg JiYgIWRlZmluZWQoX19taXBzX18pIFwKLSsgICAgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgIC8vIEZQVSBzdGF0ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgotICAg bWVtY3B5KCZjb250ZXh0LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQu ZnByZWdzLAotICAgICAgICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7Ci0gI2VuZGlm Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFZlY3RvciByZWdpc3RlcnMg bXVzdCBiZSBjb3BpZWQgb24gUFBDNjQKLSsgIG1lbWNweSgmY29udGV4dC52ZWN0b3Jfc3RhdGUs IGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC52X3JlZ3MsCi0rICAgICAgICAgc2l6ZW9mKGNv bnRleHQudmVjdG9yX3N0YXRlKSk7Ci0rI2VuZGlmCi0rCi0gICBjb250ZXh0LnRpZCA9IHN5c19n ZXR0aWQoKTsKLSAKLSAgIC8vIEFkZCBhbiBleGNlcHRpb24gc3RyZWFtIHRvIHRoZSBtaW5pZHVt cCBmb3IgYmV0dGVyIHJlcG9ydGluZy4KLUBAIC03MjYsNiArNzQxLDkgQEAgYm9vbCBFeGNlcHRp b25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0g ICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9Ci0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lk Kj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnBjKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9Ci0rICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQ XSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlv dXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmgKLWluZGV4IGY0NDQ4M2ZmLi4zNmNlNmQ2YyAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuaAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCi1AQCAtMTkyLDcgKzE5Miwx MSBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyIHsKLSAgICAgc2lnaW5mb190IHNpZ2luZm87Ci0g ICAgIHBpZF90IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCi0gICAgIHVjb250ZXh0X3Qg Y29udGV4dDsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRl IGlzIGEgcGFydCBvZiB1Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgotKyAgICAv LyBzdGF0ZSBpcyBub3QsIHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KLSsgICAgdnN0YXRlX3QgdmVj dG9yX3N0YXRlOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCi0gICAgIC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBw YXJ0IG9mIHVzZXIgQUJJIGZvciBMaW51eCBBUk0uCi0gICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBM aW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbwotICAgICAvLyAn ZmxvYXRfc3RhdGUnIGlzIG5vdCByZXF1aXJlZC4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVy X3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXggOGQ4ODA5ZmEu LmUyZWIwMzFlIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotKysrIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNl cHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2Vw dGlvbkhhbmRsZXJUZXN0LCBQYXJhbGxlbENoaWxkQ3Jhc2hlc0RvbnRIYW5nKSB7Ci0gICB9Ci0g Ci0gICAvLyBXYWl0IGEgd2hpbGUgdW50aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQu Ci0tICB1c2xlZXAoMTAwMDAwMCk7Ci0rICB1c2xlZXAoMjAwMDAwMCk7Ci0gICAvLyBLaWxsIHRo ZSBjaGlsZCBpZiBpdCBpcyBzdGlsbCBydW5uaW5nLgotICAga2lsbChjaGlsZCwgU0lHS0lMTCk7 Ci0gCi1AQCAtNTU5LDYgKzU1OSw4IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0 cnVjdGlvbltdID0gewotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gbWZjMiB6ZXJvLElt cGwgLSB1c3VhbGx5IGlsbGVnYWwgaW4gdXNlcnNwYWNlLgotICAgMHg0OCwgMHgwMCwgMHgwMCwg MHg0OAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIDB4MDEsIDB4MDEsIDB4MDEs IDB4MDEgLy8gQ3Jhc2hlcyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1Ci0gI2Vsc2UKLSAgIC8vIFRo aXMgY3Jhc2hlcyB3aXRoIFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4KLSAgIDB4ZmYsIDB4ZmYs IDB4ZmYsIDB4ZmYKLUBAIC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJU ZXN0LCBJbnN0cnVjdGlvblBvaW50ZXJNZW1vcnlNYXhCb3VuZCkgewotIAotICAgLy8gVGhlc2Ug YXJlIGRlZmluZWQgaGVyZSBzbyB0aGUgcGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVjayB0aGUK LSAgIC8vIGRhdGEgZnJvbSB0aGUgbWluaWR1bXAgYWZ0ZXJ3YXJkcy4KLS0gIC8vIFVzZSA0ayBo ZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0rICAv LyBVc2UgdGhlIHBhZ2Ugc2l6ZSBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBz aW5nbGUgcGFnZSBldmVuCi0gICAvLyBpZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0ZWQsIGFu ZCB0aGlzIHRlc3Qgd2FudHMgdG8KLSAgIC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBt ZW1vcnkgcmFuZ2UuCi0tICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7ICAvLyBi eXRlcwotKyAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgpOyAgLy8g Ynl0ZXMKLSAgIGNvbnN0IGludCBrT2Zmc2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yoa0lsbGVn YWxJbnN0cnVjdGlvbik7Ci0gCi0gICBjb25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNy b2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIu Y2MKLWluZGV4IGZhM2MxNzEzLi42Y2U3MDllMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1w X3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCi1AQCAtMTM4LDcgKzEz OCw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICAgICAgICAgICAgICAgICAgY29uc3Qg TWljcm9kdW1wRXh0cmFJbmZvJiBtaWNyb2R1bXBfZXh0cmFfaW5mbywKLSAgICAgICAgICAgICAg ICAgICBMaW51eER1bXBlciogZHVtcGVyKQotICAgICAgIDogdWNvbnRleHRfKGNvbnRleHQgPyAm Y29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAg ICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0YXRlIDogTlVMTCks Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAg ICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVM TCksCi0gI2VuZGlmCi0gICAgICAgICBkdW1wZXJfKGR1bXBlciksCi1AQCAtMzM3LDYgKzMzOSw4 IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gIyBlbHNlCi0gIyAgZXJyb3IgIlRoaXMgbWlw cyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCi0gI2VuZGlmCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBjb25zdCBjaGFyIGtBcmNoW10gPSAicHBjNjQi OwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3Vy IHBsYXRmb3JtIHlldCIKLSAjZW5kaWYKLUBAIC00MDksNyArNDEzLDkgQEAgY2xhc3MgTWljcm9k dW1wV3JpdGVyIHsKLSAgIHZvaWQgRHVtcENQVVN0YXRlKCkgewotICAgICBSYXdDb250ZXh0Q1BV IGNwdTsKLSAgICAgbXlfbWVtc2V0KCZjcHUsIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Ci0t I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0 KCZjcHUsIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KCZjcHUsIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKLSAjZWxzZQotICAgICBV Q29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfKTsKLUBAIC02MDUs NyArNjExLDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAgIHZvaWQqIEFsbG9jKHVuc2ln bmVkIGJ5dGVzKSB7IHJldHVybiBkdW1wZXJfLT5hbGxvY2F0b3IoKS0+QWxsb2MoYnl0ZXMpOyB9 Ci0gCi0gICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87Ci0tI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNvbnN0IHZlY3Rv cl9zdGF0ZV87Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21p cHNfXykKLSAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9z dGF0ZV87Ci0gI2VuZGlmCi0gICBMaW51eER1bXBlciogZHVtcGVyXzsKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3Jp dGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJf dW5pdHRlc3QuY2MKLWluZGV4IDYzMzlhYzBjLi4yOTFhZjEwNiAxMDA2NDQKLS0tLSB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIv bWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCi1AQCAtMjc5LDEwICsyNzksMTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJU ZXN0LCBCYXNpY1dpdGhNYXBwaW5ncykgewotICAgQ3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGlu Z3MsIE1pY3JvZHVtcEV4dHJhSW5mbygpLCAmYnVmKTsKLSAgIEFTU0VSVF9UUlVFKENvbnRhaW5z TWljcm9kdW1wKGJ1ZikpOwotIAotKyAgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0g I2lmZGVmIF9fTFA2NF9fCi0tICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0tICAgICAg ICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAw MDAwMDAwMDEwMDAgIgotLSAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5 OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZh aWxhYmxlIGZvciB0aGUgZm9sbG93aW5nIHBhZ2Ugc2l6ZXMKLSsgIEFTU0VSVF9UUlVFKChwYWdl X3NpemUgPT0gNDA5NikgfHwgKHBhZ2Vfc2l6ZSA9PSA2NTUzNikpOwotKyAgaWYgKHBhZ2Vfc2l6 ZSA9PSA0MDk2KSB7IAotKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAg ICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAw MDAwMDAwMDAwMTAwMCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2 Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIH0gZWxzZSB7Ci0rICAgIEFTU0VS VF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAw MDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEwMDAwICIKLSsgICAgICAg ICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9v LnNvIikpOwotKyAgfQotICNlbHNlCi0gICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0g ICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEgMDAwMDEwMDAgIgotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBl ci5jYwotaW5kZXggNDE1MDY4OTguLmI5M2U0YWZjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLUBAIC0xMTIsNiAr MTEyLDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZGV4KHNpemVf dCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0g ICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZv LT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVpbnRlcnByZXRf Y2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JF R19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRv IHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLUBAIC0xOTcsNyArMjAwLDEwIEBAIGJvb2wg TGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkgewotICAgICAgICAgbWVtc2V0KCZp bmZvLCAwLCBzaXplb2YoVGhyZWFkSW5mbykpOwotICAgICAgICAgaW5mby50Z2lkID0gc3RhdHVz LT5wcl9wZ3JwOwotICAgICAgICAgaW5mby5wcGlkID0gc3RhdHVzLT5wcl9wcGlkOwotLSNpZiBk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IDMxOyBpKyspCi0rICAgICAgICAgICAgaW5mby5tY29udGV4dC5n cF9yZWdzW2ldID0gc3RhdHVzLT5wcl9yZWdbaV07Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykK LSAjaWYgZGVmaW5lZChfX0FORFJPSURfXykKLSAgICAgICAgIGZvciAoaW50IGkgPSBFRl9SMDsg aSA8PSBFRl9SMzE7IGkrKykKLSAgICAgICAgICAgaW5mby5tY29udGV4dC5ncmVnc1tpIC0gRUZf UjBdID0gc3RhdHVzLT5wcl9yZWdbaV07Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5j YyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9kdW1wZXIuY2MKLWluZGV4IDExMTIwMzViLi44NTIzZGFkNiAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MKLUBA IC03NjUsNyArNzY1LDkgQEAgYm9vbCBMaW51eER1bXBlcjo6R2V0U3RhY2tJbmZvKGNvbnN0IHZv aWQqKiBzdGFjaywgc2l6ZV90KiBzdGFja19sZW4sCi0gICAgICAgcmVpbnRlcnByZXRfY2FzdDx1 aW50OF90Kj4oaW50X3N0YWNrX3BvaW50ZXIgJiB+KHBhZ2Vfc2l6ZSAtIDEpKTsKLSAKLSAgIC8v IFRoZSBudW1iZXIgb2YgYnl0ZXMgb2Ygc3RhY2sgd2hpY2ggd2UgdHJ5IHRvIGNhcHR1cmUuCi0t ICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2FwdHVyZSA9IDMyICogMTAyNDsKLSsg IC8vIFRoaXMgbm93IGRlcGVuZHMgb24gcGFnZV9zaXplIHRvIGF2b2lkIG1pc3NpbmcgZGF0YQot KyAgLy8gb24gc3lzdGVtcyB3aXRoIGxhcmdlciBwYWdlIHNpemVzLgotKyAgc3RhdGljIGNvbnN0 IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSA4ICogcGFnZV9zaXplOwotIAotICAgY29uc3Qg TWFwcGluZ0luZm8qIG1hcHBpbmcgPSBGaW5kTWFwcGluZyhzdGFja19wb2ludGVyKTsKLSAgIGlm ICghbWFwcGluZykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmggdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyLmgKLWluZGV4IGY0YTc1ZDkwLi4wMjA5ODFmNSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9kdW1wZXIuaAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyArNjMsOCBAQCBu YW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBT X1NJTSA9PSBfQUJJTzMyKQotIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0g I2VsaWYgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAg ICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQotKyAgICAgKGRl ZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0rICAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsK LSAjZW5kaWYKLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBl ci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzYWQ0OGU1 MC4uMTY4OGMzNjUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBl ci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLUBAIC01MSw2 ICs1MSw4IEBACi0gI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyY3giCi0gI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKLSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgIiQxIgotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgotICNlbHNl Ci0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0u Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlci5jYwotaW5kZXggZTNkZGI4MWEuLmZhMjg1NzVlIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2Vf ZHVtcGVyLmNjCi1AQCAtMTQ5LDE5ICsxNDksMjcgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6 Q29weUZyb21Qcm9jZXNzKHZvaWQqIGRlc3QsIHBpZF90IGNoaWxkLAotICAgcmV0dXJuIHRydWU7 Ci0gfQotIAotLWJvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJ bmZvKiBpbmZvLCBwaWRfdCB0aWQpCi0tewotK2Jvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRS ZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZvLCBwaWRfdCB0aWQpIHsKLSAjaWZkZWYgUFRSQUNF X0dFVFJFR1NFVAotICAgc3RydWN0IGlvdmVjIGlvOwotICAgaW5mby0+R2V0R2VuZXJhbFB1cnBv c2VSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0tICBpZiAoc3lzX3B0cmFj ZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykg PT0gLTEpIHsKLSsgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRf UFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0K LSAKLSAgIGluZm8tPkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8u aW92X2xlbik7Ci0tICBpZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lk KilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSsgIGlmIChwdHJhY2UoUFRSQUNF X0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7 Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLSsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyAgLy8gR3JhYiB0aGUgdmVjdG9yIHJlZ2lzdGVycyBvbiBQUEM2NCB0b28KLSsgIGluZm8t PkdldFZlY3RvclJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLSsgIGlmIChw dHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFBDX1ZNWCwgKHZvaWQqKSZp bykgPT0gLTEpIHsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyNlbmRpZiAvLyBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rCi0gICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAgcmV0dXJuIGZh bHNlOwotQEAgLTI5OCw2ICszMDYsOSBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJl YWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgsIFRocmVhZEluZm8qIGluZm8pIHsKLSAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQotICAgc3RhY2tfcG9pbnRlciA9Ci0gICAgICAgcmVpbnRlcnByZXRf Y2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19T UF0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0YWNrX3BvaW50ZXIgPQot KyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdwX3JlZ3Nb TURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhh c24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRy YWNlX2R1bXBlcl91bml0dGVzdC5jYwotaW5kZXggZWE2YjlhMTIuLjliMzE4ZmUwIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1AQCAtNDYyLDYgKzQ2Miw5IEBAIFRFU1QoTGlu dXhQdHJhY2VEdW1wZXJUZXN0LCBWZXJpZnlTdGFja1JlYWRXaXRoTXVsdGlwbGVUaHJlYWRzKSB7 Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0 aW9uID0KLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250 ZXh0LmdyZWdzWzFdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIHBpZF90 KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9Ci0rICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90 Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKLSAjZWxzZQotICNlcnJvciBUaGlz IHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotQEAg LTU1OSw2ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5pdGl6ZVN0 YWNrQ29weSkgewotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJlZ3MucmN4 OwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhy ZWFkX2luZm8ubWNvbnRleHQuZ3JlZ3NbMV07Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdwX3JlZ3Nb OF07Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhp cyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNj IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggZjhjZGYyYTEuLmNiODA4YzE1IDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRl ci5jYwotQEAgLTEzNiw3ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAg OiBmZF8obWluaWR1bXBfZmQpLAotICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0aCksCi0gICAg ICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250 ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAm Y29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8o ZHVtcGVyKSwKLUBAIC00NjgsNyArNDcwLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAg ICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKLSAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg ICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0j aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250 ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgVUNvbnRleHRS ZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8p OwotICNlbHNlCi0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1Lmdl dCgpLCB1Y29udGV4dF8pOwotQEAgLTg5Nyw3ICs5MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRl ciB7Ci0gICAgIGRpcmVudC0+bG9jYXRpb24ucnZhID0gMDsKLSAgIH0KLSAKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGJvb2wgV3JpdGVDUFVJbmZv cm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19pbmZvKSB7Ci0gICAgIGNoYXIgdmVuZG9yX2lk W3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07 Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsK LUBAIC05MTcsNyArOTIxLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotIAotICAgICAvLyBw cm9jZXNzb3JfYXJjaGl0ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0 Ci0gICAgIHN5c19pbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlID0KLS0jaWYgZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgTURfQ1BVX0FS Q0hJVEVDVFVSRV9QUEM2NDsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICMgaWYgX01JUFNf U0lNID09IF9BQklPMzIKLSAgICAgICAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfTUlQUzsKLSAjIGVs aWYgX01JUFNfU0lNID09IF9BQkk2NAotQEAgLTEzMzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlk dW1wV3JpdGVyIHsKLSAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3 aGVyZSB0aGUgbWluaWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KLSAKLSAgIGNvbnN0IHVjb250ZXh0 X3QqIGNvbnN0IHVjb250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKLS0j aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCog Y29uc3QgdmVjdG9yX3N0YXRlXzsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQotICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNv bnN0IGZsb2F0X3N0YXRlXzsgIC8vIGRpdHRvCi0gI2VuZGlmCi0gICBMaW51eER1bXBlciogZHVt cGVyXzsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmggdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyLmgKLWluZGV4IGUzYjBiMTZkLi5jY2Q4YWEwYSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXIuaAotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi1AQCAtNDgsNiArNDgs OCBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyOwotIAotICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9f KQotIHR5cGVkZWYgc3RydWN0IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRlZiB2cnJlZ3NldF90IHZzdGF0ZV90OwotICNlbGlm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBz dGQ6OnJlbW92ZV9wb2ludGVyPGZwcmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKLSAjZW5kaWYK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlcl91bml0dGVzdC5jYwotaW5kZXggMzAxN2E0OWEuLjM2NGVmZDc5IDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlcl91bml0dGVzdC5jYwotQEAgLTcxNSw2ICs3MTUsOSBAQCBURVNUKE1pbmlkdW1wV3Jp dGVyVGVzdCwgSW52YWxpZFN0YWNrUG9pbnRlcikgewotICNlbGlmIGRlZmluZWQoX19taXBzX18p Ci0gICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JF R19TUF0gPQotICAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9D T05URVhUX1BQQzY0X1JFR19TUF0gPQotKyAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSAj ZWxzZQotICMgZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MK LWluZGV4IDRlOTM4MjY5Li5mMGZmMTVkOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotKysrIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBl ZF9maWxlLmNjCi1AQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChj b25zdCBjaGFyKiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgIChkZWZpbmVkKF9f bWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQotLQotKyAgIChkZWZpbmVkKF9fbWlwc19f KSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBz dHJ1Y3Qga2VybmVsX3N0YXQgc3Q7Ci0gICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8 IHN0LnN0X3NpemUgPCAwKSB7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3Qu Y2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlf bWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLWluZGV4IGZhZDU5ZjQwLi42MTY0OTZkNiAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9y eV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1AQCAt MTc2LDkgKzE3NiwxMCBAQCBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIFJlbWFwQWZ0ZXJN YXApIHsKLSBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIE1hcFdpdGhPZmZzZXQpIHsKLSAg IC8vIFB1dCBtb3JlIGRhdGEgaW4gdGhlIHRlc3QgZmlsZSB0aGlzIHRpbWUuIE9mZnNldHMgY2Fu IG9ubHkgYmUKLSAgIC8vIGRvbmUgb24gcGFnZSBib3VuZGFyaWVzLCBzbyB3ZSBuZWVkIGEgdHdv IHBhZ2UgZmlsZSB0byB0ZXN0IHRoaXMuCi0tICBjb25zdCBpbnQgcGFnZV9zaXplID0gNDA5NjsK LS0gIGNoYXIgZGF0YTFbMiAqIHBhZ2Vfc2l6ZV07Ci0tICBzaXplX3QgZGF0YTFfc2l6ZSA9IHNp emVvZihkYXRhMSk7Ci0rICBjb25zdCBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSsg IGNoYXIgKmRhdGExID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYygyICogcGFnZV9zaXplKSk7 Ci0rICBFWFBFQ1RfVFJVRShkYXRhMSAhPSBOVUxMKTsKLSsgIHNpemVfdCBkYXRhMV9zaXplID0g KDIgKiBwYWdlX3NpemUpOwotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhMV9zaXplOyAr K2kpIHsKLSAgICAgZGF0YTFbaV0gPSBpICYgMHg3ZjsKLSAgIH0KLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0 ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2Fs bG9jYXRvcl91bml0dGVzdC5jYwotaW5kZXggNDNjODYzMTQuLjI3MzI1YjgxIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRv cl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21t b24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotQEAgLTU3LDggKzU3LDkgQEAKLSAKLSAg IEVYUEVDVF9FUSgwVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIHVpbnQ4X3Qq IHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoMTAwMDApKTsK LSsgIHVpbnQ2NF90IGV4cGVjdGVkX3BhZ2VzID0gMSArICgoMTAwMDAgLSAxKSAvIGdldHBhZ2Vz aXplKCkpOwotICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7Ci0tICBFWFBFQ1RfRVEoM1UsIGFs bG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0rICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGFnZXMs IGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0gICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBp IDwgMTA7ICsraSkgewotICAgICB1aW50OF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90 Kj4oYWxsb2NhdG9yLkFsbG9jKGkpKTsKLSAgICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7Ci1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhw bG9pdGFiaWxpdHlfbGludXguY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3By b2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotaW5kZXggY2NjOWYxNDUuLmRlYmFlZDRk IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3Iv ZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1AQCAtMjAyLDEyICsyMDIs MTQgQEAgYm9vbCBFeHBsb2l0YWJpbGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdhbFdyaXRlKHVpbnQ2 NF90IGluc3RydWN0aW9uX3B0cikgewotICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBzZXQg YXJjaGl0ZWN0dXJlIHZhcmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZwotICAgLy8gaW4gb2Jq ZHVtcC4KLSAgIHN3aXRjaCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7Ci0rI2lmIGRlZmlu ZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQotICAgICBjYXNlIE1EX0NPTlRFWFRfWDg2 OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2IjsKLSAgICAgICBicmVhazsKLSAgICAgY2Fz ZSBNRF9DT05URVhUX0FNRDY0OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02NCI7 Ci0gICAgICAgYnJlYWs7Ci0rI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLy8gVW5zdXBw b3J0ZWQgYXJjaGl0ZWN0dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5vdAot ICAgICAgIC8vIHN1cHBvcnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBBUk0u Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3Iv ZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotaW5kZXggNTI4ZWU1ZjIu LjcyNzY0ZDZjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9w cm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi1A QCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmlsaXR5Rm9yKGNvbnN0IHN0cmluZyYgZmlsZW5h bWUpIHsKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5l KSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4 Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVk KF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFr cGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9y KCJhc2NpaV9yZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVY UExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTM2LDkgKzEzOCwxMiBAQCBURVNUKEV4cGxvaXRhYmls aXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0 eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVf YnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0 eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAiKSk7Ci0rI2VuZGlmCi0gfQotIAotIFRFU1Qo RXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5n IHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUu Ci0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQotICAgQVNTRVJUX0VR KGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJTkcsCi0gICAgICAgICAg ICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251bGxfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NF UlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE3MSw3ICsx NzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X2V4ZWN1dGFibGVfaGVhcC5kbXAiKSk7 Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9qbXBfdG9fbW9kdWxlX25vdF9leGVf cmVnaW9uLmRtcCIpKTsKLS0jaWZuZGVmIF9XSU4zMgotKyNlbmRpZgotKyNpZiAhZGVmaW5lZChf V0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0gICBBU1NF UlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAgICAgICAgICAg IEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19ub253cml0YWJsZV9tb2R1bGUuZG1w IikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwK LUBAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4 RW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3Rv X291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJl YWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAotICAgICAgICAgICAgIEV4cGxvaXRh YmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRlcl80ay5kbXAiKSk7Ci0tI2VuZGlmICAvLyBf V0lOMzIKLSsjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKCFkZWZpbmVkKF9faTM4Nikg JiYgIWRlZmluZWQoX194ODZfNjQpKQotIH0KLSAKLS0jaWZuZGVmIF9XSU4zMgotKyNpZiAhZGVm aW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0g VEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBEaXNhc3NlbWJsZUJ5dGVzVGVzdCkg ewotICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmlsaXR5TGludXhUZXN0OjpEaXNhc3NlbWJsZUJ5 dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7Ci0gICB1aW50OF90IGJ5dGVzWzZdID0gezB4YzcsIDB4 MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKLUBAIC0zMDEsNiArMzA3LDcgQEAgVEVTVChFeHBsb2l0 YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdWxhdGVBZGRyZXNzVGVzdCkgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJndyaXRlX2FkZHJlc3MpKTsKLSB9Ci0tI2VuZGlmICAvLyBfV0lOMzIKLSsjZW5kaWYgIC8v ICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0 KSkKLSsKLSAKLSB9ICAvLyBuYW1lc3BhY2UKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlk dW1wLTItY29yZS5jYwotaW5kZXggYTYwYmUzMjMuLjM1YjExYjZkIDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1w LTItY29yZS5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9s aW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotQEAgLTc3LDYgKzc3LDggQEAKLSAgICNk ZWZpbmUgRUxGX0FSQ0ggIEVNX01JUFMKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAg I2RlZmluZSBFTEZfQVJDSCAgRU1fQUFSQ0g2NAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX1BQQzY0Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmlu ZWQoX19hcm1fXykKLUBAIC04Nyw2ICs4OSw4IEBAIHR5cGVkZWYgdXNlcl9yZWdzIHVzZXJfcmVn c19zdHJ1Y3Q7Ci0gI2VsaWYgZGVmaW5lZCAoX19taXBzX18pCi0gLy8gVGhpcyBmaWxlLWxvY2Fs IHR5cGVkZWYgc2ltcGxpZmllcyB0aGUgc291cmNlIGNvZGUuCi0gdHlwZWRlZiBncmVnc2V0X3Qg dXNlcl9yZWdzX3N0cnVjdDsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRl ZiBzdHJ1Y3QgcHRfcmVncyB1c2VyX3JlZ3Nfc3RydWN0OwotICNlbmRpZgotIAotIHVzaW5nIGdv b2dsZV9icmVha3BhZDo6TURUeXBlSGVscGVyOwotQEAgLTMyMSw2ICszMjUsOSBAQCBzdHJ1Y3Qg Q3Jhc2hlZFByb2Nlc3MgewotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAg ICB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci0gI2VuZGlmCi0gICAgIHVpbnRw dHJfdCBzdGFja19hZGRyOwotICAgICBjb25zdCB1aW50OF90KiBzdGFjazsKLUBAIC01MzUsNiAr NTQyLDM4IEBAIFBhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRo cmVhZCwKLSAgIHRocmVhZC0+bWNvbnRleHQuZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUu ZmlyOwotICNlbmRpZgotIH0KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rc3RhdGlj IHZvaWQKLStQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJl YWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFu Z2UpIHsKLSsgIGNvbnN0IE1EUmF3Q29udGV4dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0 YTxNRFJhd0NvbnRleHRQUEM2ND4oMCk7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NP TlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tpXSA9IHJhd3JlZ3MtPmdwcltpXTsKLSsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQ VF9MTktdID0gcmF3cmVncy0+bHI7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQ XSA9IHJhd3JlZ3MtPnNycjA7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9 IHJhd3JlZ3MtPnNycjE7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJh d3JlZ3MtPmNyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdz LT54ZXI7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0 cjsKLSsgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7 Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9D T1VOVDsgaSsrKQotKyAgICAgIHRocmVhZC0+bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3Mt PmZsb2F0X3NhdmUuZnByZWdzW2ldOwotKwotKyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05G UFJFRy0xXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnBzY3I7Ci0rCi0rICBmb3IgKGludCBpID0g MDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKSB7Ci0rICAgICAgdGhy ZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZl LnNhdmVfdnJbaV0uaGlnaCA+PiAzMjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+ dnJyZWdzW2ldWzFdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOwotKyAg ICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0 b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdyA+PiAzMjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZf cmVncy0+dnJyZWdzW2ldWzNdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7 Ci0rICB9Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSBy YXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IubG93ICYgMHhGRkZGRkZGRjsKLSt9Ci0rCi0g I2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0IgotICNlbmRpZgotQEAgLTYyMyw2ICs2NjIsMTIgQEAgUGFyc2VTeXN0ZW1JbmZv KGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsIENyYXNoZWRQcm9jZXNzKiBjcmFzaGluZm8sCi0gIyBl bHNlCi0gIyAgZXJyb3IgIlRoaXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQg KG4zMikiCi0gIyBlbmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChz eXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBD NjQpIHsKLSsgICAgZnByaW50ZihzdGRlcnIsCi0rICAgICAgICAgICAgIlRoaXMgdmVyc2lvbiBv ZiBtaW5pZHVtcC0yLWNvcmUgb25seSBzdXBwb3J0cyBQUEM2NC5cbiIpOwotKyAgICBleGl0KDEp OwotKyAgfQotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldCIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L0NPTlRSSUJVVE9SUwotaW5kZXggODcyNGI3ZjMuLjhlMjk0MjRlIDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotKysrIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFyayBNZW50 b3ZhaSA8bWFya0BjaHJvbWl1bS5vcmc+Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0u b3JnPgotIFNjb3R0IEdyYWhhbSA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVhIFBlcmF6 YSA8anBlcmF6YUBjaHJvbWl1bS5vcmc+Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBhbmFzdGFz LmlvPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGlu dXgvc3lzL3VzZXIuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgv c3lzL3VzZXIuaAotaW5kZXggNmVkNzdhOTguLjFmZDgzNDY5IDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi0rKysgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLUBAIC0xNSw2 ICsxNSw3IEBACi0gI2lmbmRlZiBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAj ZGVmaW5lIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotIAotKyNpbmNsdWRlIDxj c3RkZGVmPgotICNpbmNsdWRlX25leHQgPHN5cy91c2VyLmg+Ci0gCi0gI2luY2x1ZGUgPGZlYXR1 cmVzLmg+Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1w L21pbmlkdW1wX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0LmgKLWluZGV4IDNhM2U2MDNjLi4zMTE4ZDllOSAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0LmgKLUBAIC01OTIsNiArNTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRleHRNSVBT NjQgewotICAgdWludDY0X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBwcGM2NC1zcGVjaWZp YyBmbGFncyBmb3IgTWluaWR1bXBQUEM2NDo6Y29udGV4dF9mbGFncwotKy8vISBCYXNlZCBvbiBt aW5pZHVtcF9jcHVfcHBjNjQuaCBmcm9tIGJyZWFrcGFkCi0rZW51bSBNaW5pZHVtcENvbnRleHRQ UEM2NEZsYWdzIDogdWludDMyX3QgewotKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRoZSBjb250 ZXh0IGFzIFBQQzY0LgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAwMCwKLSsK LSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1cnBvc2Ug cmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBuaXBgLCBg bXNyYCwgYGxyYCwgZXRjLiBhcmUgdmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNl ID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwMSwKLSsKLSsgIC8vISBcYnJpZWYg SW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICAv LyEKLSsgIC8vISBSZWdpc3RlcnMgYGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxpZC4KLSsg IGtNaW5pZHVtcENvbnRleHRQUEM2NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwg MHgwMDAwMDAwOCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBB bHRpdmVjL1ZNWCByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHYwYC1gdjMx YCwgYHZzY3JgLCBgdnJzYXZlYC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvciA9IGtN aW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMjAsCi0rCi0rICAvLyEgXGJyaWVmIEluZGlj YXRlcyB0aGUgdmFsaWRpdHkgb2YgYWxsIHJlZ2lzdGVycwotKyAga01pbmlkdW1wQ29udGV4dFBQ QzY0QWxsID0ga01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSAgICAgfAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCi0rfTsKLSsK LSsvLyEgXGJyaWVmIEEgUFBDNjQgQ1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlkdW1wIGZp bGUuCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQuCi0r c3RydWN0IE1pbmlkdW1wQ29udGV4dFBQQzY0IHsKLSsgIHVpbnQ2NF90IGNvbnRleHRfZmxhZ3M7 Ci0rCi0rICAvLyEgXGJyaWVmIEdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICB1aW50NjRf dCBuaXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2 NF90IGNjcjsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90 IGN0cjsKLSsKLSsgIC8vISBcYnJpZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgotKyAgZG91 YmxlIGZwcmVnc1szMl07Ci0rCi0rICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0ZXIuCi0r ICBkb3VibGUgZnBzY3I7Ci0rCi0rICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3RvciByZWdp c3RlcnMuCi0rICBzdHJ1Y3QgewotKyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lzdGVycyBh cmUgMTI4Yml0cy4KLSsgICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgICB1 aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rCi0rICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGlu Y2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgotKyAgICAgIHVpbnQzMl90IHNhdmVf cGFkNVs0XTsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KLSsgICAgICB1 aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVk ZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ2 WzddOwotKyAgfSB2cmVnczsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAot ICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXwotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5p ZHVtcF9jb250ZXh0X3dyaXRlci5jYwotaW5kZXggZDdlNTNhNDkuLmQ4OWViOWUwIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHRfd3JpdGVyLmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLUBAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlkdW1w Q29udGV4dFdyaXRlcjo6Q3JlYXRlRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHQqIGNvbnRl eHRfc25hcHNob3QpIHsKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotKyAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVQUEM2NDogewotKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE1p bmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWlu aWR1bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQotKyAgICAgICAgICAtPklu aXRhbGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Ci0rICAgICAgYnJl YWs7Ci0rICAgIH0KLSsKLSAgICAgZGVmYXVsdDogewotICAgICAgIExPRyhFUlJPUikgPDwgInVu a25vd24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgotICAgICAgICAgICAgICAgICAgPDwgY29udGV4 dF9zbmFwc2hvdC0+YXJjaGl0ZWN0dXJlOwotQEAgLTQ1Myw0ICs0NjAsNDcgQEAgc2l6ZV90IE1p bmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0gICByZXR1 cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSB9Ci0gCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6 Ok1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkKLSsgIDogTWluaWR1bXBDb250ZXh0V3JpdGVy KCksIGNvbnRleHRfKCkgewotKyAgICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1w Q29udGV4dFBQQzY0OwotK30KLSsKLStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6fk1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgPSBkZWZhdWx0OwotKwotK3ZvaWQgTWluaWR1bXBDb250 ZXh0UFBDNjRXcml0ZXI6OkluaXRhbGl6ZUZyb21TbmFwc2hvdCgKLSsgICAgY29uc3QgQ1BVQ29u dGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0 YXRlTXV0YWJsZSk7Ci0rICBEQ0hFQ0tfRVEoY29udGV4dF8uY29udGV4dF9mbGFncywga01pbmlk dW1wQ29udGV4dFBQQzY0KTsKLSsKLSsgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1 bXBDb250ZXh0UFBDNjRBbGw7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8ucmVncywgY29udGV4dF9z bmFwc2hvdC0+cmVncywgc2l6ZW9mKGNvbnRleHRfLnJlZ3MpKTsKLSsgIGNvbnRleHRfLm5pcCA9 IGNvbnRleHRfc25hcHNob3QtPm5pcDsKLSsgIGNvbnRleHRfLm1zciA9IGNvbnRleHRfc25hcHNo b3QtPm1zcjsKLSsgIGNvbnRleHRfLmNjciA9IGNvbnRleHRfc25hcHNob3QtPmNjcjsKLSsgIGNv bnRleHRfLnhlciA9IGNvbnRleHRfc25hcHNob3QtPnhlcjsKLSsgIGNvbnRleHRfLmxuayA9IGNv bnRleHRfc25hcHNob3QtPmxuazsKLSsgIGNvbnRleHRfLmN0ciA9IGNvbnRleHRfc25hcHNob3Qt PmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5mcHJlZ3MsIGNvbnRleHRfc25hcHNob3QtPmZw cmVncywgc2l6ZW9mKGNvbnRleHRfLmZwcmVncykpOwotKyAgY29udGV4dF8uZnBzY3IgPSBjb250 ZXh0X3NuYXBzaG90LT5mcHNjcjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy52cmVncy5zYXZlX3Zy LCBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZyLAotKyAgICAgICAgIHNpemVvZihjb250 ZXh0Xy52cmVncy5zYXZlX3ZyKSk7Ci0rICBtZW1jcHkoJmNvbnRleHRfLnZyZWdzLnNhdmVfdnNj ciwgJmNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnNjciwKLSsgICAgICAgICBzaXplb2Yo Y29udGV4dF8udnJlZ3Muc2F2ZV92c2NyKSk7Ci0rICBjb250ZXh0Xy52cmVncy5zYXZlX3Zyc2F2 ZSA9IGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnJzYXZlOwotK30KLSsKLStib29sIE1p bmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpXcml0ZU9iamVjdCgKLSsgICAgRmlsZVdyaXRlcklu dGVyZmFjZSogZmlsZV93cml0ZXIpIHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVXcml0 YWJsZSk7Ci0rICByZXR1cm4gZmlsZV93cml0ZXItPldyaXRlKCZjb250ZXh0Xywgc2l6ZW9mKGNv bnRleHRfKSk7Ci0rfQotKwotK3NpemVfdCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6Q29u dGV4dFNpemUoKSBjb25zdCB7Ci0rICBEQ0hFQ0tfR0Uoc3RhdGUoKSwga1N0YXRlRnJvemVuKTsK LSsgIHJldHVybiBzaXplb2YoY29udGV4dF8pOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jh c2hwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfY29udGV4dF93cml0ZXIuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi1pbmRleCBkNGFiOTM2ZS4uMWQyMmZj NTkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKLUBAIC0zMTUsNiArMzE1LDQ1IEBA IGNsYXNzIE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVt cENvbnRleHRXcml0ZXIgewotICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29u dGV4dE1JUFM2NFdyaXRlcik7Ci0gfTsKLSAKLStjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgewotKyBwdWJsaWM6Ci0r ICBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpOwotKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyKCkgb3ZlcnJpZGU7Ci0rCi0rICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlk dW1wQ29udGV4dFBQQzY0IGJhc2VkIG9uIFxhIGNvbnRleHRfc25hcHNob3QuCi0rICAvLyEKLSsg IC8vISBccGFyYW1baW5dIGNvbnRleHRfc25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8g dXNlIGFzIHNvdXJjZSBkYXRhLgotKyAgLy8hCi0rICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0 ZU11dGFibGUuIE5vIG11dGF0aW9uIG9mIGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKLSsg IC8vISAgICAgY2FsbGluZyB0aGlzIG1ldGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNl c3NhcnkgdG8gYWx0ZXIKLSsgIC8vISAgICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBt ZXRob2QuCi0rICB2b2lkIEluaXRhbGl6ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBD NjQqIGNvbnRleHRfc25hcHNob3QpOwotKwotKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRl ciB0byB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCi0rICAvLyEg ICAgIHdyaXRlLgotKyAgLy8hCi0rICAvLyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24t YGNvbnN0YCBwb2ludGVyIHRvIHRoaXMgb2JqZWN04oCZcyBwcml2YXRlCi0rICAvLyEgICAgIGRh dGEgc28gdGhhdCBhIGNhbGxlciBjYW4gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRp cmVjdGx5LgotKyAgLy8hICAgICBUaGlzIGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVy IGludGVyZmFjZXMgdG8gZWFjaCBmaWVsZCBpbiB0aGUKLSsgIC8vISAgICAgY29udGV4dCBzdHJ1 Y3R1cmUgd291bGQgYmUgdW53aWVsZHkgYW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtl bgotKyAgLy8hICAgICB0byBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5 LiBUaGUgY29udGV4dCBzdHJ1Y3R1cmUKLSsgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVk IHdoaWxlIHRoaXMgb2JqZWN0IGlzIGluIHRoZSAja1N0YXRlTXV0YWJsZQotKyAgLy8hICAgICBz dGF0ZS4KLSsgIE1pbmlkdW1wQ29udGV4dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRl eHRfOyB9Ci0rCi0rIHByb3RlY3RlZDoKLSsgIC8vIE1pbmlkdW1wV3JpdGFibGU6Ci0rICBib29s IFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsK LSsKLSsgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRlcjoKLSsgIHNpemVfdCBDb250ZXh0U2l6ZSgp IGNvbnN0IG92ZXJyaWRlOwotKwotKyBwcml2YXRlOgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjQg Y29udGV4dF87Ci0rCi0rICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0 UFBDNjRXcml0ZXIpOwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2Vu ZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXwotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlcl90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlk dW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKLWluZGV4IDMyMTZhOTA2Li5hOWZj YmU5ZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotQEAgLTIx Myw2ICsyMTMsMjEgQEAgVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIE1JUFM2NF9Gcm9tU25h cHNob3QpIHsKLSAgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRNSVBTNjQsIGtT ZWVkKTsKLSB9Ci0gCi0rVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X1plcm9zKSB7 Ci0rICBFbXB0eUNvbnRleHRUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVt cENvbnRleHRQUEM2ND4oCi0rICAgIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSt9Ci0r Ci0rVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X0Zyb21TbmFwc2hvdCkgewotKyAg Y29uc3RleHByIHVpbnQzMl90IGtTZWVkID0gNjQ7Ci0rICBDUFVDb250ZXh0UFBDNjQgY29udGV4 dF9wcGM2NDsKLSsgIENQVUNvbnRleHQgY29udGV4dDsKLSsgIGNvbnRleHQucHBjNjQgPSAmY29u dGV4dF9wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoJmNvbnRleHQsIGtTZWVk KTsKLSsgIEZyb21TbmFwc2hvdFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlk dW1wQ29udGV4dFBQQzY0PigKLSsgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRQ UEM2NCwga1NlZWQpOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UKLSB9ICAvLyBuYW1lc3BhY2Ug dGVzdAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193 cml0ZXIuY2MKLWluZGV4IGExMzQwNzYwLi45NWRjOTI1MiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNj Ci0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlz Y19pbmZvX3dyaXRlci5jYwotQEAgLTEyNiw2ICsxMjYsOCBAQCBzdGQ6OnN0cmluZyBNaW5pZHVt cE1pc2NJbmZvRGVidWdCdWlsZFN0cmluZygpIHsKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBr Q1BVW10gPSAibWlwcyI7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKLSAgIHN0 YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwczY0IjsKLSsjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0KQotKyAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJwcGM2NCI7 Ci0gI2Vsc2UKLSAjZXJyb3IgZGVmaW5lIGtDUFUgZm9yIHRoaXMgQ1BVCi0gI2VuZGlmCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVt b3J5LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVt b3J5LmNjCi1pbmRleCBhNTE2MjZjYy4uNjFlMGIyMGEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLSsrKyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotQEAgLTEx MSw2ICsxMTEsMTEgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoY29u c3QgQ1BVQ29udGV4dCYgY29udGV4dCwKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6 c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgewotICAgICBNYXliZUNhcHR1cmVNZW1v cnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKLSAgIH0KLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIE1heWJlQ2FwdHVyZU1lbW9yeUFy b3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKLSsgIGZvciAoc2l6ZV90IGkgPSAw OyBpIDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7Ci0rICAgIE1heWJl Q2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7Ci0r ICB9Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotaW5kZXgg ODExYTcyMDkuLmY0ZjgzOTgxIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotQEAgLTQzLDcgKzQzLDEwIEBA IGVudW0gQ1BVQXJjaGl0ZWN0dXJlIHsKLSAgIGtDUFVBcmNoaXRlY3R1cmVNSVBTRUwsCi0gCi0g ICAvLyEgXGJyaWVmIDY0LWJpdCBNSVBTRUwuCi0tICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwK LSsgIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTCwKLSsKLSsgIC8vISBcYnJpZWYgNjQtYml0IFBQ QzY0LgotKyAga0NQVUFyY2hpdGVjdHVyZVBQQzY0Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2Ug Y3Jhc2hwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2NvbnRleHQuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuY2MKLWluZGV4IDZmYjhkN2U3Li5iMDFmN2NhZCAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotKysrIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1AQCAt MTY5LDYgKzE2OSw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6Okluc3RydWN0aW9uUG9pbnRlcigp IGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5wYzsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0 dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5wYzsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0 ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5uaXA7Ci0gICAgIGRlZmF1bHQ6Ci0g ICAgICAgTk9UUkVBQ0hFRCgpOwotICAgICAgIHJldHVybiB+MHVsbDsKLUBAIC0xODUsNiArMTg3 LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6U3RhY2tQb2ludGVyKCkgY29uc3QgewotICAgICAg IHJldHVybiBhcm0tPnNwOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAg ICByZXR1cm4gYXJtNjQtPnNwOwotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSsg ICAgICByZXR1cm4gcHBjNjQtPnJlZ3NbMV07Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgTk9UUkVB Q0hFRCgpOwotICAgICAgIHJldHVybiB+MHVsbDsKLUBAIC0xOTYsNiArMjAwLDcgQEAgYm9vbCBD UFVDb250ZXh0OjpJczY0Qml0KCkgY29uc3QgewotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVY ODZfNjQ6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVNSVBTNjRFTDoKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0g ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4NjoKLSAgICAg Y2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNOgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLWluZGV4IGZiMjNjNDY3Li5lZWJlZGU2MyAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29u dGV4dC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2Nv bnRleHQuaAotQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBTNjQgewot ICAgdWludDY0X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBBIGNvbnRleHQgc3RydWN0dXJl IGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KLStzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0IHsKLSsg IHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwot KyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAg dWludDY0X3QgY3RyOwotKyAgZG91YmxlIGZwcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0r ICBzdHJ1Y3QgewotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgdWludDEy OF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsgIH0gdnJl Z3M7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBj YXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCi0gLy8hICAgICBDUFUgYXJjaGl0 ZWN0dXJlLgotIHN0cnVjdCBDUFVDb250ZXh0IHsKLUBAIC0zODIsNiArNDAwLDcgQEAgc3RydWN0 IENQVUNvbnRleHQgewotICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OwotICAgICBDUFVDb250 ZXh0TUlQUyogbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7Ci0rICAgIENQ VUNvbnRleHRQUEM2NCogcHBjNjQ7Ci0gICB9OwotIH07Ci0gCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4Lmgg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRf bGludXguaAotaW5kZXggOWY0NmE0ODkuLmFhNjc3YzRlIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKLSsr KyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4 dF9saW51eC5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfU05BUFNIT1Rf TElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KLSAjZGVmaW5lIENSQVNIUEFEX1NOQVBTSE9UX0xJ TlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gCi0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2luY2x1 ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9jcHVfY29udGV4 dC5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIgotQEAgLTE3 NCw2ICsxNzUsNzggQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCi0gCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VOCi0gCi0rI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCi0rCi0rLy8hIFxicmllZiBJbml0YWxpemVz IGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0Ci0rLy8hICAg ICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgotKy8vIQotKy8vISBccGFyYW1baW5dIHRocmVhZF9jb250 ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gZmxvYXRfY29u dGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gdmVjdG9yX2Nv bnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KLSsvLyEgXHBhcmFtW291dF0gY29udGV4 dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCi0rdGVtcGxhdGUg PHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCi0rICAg IGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3Qg RmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgVmVjdG9yQ29u dGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAotKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNv bnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29u dGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJl YWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0r ICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0 aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7 Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29u dGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVn cykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9y ICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZl X3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsw XSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAg ICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAg ICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRl eHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4 dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZz Y3Jfd29yZH07Ci0rfQotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0 aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBTaWduYWxUaHJlYWRDb250ZXh0NjQg JnRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2NCAmZmxvYXRf Y29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0b3JfY29udGV4 dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBt ZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQt PnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsKLSsgIGNvbnRl eHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQtPmNjciA9IHRocmVhZF9j b250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0LnhlcjsKLSsgIGNv bnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRleHQtPmN0ciA9IHRocmVh ZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRl eHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBm bG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkr KykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVj dG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1 aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotKwotKyNlbmRp ZgotKwotIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBh ZAotIAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi1pbmRleCBiZTIyYzkw My4uYzVkZjIzZDEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi1A QCAtMTU5LDkgKzE1OSwxMSBAQCB2b2lkIFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rp b24qIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgICAgY29uc3QgYm9vbCBpc192ZHNvX21hcHBpbmcg PQotICAgICAgICAgICAgICAgZGV2aWNlID09IDAgJiYgaW5vZGUgPT0gMCAmJiBtYXBwaW5nX25h bWUgPT0gIlt2ZHNvXSI7Ci0gICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4 W10gPSAibGludXgtdmRzby5zby4iOwotKyAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIg a1ByZWZpeDY0W10gPSAibGludXgtdmRzbzY0LnNvLiI7Ci0gICAgICAgICAgIHJldHVybiBpc192 ZHNvX21hcHBpbmcgPT0KLSAgICAgICAgICAgICAgICAgIChtb2R1bGVfbmFtZS5lbXB0eSgpIHx8 Ci0tICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUuY29tcGFyZSgwLCBzdHJsZW4oa1ByZWZp eCksIGtQcmVmaXgpID09IDApOwotKyAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBh cmUoMCwgc3RybGVuKGtQcmVmaXgpLCBrUHJlZml4KSA9PSAwIHx8Ci0rICAgICAgICAgICAgICAg ICAgbW9kdWxlX25hbWUuY29tcGFyZSgwLCBzdHJsZW4oa1ByZWZpeDY0KSwga1ByZWZpeDY0KSA9 PSAwKTsKLSAgICAgICAgIH0sCi0gICAgICAgICBtb2R1bGVfbWFwcGluZy0+bmFtZSwKLSAgICAg ICAgIG1vZHVsZV9tYXBwaW5nLT5kZXZpY2UsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXguY2MKLWluZGV4IGNkNDBiM2IxLi42YmNmMjNiNiAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNo b3RfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLUBAIC0zMjMsNiArMzIzLDY5IEBAIGJv b2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigK LSAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0KTsKLSB9Ci0g Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rdGVtcGxhdGUgPHR5 cGVuYW1lIFRyYWl0cz4KLStzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNzUmVhZGVyTGlu dXgqIHJlYWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyBjb250 ZXh0X2FkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgVHJhaXRzOjpD UFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKLSsgIGNvbnN0IFByb2Nlc3NNZW1vcnkqIG1lbW9y eSA9IHJlYWRlci0+TWVtb3J5KCk7Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBncF9yZWdzX2FkZHJl c3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBncF9yZWdz KTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0aHJlYWRfY29u dGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6ZW9mKHRocmVh ZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3Vs ZG4ndCByZWFkIGdwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGlu dXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkg KwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUg VHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25h bEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQoZnBfcmVnc19h ZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkgewotKyAgICBMT0coRVJS T1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAg fQotKwotKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29udGV4dF9hZGRy ZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRl eHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7Ci0rCi0rICB0 eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0OwotKyAgaWYgKCFt ZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0KSwgJnZfY29u dGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3JlZ3MhIjsKLSsg ICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxD b250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7Ci0rCi0rICByZXR1cm4g dHJ1ZTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6 UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiBy ZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewotKyAgY29udGV4 dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29udGV4dF8ucHBj NjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rCi0rICByZXR1cm4gaW50ZXJuYWw6OlJlYWRD b250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgcmVhZGVyLCBjb250ZXh0X2FkZHJlc3Ms IGNvbnRleHRfLnBwYzY0KTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25h cHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigKLSsgICAgUHJvY2Vzc1Jl YWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykg ewotKyAgLy8gUFBDNjQgaXMgNjQtYml0Ci0rICByZXR1cm4gZmFsc2U7Ci0rfQotKwotICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotIAotIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51 eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVyLAotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRp b25fc25hcHNob3RfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotaW5kZXggZWEwY2QyMTAuLmU0MmRm NTIwIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLUBAIC04 NCw2ICs4NCw4IEBAIGNsYXNzIEV4Y2VwdGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMg RXhjZXB0aW9uU25hcHNob3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp Ci0gICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBz NjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIENQVUNvbnRl eHRQUEM2NCBwcGM2NDsKLSAjZW5kaWYKLSAgIH0gY29udGV4dF91bmlvbl87Ci0gICBDUFVDb250 ZXh0IGNvbnRleHRfOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYyB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXhfdGVzdC5jYwotaW5kZXggZTRmZjFhYjcuLjI1NTM0ZGQwIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9s aW51eF90ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKLUBAIC0yOTYsNyArMjk2LDI4 IEBAIHZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5h dGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVkKSB7Ci0gICAgICAgICAgICAgMCk7Ci0gI3VuZGVmIENQ VV9BUkNIX05BTUUKLSB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0r dXNpbmcgTmF0aXZlQ1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7Ci0rCi0rdm9pZCBJbml0aWFsaXpl Q29udGV4dChOYXRpdmVDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rICBmb3IgKHNpemVfdCByZWcg PSAwOyByZWcgPCAzMjsgKytyZWcpIHsKLSsgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tyZWddID0gcmVnOwotKyAgfQotKwotKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzLCA0NCwKLSsgICAgICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykp OwotK30KLSAKLSt2b2lkIEV4cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBj b25zdCBOYXRpdmVDUFVDb250ZXh0JiBleHBlY3RlZCkgewotKyAgRVhQRUNUX0VRKGFjdHVhbC5h cmNoaXRlY3R1cmUsIGtDUFVBcmNoaXRlY3R1cmVQUEM2NCk7Ci0rCi0rICBmb3IgKHNpemVfdCBy ZWcgPSAwOyByZWcgPCAzMjsgKytyZWcpIHsKLSsgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+ cmVnc1tyZWddLCBleHBlY3RlZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOwotKyAgfQotKwot KyAgRVhQRUNUX0VRKG1lbWNtcChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNv bnRleHQuZnBfcmVncywKLSsgICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3Mp KSwgMCk7Ci0rfQotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVy X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3By b2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1pbmRleCBiOTZhYmZlNy4uZGYxMmNhNTYgMTAwNjQ0Ci0t LS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19y ZWFkZXJfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwotQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lk IFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRl ckxpbnV4KiByZWFkZXIpIHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQot ICAgc3RhY2tfcG9pbnRlciA9IHJlYWRlci0+SXM2NEJpdCgpID8gdGhyZWFkX2luZm8udGhyZWFk X2NvbnRleHQudDY0LnJlZ3NbMjldCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50MzIucmVnc1syOV07Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGFja19wb2ludGVyID0gdGhyZWFkX2lu Zm8udGhyZWFkX2NvbnRleHQudDY0LmdwclsxXTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNl bmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLWluZGV4 IDViNTcyMzYxLi4wNDljMzI4NSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjCi0rKysgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJf bGludXhfdGVzdC5jYwotQEAgLTYxMiw2ICs2MTIsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShj b25zdCBiYXNlOjpGaWxlUGF0aCYgbW9kdWxlX3BhdGgpIHsKLSAgIG1vZHVsZS5laGRyLmVfbWFj aGluZSA9IEVNX0FBUkNINjQ7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRl ZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9N SVBTOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1bGUuZWhkci5lX21h Y2hpbmUgPSBFTV9QUEM2NDsKLSAjZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9 IEVWX0NVUlJFTlQ7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggMTEwMDI0NjguLjhlMzM1 YTA5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDIyLDYgKzQyMiw4OSBAQCBzdGF0 aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHM2ND4sIG1jb250ZXh0LmZw cmVncykgPT0KLSAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotICNl bmRpZgotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKwotK3N0cnVj dCBTaWduYWxUaHJlYWRDb250ZXh0NjQgewotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50 NjRfdCBuaXA7Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCBvcmlnX3IzOwotKyAgdWlu dDY0X3QgY3RyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0 X3QgY2NyOwotKyAgdWludDY0X3Qgc29mdGU7Ci0rICB1aW50NjRfdCB0cmFwOwotKyAgdWludDY0 X3QgZGFyOwotKyAgdWludDY0X3QgZHNpc3I7Ci0rICB1aW50NjRfdCByZXN1bHQ7Ci0rICB1aW50 NjRfdCBkc2NyOwotKyAgdWludDY0X3QgZnByMFszXTsKLSt9OwotKwotK3N0cnVjdCBTaWduYWxG bG9hdENvbnRleHQ2NCB7Ci0rICBkb3VibGUgcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0r fTsKLSsKLStzdHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsKLSsgIGludDMyX3QgdnJyZWdz WzMyXVs0XTsKLSsgIHN0cnVjdCB7Ci0rICAgIGludDMyX3QgX19wYWRbM107Ci0rICAgIGludDMy X3QgdnNjcl93b3JkOwotKyAgfSB2c2NyOwotKyAgaW50MzJfdCB2cnNhdmU7Ci0rICBpbnQzMl90 IF9fcGFkWzNdOwotK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSk7Ci0rCi0rCi0r I3ByYWdtYSBwYWNrKHBvcCkKLStzdHJ1Y3QgTUNvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZXNl cnZlZFs0XTsKLSsgIGludDMyX3Qgc2lnbmFsOwotKyAgaW50MzJfdCBfX3BhZDA7Ci0rICB1aW50 NjRfdCBoYW5kbGVyOwotKyAgdWludDY0X3Qgb2xkbWFzazsKLSsgIHVpbnQ2NF90IHB0X3JlZ3Nf cHRyOwotKyAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0rICBTaWduYWxGbG9hdENv bnRleHQ2NCAgZnBfcmVnczsKLSsgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOwotKyAg aW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czY0 IDogcHVibGljIFRyYWl0czY0IHsKLSsgIHVzaW5nIE1Db250ZXh0ID0gTUNvbnRleHQ2NDsKLSsg IHVzaW5nIFNpZ25hbFRocmVhZENvbnRleHQgPSBTaWduYWxUaHJlYWRDb250ZXh0NjQ7Ci0rICB1 c2luZyBTaWduYWxGbG9hdENvbnRleHQgPSBTaWduYWxGbG9hdENvbnRleHQ2NDsKLSsgIHVzaW5n IFNpZ25hbFZlY3RvckNvbnRleHQgPSBTaWduYWxWZWN0b3JDb250ZXh0NjQ7Ci0rICB1c2luZyBD UFVDb250ZXh0ID0gQ1BVQ29udGV4dFBQQzY0OwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFp dHMzMiA6IHB1YmxpYyBUcmFpdHMzMiB7fTsKLSsKLStzdHJ1Y3QgVUNvbnRleHQgewotKyAgdWlu dDY0X3QgZmxhZ3M7Ci0rICB1aW50NjRfdCBsaW5rOwotKyAgU2lnbmFsU3RhY2s8Q29udGV4dFRy YWl0czY0PiBzdGFjazsKLSsgIFNpZ3NldDxDb250ZXh0VHJhaXRzNjQ+IHNpZ21hc2s7Ci0rICBN Q29udGV4dDY0IG1jb250ZXh0OwotK307Ci0rI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi0rCi0rc3Rh dGljX2Fzc2VydChzaXplb2YoVUNvbnRleHQpID09IHNpemVvZih1Y29udGV4dF90KSwKLSsgICAg ICAgICAgICAgICJ1Y29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNp emVvZihNQ29udGV4dDY0KSA9PSBzaXplb2YobWNvbnRleHRfdCksCi0rICAgICAgICAgICAgICAi bWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFs VGhyZWFkQ29udGV4dDY0KSA9PSBzaXplb2YoZ3JlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJn cmVnc2V0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbEZs b2F0Q29udGV4dDY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZnBy ZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVmVj dG9yQ29udGV4dDY0KSA9PSBzaXplb2YodnJyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAidnJy ZWdzZXRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4 dCwgbWNvbnRleHQpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19t Y29udGV4dCksICJtY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9m ZnNldG9mKE1Db250ZXh0NjQsIGdwX3JlZ3MpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZiht Y29udGV4dF90LCBncF9yZWdzKSwgImdwX3JlZ3Mgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2Vsc2UK LSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3Nu YXBzaG90X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotaW5kZXggODU2NGQzZDQuLmI2OTBlY2Q0IDEw MDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5 c3RlbV9zbmFwc2hvdF9saW51eC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotQEAgLTIwMyw2ICsyMDMs OCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0 dXJlKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBy ZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0 RUwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1 cmVNSVBTRUw7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1 cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBh cmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0yMTgsNiArMjIwLDkgQEAgdWludDMyX3QgU3lzdGVt U25hcHNob3RMaW51eDo6Q1BVUmV2aXNpb24oKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJl dHVybiAwOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90 IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjZXJyb3Ig cG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTIzOCw2ICsyNDMsOSBAQCBz dGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7Ci0gI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxl IG9uIE1JUFMKLSAgIHJldHVybiBzdGQ6OnN0cmluZygpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAg cmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hp dGVjdHVyZQotICNlbmRpZgotQEAgLTM3MSw2ICszNzksOSBAQCBib29sIFN5c3RlbVNuYXBzaG90 TGludXg6Ok5YRW5hYmxlZCgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIGZhbHNl OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBp bXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIGZhbHNlOwotICNlbHNlCi0gI2Vycm9yIFBv cnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51 eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRf c25hcHNob3RfbGludXguY2MKLWluZGV4IGUzZTJiZWJkLi44ZWY0Mzc1MiAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNo b3RfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLUBAIC0xODYsNiArMTg2LDE0IEBAIGJvb2wg VGhyZWFkU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nl c3NfcmVhZGVyLAotICAgICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMy LAotICAgICAgICAgY29udGV4dF8ubWlwc2VsKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKLSsgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRl Y3R1cmVQUEM2NDsKLSsgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0Owot KyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHRo cmVhZC50aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQsCi0rICAgICAgdGhyZWFkLnRocmVh ZF9pbmZvLmZsb2F0X2NvbnRleHQuZjY0LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0 b3JfY29udGV4dC52NjQsCi0rICAgICAgY29udGV4dF8ucHBjNjQpOwotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1pbmRl eCA0NGNjNmY2ZC4uZDQxMzY0NjEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGlu dXguaAotQEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6 IHB1YmxpYyBUaHJlYWRTbmFwc2hvdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKLSAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0 IG1pcHM2NDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BV Q29udGV4dFBQQzY0IHBwYzY0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBB UkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLWluZGV4IGQzZDVlYmRmLi4z ZmQ3MzBjYiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xp bnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLUBAIC01Niw2ICs1NiwxMSBAQCBib29s IEF1eGlsaWFyeVZlY3Rvcjo6UmVhZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0g ICAgIGlmICh0eXBlID09IEFUX0lHTk9SRSkgewotICAgICAgIGNvbnRpbnVlOwotICAgICB9Ci0r I2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBpZiAodHlwZSA9PSBBVF9J R05PUkVQUEMpIHsKLSsgICAgICBjb250aW51ZTsKLSsgICAgfQotKyNlbmRpZgotICAgICBpZiAo IU1hcEluc2VydE9yUmVwbGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7Ci0g ICAgICAgTE9HKEVSUk9SKSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOwotICAgICAgIHJldHVy biBmYWxzZTsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC9wdHJhY2VfYnJva2VyLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bGludXgvcHRyYWNlX2Jyb2tlci5jYwotaW5kZXggMTU1YTFlMGMuLjVlNTBjZWI1IDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tl ci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNl X2Jyb2tlci5jYwotQEAgLTk0LDggKzk0LDggQEAgaW50IFB0cmFjZUJyb2tlcjo6UnVuKCkgewot IH0KLSAKLSBib29sIFB0cmFjZUJyb2tlcjo6QWxsb2NhdGVBdHRhY2htZW50cygpIHsKLS0gIGNv bnN0ZXhwciBzaXplX3QgcGFnZV9zaXplID0gNDA5NjsKLS0gIGNvbnN0ZXhwciBzaXplX3QgYWxs b2Nfc2l6ZSA9Ci0rICBzdGF0aWMgc2l6ZV90IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0r ICBzaXplX3QgYWxsb2Nfc2l6ZSA9Ci0gICAgICAgKHNpemVvZihTY29wZWRQdHJhY2VBdHRhY2gp ICsgcGFnZV9zaXplIC0gMSkgJiB+KHBhZ2Vfc2l6ZSAtIDEpOwotICAgdm9pZCogYWxsb2MgPSBz YnJrKGFsbG9jX3NpemUpOwotICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFsbG9j KSA9PSAtMSkgewotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L2xpbnV4L3B0cmFjZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC9wdHJhY2VyLmNjCi1pbmRleCA1NTdlMGQzNi4uMDhhZTQzNGIgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi0rKysgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1AQCAtMzk4LDYg KzM5OCw2NCBAQCBib29sIEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCi0gICByZXR1cm4gdHJ1 ZTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rLy8gUFBD NjQgaGFzIGhhZCBIQVZFX0FSQ0hfVFJBQ0VIT09LIHNldCBzaW5jZSAyLjYuMjcgKGV2ZW4gYmVm b3JlIHg4NiBoYWQgaXQpLgotKy8vIFRoYXQgbWVhbnMgd2UgY2FuIHNpbXBseSB1c2UgUFRSQUNF X0dFVFJFR0VTRVQuCi0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIERlc3RpbmF0aW9uPgotK2Jvb2wg R2V0UmVnaXN0ZXJTZXQocGlkX3QgdGlkLCBpbnQgc2V0LCBEZXN0aW5hdGlvbiogZGVzdCwgYm9v bCBjYW5fbG9nKSB7Ci0rICBpb3ZlYyBpb3Y7Ci0rICBpb3YuaW92X2Jhc2UgPSByZWludGVycHJl dF9jYXN0PHZvaWQqPihkZXN0KTsKLSsgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mKCpkZXN0KTsKLSsg IGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCByZWludGVycHJldF9jYXN0PHZvaWQq PihzZXQpLCAmaW92KSAhPSAwKSB7Ci0rICAgIFBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJw dHJhY2UiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rICBpZiAoaW92Lmlvdl9sZW4gIT0g c2l6ZW9mKCpkZXN0KSkgewotKyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJVbmV4cGVj dGVkIHJlZ2lzdGVycyBzaXplIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgcmV0dXJu IHRydWU7Ci0rfQotKwotK2Jvb2wgR2V0VmVjdG9yUmVnaXN0ZXJzNjQocGlkX3QgdGlkLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yQ29udGV4dCogY29udGV4dCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdldFJlZ2lzdGVy U2V0KHRpZCwgTlRfUFBDX1ZNWCwgJmNvbnRleHQtPnY2NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jv b2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4gR2V0UmVnaXN0 ZXJTZXQodGlkLCBOVF9QUkZQUkVHLCAmY29udGV4dC0+ZjY0LCBjYW5fbG9nKTsKLSt9Ci0rCi0r Ym9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgIGNv bnN0IFRocmVhZENvbnRleHQmIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgTGludXhW TUFkZHJlc3MqIGFkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7 Ci0rICAvLyBQUEM2NCBkb2Vzbid0IGhhdmUgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBzaW5jZSB0 aGUgdGhyZWFkIHBvaW50ZXIKLSsgIC8vIGlzIHN0b3JlZCBpbiBHUFIgMTMuCi0rICBUaHJlYWRD b250ZXh0Ojp0NjRfdCB0YzsKLSsgIGlmICghR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUlNUQVRV UywgJnRjLCBjYW5fbG9nKSkgewotKyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJVbmFi bGUgdG8gZ2V0IHRocmVhZCBwb2ludGVyISI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsK LSsgICphZGRyZXNzID0gdGMuZ3ByWzEzXTsKLSsKLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSsv LyBTdHVicyBmb3IgMzItYml0IGZ1bmN0aW9ucyBub3QgYXBwbGljYWJsZSBvbiBQUEM2NAotK2Jv b2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczMyKHBpZF90IHRpZCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxzZTsgfQotK2Jv b2wgR2V0VGhyZWFkQXJlYTMyKHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25z dCBUaHJlYWRDb250ZXh0ICZjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1B ZGRyZXNzICphZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyBy ZXR1cm4gZmFsc2U7IH0KLSsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJD SF9DUFVfWDg2X0ZBTUlMWQotQEAgLTQ5NCw2ICs1NTIsOSBAQCBib29sIFB0cmFjZXI6OkdldFRo cmVhZEluZm8ocGlkX3QgdGlkLCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0gICBpZiAoaXNfNjRfYml0 XykgewotICAgICByZXR1cm4gR2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnM2NCh0aWQsICZpbmZv LT50aHJlYWRfY29udGV4dCwgY2FuX2xvZ18pICYmCi0gICAgICAgICAgICBHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+ZmxvYXRfY29udGV4dCwgY2FuX2xvZ18pICYmCi0r I2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAgICAgICAgR2V0VmVjdG9y UmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dmVjdG9yX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotKyNl bmRpZgotICAgICAgICAgICAgR2V0VGhyZWFkQXJlYTY0KHRpZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmZvLT50aHJlYWRfY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaW5mby0+dGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzcywKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotaW5kZXgg NWI1NWMyNGEuLmRlYTBkMWYzIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTI4LDYgKzI4LDEwIEBACi0gI2lu Y2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+Ci0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjZW5kaWYK LSsKLSBuYW1lc3BhY2UgY3Jhc2hwYWQgewotIAotIC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5l cmFsIHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgotQEAgLTc5 LDYgKzgzLDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQzMl90IGNwMF9zdGF0 dXM7Ci0gICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKLSAgICAgdWludDMyX3QgcGFkZGluZzFfOwot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBQUEM2NCBpcyA2 NC1iaXQKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZB TUlMWQotQEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVp bnQ2NF90IGNwMF9iYWR2YWRkcjsKLSAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKLSAgICAgdWlu dDY0X3QgY3AwX2NhdXNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQot KyAgICAvLyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCi0rICAgIHVp bnQ2NF90IGdwclszMl07Ci0rICAgIHVpbnQ2NF90IG5pcDsKLSsgICAgdWludDY0X3QgbXNyOwot KyAgICB1aW50NjRfdCBvcmlnX2dwcjM7Ci0rICAgIHVpbnQ2NF90IGN0cjsKLSsgICAgdWludDY0 X3QgbG5rOwotKyAgICB1aW50NjRfdCB4ZXI7Ci0rICAgIHVpbnQ2NF90IGNjcjsKLSsgICAgdWlu dDY0X3Qgc29mdGU7Ci0rICAgIHVpbnQ2NF90IHRyYXA7Ci0rICAgIHVpbnQ2NF90IGRhcjsKLSsg ICAgdWludDY0X3QgZHNpc3I7Ci0rICAgIHVpbnQ2NF90IHJlc3VsdDsKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTE0Myw2ICsxNjQs OCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQg PSB1c2VyX3JlZ3M7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAvLyBO byBhcHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQ UwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgdXNpbmcgTmF0aXZl VGhyZWFkQ29udGV4dCA9IHN0cnVjdCBwdF9yZWdzOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0g I2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0Ci1AQCAtMjE4 LDYgKzI0MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICAgIH0gZnByZWdzWzMyXTsKLSAg ICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBp cyA2NC1iaXQgb25seSwgc28gdGhpcwotKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNs YXJlZCBhcyBlbXB0eS4KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9D UFVfWDg2X0ZBTUlMWQotQEAgLTI1Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsK LSAgICAgZG91YmxlIGZwcmVnc1szMl07Ci0gICAgIHVpbnQzMl90IGZwY3NyOwotICAgICB1aW50 MzJfdCBmcHVfaWQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAg IC8vIFJlZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKLSsgICAgZG91YmxlIGZw cmVnc1szMl07Ci0rICAgIGRvdWJsZSBmcHNjcjsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNl bmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTI4MCw2ICszMTAsOCBAQCB1bmlvbiBG bG9hdENvbnRleHQgewotICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNl cl9mcHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRl eHQgbmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2Yo ZnByZWdzZXRfdCksICJTaXplIG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAj ZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4NgotQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24gRmxvYXRD b250ZXh0IHsKLSBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29u dGV4dD46OnZhbHVlLAotICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKLSAK LSsvLyEgXGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVy ZSBmYW1pbHkKLSt1bmlvbiBWZWN0b3JDb250ZXh0IHsKLSsgIHN0cnVjdCB2MzJfdCB7fSB2MzI7 Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgX19hdHRyaWJ1dGVfXygo X19hbGlnbmVkX18oMTYpKSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFs aWduZWQuCi0rI2VuZGlmCi0rICBzdHJ1Y3QgdjY0X3QgewotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRl eHQuaAotKyAgICB1aW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgICBzdHJ1Y3QgewotKyAgICAg IHVpbnQzMl90IF9fcGFkWzNdOwotKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKLSsgICAgfSB2 c2NyOwotKyAgICB1aW50MzJfdCB2cnNhdmU7Ci0rICAgIHVpbnQzMl90IF9fcGFkWzNdOwotKyNl bmRpZgotKyAgfSB2NjQ7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRy YWNlYC1hYmxlIGluZm9ybWF0aW9uIGFib3V0IGEgdGhyZWFkLgotIHN0cnVjdCBUaHJlYWRJbmZv IHsKLSAgIFRocmVhZEluZm8oKTsKLUBAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRocmVhZElu Zm8gewotICAgLy8hIFxicmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUg dGhyZWFkLgotICAgRmxvYXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7Ci0gCi0rICAvLyEgXGJyaWVm IChPcHRpb25hbCkgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KLSsg IFZlY3RvckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7Ci0rCi0gICAvLyEgXGJyaWVmIFRoZSB0aHJl YWQtbG9jYWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgotICAgTGludXhWTUFkZHJl c3MgdGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzczsKLSB9OwotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmggdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1pbmRl eCAzZmY3MTE4NC4uM2U4MmY0YjkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1AQCAtNjgsNiArNjgsNyBA QCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKLSAvLyEgICAgIG1hY09TL0xp bnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVyZGlgCi0gLy8hICAgICBMaW51eCAgICAg ICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9geDBgCi0gLy8hICAgICBMaW51eCAgICAg ICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAKLSsvLyEgICAgIExpbnV4ICAgICAgICAg ICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCi0gLy8hCi0gLy8hICAgICBBZGRpdGlvbmFsbHks IHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxsIGJlIHRoZSByZXR1cm4gYWRkcmVzcyBv ZgotIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotaW5k ZXggNTIyMTVlZTUuLmIzZTRhM2VjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotKysrIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotQEAg LTMyLDcgKzMyLDcgQEAKLSAgIC5iYWxpZ24gNCwgMHgwCi0gICAudHlwZSBDQVBUVVJFQ09OVEVY VF9TWU1CT0wsICVmdW5jdGlvbgotICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMiwgJWZ1 bmN0aW9uCi0tI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAuYmFsaWduIDQsIDB4MAotICNlbmRpZgot IAotQEAgLTQyMyw0ICs0MjMsMjE0IEBAIENBUFRVUkVDT05URVhUX1NZTUJPTDI6Ci0gICBqciAk cmEKLSAKLSAgIC5zZXQgYXQKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBT dG9yZSByMC1yMzEKLSsgIHN0ZCAwLCAweGU4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1swXQotKyAgc3RkIDEsIDB4ZjAoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzFdCi0rICBzdGQgMiwgMHhmOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMl0KLSsgIC8vIG5vdGUgdGhhdCByMydzIG9yaWdpbmFsIHZhbHVlIHdhcyBsb3N0Ci0r ICBzdGQgMywgMHgxMDAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbM10KLSsg IHN0ZCA0LCAweDEwOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0XQotKyAg c3RkIDUsIDB4MTEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzVdCi0rICBz dGQgNiwgMHgxMTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNl0KLSsgIHN0 ZCA3LCAweDEyMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s3XQotKyAgc3Rk IDgsIDB4MTI4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzhdCi0rICBzdGQg OSwgMHgxMzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOV0KLSsgIHN0ZCAx MCwgMHgxMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMF0KLSsgIHN0ZCAx MSwgMHgxNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMV0KLSsgIHN0ZCAx MiwgMHgxNDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMl0KLSsgIHN0ZCAx MywgMHgxNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxM10KLSsgIHN0ZCAx NCwgMHgxNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNF0KLSsgIHN0ZCAx NSwgMHgxNjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNV0KLSsgIHN0ZCAx NiwgMHgxNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNl0KLSsgIHN0ZCAx NywgMHgxNzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxN10KLSsgIHN0ZCAx OCwgMHgxNzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOF0KLSsgIHN0ZCAx OSwgMHgxODAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOV0KLSsgIHN0ZCAy MCwgMHgxODgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMF0KLSsgIHN0ZCAy MSwgMHgxOTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMV0KLSsgIHN0ZCAy MiwgMHgxOTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMl0KLSsgIHN0ZCAy MywgMHgxYTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syM10KLSsgIHN0ZCAy NCwgMHgxYTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNF0KLSsgIHN0ZCAy NSwgMHgxYjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNV0KLSsgIHN0ZCAy NiwgMHgxYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNl0KLSsgIHN0ZCAy NywgMHgxYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syN10KLSsgIHN0ZCAy OCwgMHgxYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOF0KLSsgIHN0ZCAy OSwgMHgxZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOV0KLSsgIHN0ZCAz MCwgMHgxZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMF0KLSsgIHN0ZCAz MSwgMHgxZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0KLSsKLSsgIC8v IEZvciBOSVAsIHdlIGNhbiB1c2UgdGhlIHZhbHVlIGluIHRoZSBsaW5rIHJlZ2lzdGVyCi0rICBt ZmxyIDAKLSsgIHN0ZCAwLCAweDFlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF0KLSsKLSsgIC8vIENUUgotKyAgbWZjdHIgMAotKyAgc3RkIDAsIDB4MjAwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXQotKwotKyAgLy8gRm9yIExOSywg d2UnbGwgdXNlIHRoZSBjYWxsZXIncyBMUiBzYXZlIGFyZWEgKDIgc3RhY2sgZnJhbWVzIHVwKS4K LSsgIC8vIHI0IGNhbiBiZSB1c2VkIGFzIGEgc2NyYXRjaCByZWdpc3RlciBzaW5jZSBpdCBoYXMg YWxyZWFkeSBiZWVuIHNhdmVkLgotKyAgbGQgNCwgMCgxKQotKyAgbGQgNCwgMTYoNCkKLSsgIHN0 ZCA0LCAweDIwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS10KLSsK LSsgIC8vIFhFUgotKyAgbWZ4ZXIgMAotKyAgc3RkIDAsIDB4MjEwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXQotKwotKyAgLy8gQ0NSCi0rICBtZmNyIDAKLSsgIHN0 ZCAwLCAweDIxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0KLSsK LSsgIC8vIE1TUiwgb3JpZ19yMywgTVEsIFRSQVAsIERBUiwgRFNJU1IsIFJFU1VMVCwgRFNDUiwK LSsgIC8vIG5vdCB1c2VkIG9yIG5vdCByZWxldmFudCwgIHplcm8gdGhlbSBvdXQuCi0rICBsaSA0 LCAwCi0rICBzdGQgNCwgMHgxZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9NU1JdCi0rICBzdGQgNCwgMHgxZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9PUklHX1IzXQotKyAgc3RkIDQsIDB4MjIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfTVFdCi0rICBzdGQgNCwgMHgyMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9UUkFQXQotKyAgc3RkIDQsIDB4MjMwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfREFSXQotKyAgc3RkIDQsIDB4MjM4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfRFNJU1JdCi0rICBzdGQgNCwgMHgyNDAoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9SRVNVTFRdCi0rICBzdGQgNCwgMHgyNDgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0NSXQotKwotKyAgLy8gVXBkYXRlIGNv bnRleHQtPnVjX21jb250ZXh0LnJlZ3MgdG8gcG9pbnQgdG8gZ3BfcmVncwotKyAgYWRkaSAwLCAz LCAweGU4Ci0rICBzdGQgMCwgMHhlMCgzKQotKwotKyAgLy8gU2F2ZSBmbG9hdGluZyBwb2ludCBy ZWdpc3RlcnMgMC0zMQotKyAgc3RmZCAwLCAweDI2OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1swXQotKyAgc3RmZCAxLCAweDI3MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxXQotKyAgc3RmZCAyLCAweDI3OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syXQotKyAgc3RmZCAzLCAweDI4MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1szXQotKyAgc3RmZCA0LCAweDI4OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s0XQotKyAgc3RmZCA1LCAweDI5MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s1XQotKyAgc3RmZCA2LCAweDI5OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s2XQotKyAgc3RmZCA3LCAweDJhMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s3XQotKyAgc3RmZCA4LCAweDJhOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s4XQotKyAgc3RmZCA5LCAweDJiMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1s5XQotKyAgc3RmZCAxMCwgMHgyYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1sxMF0KLSsgIHN0ZmQgMTEsIDB4MmMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMTFdCi0rICBzdGZkIDEyLCAweDJjOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzEyXQotKyAgc3RmZCAxMywgMHgyZDAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1sxM10KLSsgIHN0ZmQgMTQsIDB4MmQ4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMTRdCi0rICBzdGZkIDE1LCAweDJlMCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzE1XQotKyAgc3RmZCAxNiwgMHgyZTgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1sxNl0KLSsgIHN0ZmQgMTcsIDB4MmYwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMTddCi0rICBzdGZkIDE4LCAweDJmOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzE4XQotKyAgc3RmZCAxOSwgMHgzMDAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1sxOV0KLSsgIHN0ZmQgMjAsIDB4MzA4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMjBdCi0rICBzdGZkIDIxLCAweDMxMCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5mcF9yZWdzWzIxXQotKyAgc3RmZCAyMiwgMHgzMTgoMykgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMl0KLSsgIHN0ZmQgMjMsIDB4MzIwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjNdCi0rICBzdGZkIDI0LCAweDMyOCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI0XQotKyAgc3RmZCAyNSwgMHgzMzAoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNV0KLSsgIHN0ZmQgMjYsIDB4MzM4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjZdCi0rICBzdGZkIDI3LCAweDM0MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI3XQotKyAgc3RmZCAyOCwgMHgzNDgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syOF0KLSsgIHN0ZmQgMjksIDB4MzUwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjldCi0rICBzdGZkIDMwLCAweDM1OCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMwXQotKyAgc3RmZCAzMSwgMHgzNjAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMV0KLSsKLSsgIC8vIEZQU0NSCi0rICBt ZmZzIDAKLSsgIHN0ZmQgMCwgMHgzNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1szMl0KLSsKLSsgIC8vIFNhdmUgVk1YIFZlY3RvciByZWdpc3RlcnMKLSsgIC8vIFVwZGF0ZSBy NCB0byBjb250YWluIHRoZSBiYXNlIGFkZHJlc3Mgb2Ygdm14X3Jlc2VydmUKLSsgIGFkZGkgNCwg MywgMHgzNzgKLSsgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIHF1YWR3b3JkIGFsaWduZWQKLSsgIGFu ZGkuIDUsIDQsIDB4RgotKyAgYmVxIDFmIC8vIE5vIGFsaWdubWVudCBpcyBuZWNlc3NhcnkKLSsg IC8vIEFkZHJlc3MgaXMgZG91Ymxld29yZCBhbGlnbmVkIGFuZCBub3QgcXVhZHdvcmQgYWxpZ25l ZCwgYWRkIDgKLSsgIGFkZGkgNCwgNCwgOAotKwotKzE6Ci0rICAvLyBTdG9yZSBWTVggcmVnaXN0 ZXJzIDAtMzEKLSsgIC8vIHI0IHdpbGwgY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzCi0rICAvLyBy NSB3aWxsIGNvbnRhaW4gdGhlIGluZGV4Ci0rICBsaSA1LCAwCi0rICBzdHZ4IDAsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMF0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggMSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAxXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyLCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDJdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDMsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNCwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA0XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCA1LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDYsIDQsIDUg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNl0KLSsgIGFk ZGkgNSwgNSwgMTYKLSsgIHN0dnggNywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyA3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA4LCA0LCA1 ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDhdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDksIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTAsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMF0KLSsg IGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTIs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMl0K LSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dngg MTQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAx NF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0 dnggMTYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAxNl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTcsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggMTgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAxOF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTksIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOV0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggMjAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjEsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMV0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggMjIsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAyMl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjMsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyM10KLSsgIGFkZGkgNSwg NSwgMTYKLSsgIHN0dnggMjQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAyNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjUsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNV0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggMjYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAyNl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjcsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyN10KLSsgIGFk ZGkgNSwgNSwgMTYKLSsgIHN0dnggMjgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAyOF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjksIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOV0KLSsg IGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMzAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMzEs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMV0K LSsgIGFkZGkgNSwgNSwgMTYKLSsKLSsgIC8vIFZTQ1IKLSsgIG1mdnNjciAwCi0rICBzdHZ4IDAs IDQsIDUKLSsgIGFkZGkgNSwgNSwgMTYKLSsKLSsgIC8vIFZSU0FWRQotKyAgbWZ2cnNhdmUgMAot KyAgc3R3eCAwLCA0LCA1Ci0rCi0rICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQudl9y ZWdzIHRvIHBvaW50IHRvIHZteF9yZXNlcnZlICsgYWxpZ25tZW50LgotKyAgc3RkIDQsIDB4Mzcw KDMpCi0rCi0rICAvLyBaZXJvIG91dCBhbGwgdW51c2VkIGZpZWxkcwotKyAgbGkgNCwgMAotKyAg c3RkIDQsIDB4YzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuc2lnbmFsCi0rICBzdGQgNCwg MHhkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5oYW5kbGVyCi0rICBzdGQgNCwgMHhkOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5vbGRtYXNrCi0rCi0rICBibHIKLSAjZW5kaWYgIC8v IF9faTM4Nl9fCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLWluZGV4IGNmMjNjMmRlLi41ZjI2 NGJjOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLUBAIC01Nyw3ICs1Nyw3IEBAIHZv aWQgVGVzdENhcHR1cmVDb250ZXh0KCkgewotICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNvdW50 ZXJGcm9tQ29udGV4dChjb250ZXh0XzEpOwotIAotICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklU SVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIFwKLS0gICAgIWRlZmlu ZWQoTUVNT1JZX1NBTklUSVpFUikKLSsgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikgJiYg IWRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICAgLy8gU2FuaXRpemVycyBjYW4gY2F1 c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhhdCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxkCi0g ICAvLyBsaWtlbHkgZmFpbC4KLSAgIGNvbnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotaW5kZXggOWZjNWRi MjguLjVmNjlmOGRjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCi0rKysgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxf bGludXguY2MKLUBAIC0zNiw2ICszNiw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0 IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21j b250ZXh0LnJlZ3NbMF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9FUShjb250ZXh0 LnVjX21jb250ZXh0LmdyZWdzWzRdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4 dCkpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgRVhQRUNUX0VR KGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJf dD4oJmNvbnRleHQpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNTAsNiArNTIsOCBAQCB1aW50cHRy X3QgUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250 ZXh0KSB7Ci0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4 dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAotQEAgLTY0LDYg KzY4LDggQEAgdWludHB0cl90IFN0YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQ VUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOwot ICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51 Y19tY29udGV4dC5ncmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwotICNlbmRpZgot IH0KLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3Np eC9zaWduYWxzX3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3Np eC9zaWduYWxzX3Rlc3QuY2MKLWluZGV4IDU4YmZhOGY4Li44ZmMzN2M0NiAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYy5v cmlnCTIwMjAtMTEtMTcgMTM6Mzk6NDcuMDAwMDAwMDAwIC0wNTAwCi0rKysgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MJMjAyMC0xMS0xOCAy MTowNjozMy40MzM0MDg2MjMgLTA1MDAKLUBAIC00Niw5ICs0Niw5IEBACi0gICByZXR1cm4gc2ln ID09IFNJR0FCUlQgfHwKLSAgICAgICAgICBzaWcgPT0gU0lHQUxSTSB8fAotICAgICAgICAgIHNp ZyA9PSBTSUdCVVMgfHwKLS0jaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0rI2lmICFkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSAgICAgICAg ICBzaWcgPT0gU0lHRlBFIHx8Ci0tI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkK LSsjZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQ VV9QUEM2NCkKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFS Q0hfQ1BVX0FSTUVMKQotICAgICAgICAgIHNpZyA9PSBTSUdJTEwgfHwKLSAjZW5kaWYgIC8vIGRl ZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLUBA IC0xMTcsOSArMTE3LDExIEBACi0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLS0jaWYgIWRlZmlu ZWQoQVJDSF9DUFVfQVJNNjQpCi0rI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVm aW5lZChBUkNIX0NQVV9QUEM2NCkKLSAgICAgLy8gQVJNNjQgaGFzIGhhcmR3YXJlIGludGVnZXIg ZGl2aXNpb24gaW5zdHJ1Y3Rpb25zIHRoYXQgZG9u4oCZdCBnZW5lcmF0ZSBhCi0gICAgIC8vIHRy YXAgZm9yIGRpdmlkZS1ieS16ZXJvLCBzbyB0aGlzIGRvZXNu4oCZdCBwcm9kdWNlIFNJR0ZQRS4K LSsgICAgLy8KLSsgICAgLy8gUFBDNjQgZml4ZWQtcG9pbnQgZGl2aXNpb24gYnkgemVybyBhbHNv IGRvZXNuJ3QgcHJvZHVjZSBhIFNJR0ZQRS4KLSAgICAgY2FzZSBTSUdGUEU6IHsKLSAgICAgICAv LyBPcHRpbWl6YXRpb24gbWFrZXMgdGhpcyB0cmlja3ksIHNvIGdldCB6ZXJvIGZyb20gYSBzeXN0 ZW0gY2FsbCBsaWtlbHkKLSAgICAgICAvLyB0byBzdWNjZWVkLCBhbmQgdHJ5IHRvIGRvIHNvbWV0 aGluZyB3aXRoIHRoZSByZXN1bHQuCi1AQCAtMTM3LDcgKzEzOSw3IEBACi0gICAgICAgZnN0YXQo cXVvdGllbnQsICZzdGF0X2J1Zik7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLS0jZW5kaWYgIC8v IEFSQ0hfQ1BVX0FSTTY0Ci0rI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYg IWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZB TUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLSAgICAgY2FzZSBTSUdJTEw6IHsKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24gdGhpcmRfcGFydHkvZGF2MWQvQlVJ TEQuZ24KLWluZGV4IDc4OGRjNmNmLi41ZmQ3ZThmZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9k YXYxZC9CVUlMRC5nbgotKysrIHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi1AQCAtMTgyLDYg KzE4Miw4IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZF84Yml0IikgewotICAgICBzb3VyY2VzICs9 IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02 NCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxh dGVfc291cmNlcwotICAgfQotIAotICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yMTAsNiAr MjEyLDggQEAgc3RhdGljX2xpYnJhcnkoImRhdjFkXzEwYml0IikgewotICAgICBzb3VyY2VzICs9 IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02 NCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxh dGVfc291cmNlcwotICAgfQotIAotICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yNTYsNiAr MjYwLDIxIEBAIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0 IikgewotICAgICAgICI6ZGF2MWRfY29uZmlnIiwKLSAgICAgXQotIAotKyAgICBjZmxhZ3MgPSBk YXYxZF9jb3B0cwotKyAgfQotK30gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0Iikgewot KyAgc3RhdGljX2xpYnJhcnkoImRhdjFkX3BwYyIpIHsKLSsgICAgc291cmNlcyA9IFsKLSsgICAg ICAibGliZGF2MWQvc3JjL3BwYy9jcHUuYyIsCi0rICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1 LmgiLAotKyAgICBdCi0rCi0rICAgIGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGls ZXI6Y2hyb21pdW1fY29kZSIgXQotKyAgICBjb25maWdzICs9IFsKLSsgICAgICAiLy9idWlsZC9j b25maWcvY29tcGlsZXI6bm9fY2hyb21pdW1fY29kZSIsCi0rICAgICAgIjpkYXYxZF9jb25maWci LAotKyAgICBdCi0rCi0gICAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCi0gICB9Ci0gfQotQEAgLTI4 NSw1ICszMDQsNyBAQCBzdGF0aWNfbGlicmFyeSgiZGF2MWQiKSB7Ci0gICAgIH0KLSAgIH0gZWxz ZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0Iikgewot ICAgICBkZXBzICs9IFsgIjpkYXYxZF9hcm0iIF0KLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUg PT0gInBwYzY0IikgewotKyAgICBkZXBzICs9IFsgIjpkYXYxZF9wcGMiIF0KLSAgIH0KLSB9Ci1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaCB0 aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uZjZjYTU3ZjcKLS0tLSAvZGV2L251bGwKLSsrKyB0 aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKLUBAIC0wLDAgKzEs MzkgQEAKLSsvKgotKyAqIEF1dG9nZW5lcmF0ZWQgYnkgdGhlIE1lc29uIGJ1aWxkIHN5c3RlbS4K LSsgKiBEbyBub3QgZWRpdCwgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4KLSsgKi8KLSsKLSsj cHJhZ21hIG9uY2UKLSsKLSsjZGVmaW5lIEFSQ0hfQUFSQ0g2NCAwCi0rCi0rI2RlZmluZSBBUkNI X0FSTSAwCi0rCi0rI2RlZmluZSBBUkNIX1BQQzY0TEUgMQotKwotKyNkZWZpbmUgQVJDSF9YODYg MAotKwotKyNkZWZpbmUgQVJDSF9YODZfMzIgMAotKwotKyNkZWZpbmUgQVJDSF9YODZfNjQgMAot KwotKyNkZWZpbmUgQ09ORklHXzE2QlBDIDEKLSsKLSsjZGVmaW5lIENPTkZJR184QlBDIDEKLSsK LSsvLyAjZGVmaW5lIENPTkZJR19MT0cgMSAtLSBMb2dnaW5nIGlzIGNvbnRyb2xsZWQgYnkgQ2hy b21pdW0KLSsKLSsjZGVmaW5lIEVORElBTk5FU1NfQklHIDAKLSsKLSsjZGVmaW5lIEhBVkVfQVNN IDEKLSsKLSsjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCi0rCi0rI2RlZmluZSBIQVZFX0RM U1lNIDEKLSsKLSsjZGVmaW5lIEhBVkVfR0VUQVVYVkFMIDEKLSsKLSsjZGVmaW5lIEhBVkVfUE9T SVhfTUVNQUxJR04gMQotKwotKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi0rCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkgdGhpcmRfcGFydHkvZGF2MWQv ZGF2MWRfZ2VuZXJhdGVkLmduaQotaW5kZXggOGJlY2FjMDIuLmQ1ZjRmY2FjIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKLSsrKyB0aGlyZF9wYXJ0eS9k YXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pCi1AQCAtNzEsNiArNzEsMTEgQEAgYXJtX3RlbXBsYXRl X3NvdXJjZXMgPSBbCi0gICAibGliZGF2MWQvc3JjL2FybS9tY19pbml0X3RtcGwuYyIsCi0gXQot IAotK3BwYzY0X3RlbXBsYXRlX3NvdXJjZXMgPSBbCi0rICAibGliZGF2MWQvc3JjL3BwYy9jZGVm X2luaXRfdG1wbC5jIiwKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2xvb3ByZXN0b3JhdGlvbl9pbml0 X3RtcGwuYyIsCi0rXQotKwotIHRlbXBsYXRlX3NvdXJjZXMgPSBbCi0gICAibGliZGF2MWQvc3Jj L2NkZWZfYXBwbHlfdG1wbC5jIiwKLSAgICJsaWJkYXYxZC9zcmMvY2RlZl90bXBsLmMiLAotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkgdGhpcmRfcGFydHkv ZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5Ci1pbmRleCA5YWI1ZTAwYi4uYWQzZmVmZmUgMTAwNzU1 Ci0tLS0gdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5Ci0rKysgdGhpcmRfcGFy dHkvZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5Ci1AQCAtNTAsNyArNTAsOCBAQCBkZWYgV3JpdGVH bihmZCk6Ci0gICBXcml0ZUFycmF5KGZkLCAiYXJtMzJfYXNtX3NvdXJjZXMiLCBnbG9iLmdsb2Io ImxpYmRhdjFkL3NyYy9hcm0vMzIvKi5TIikpCi0gICBXcml0ZUFycmF5KGZkLCAiYXJtNjRfYXNt X3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCi0gICBXcml0 ZUFycmF5KGZkLCAiYXJtX3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3Ny Yy9hcm0vKl90bXBsLmMiKSkKLS0KLSsgIFdyaXRlQXJyYXkoZmQsICJwcGM2NF90ZW1wbGF0ZV9z b3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCi0rIAotICAg dGVtcGxhdGVfc291cmNlcyA9IGdsb2IuZ2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikKLSAg IFdyaXRlQXJyYXkoZmQsICJ0ZW1wbGF0ZV9zb3VyY2VzIiwgdGVtcGxhdGVfc291cmNlcykKLSAK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oIHRo aXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAotaW5kZXggMGI0YmQ3MmYu LmEwY2FhNWU3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMv dHlwZXMuaAotKysrIHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAot QEAgLTUxLDQgKzUxLDE5IEBACi0gI2RlZmluZSB1MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNf bWVyZ2VsKCh1MTZ4OCkgdiwgdmVjX3NwbGF0X3UxNigwKSkpCi0gI2RlZmluZSBpMTZsX3RvX2kz Mih2KSAoKGkzMng0KSB2ZWNfdW5wYWNrbCgoaTE2eDgpdikpCi0gCi0rI2lmIGRlZmluZWQoX19j bGFuZ19fKQotKyN1bmRlZiB2ZWNfc3BsYXRzCi0rI2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAg ICAgICAgICAgICAgICAgXAotKyAgICBfR2VuZXJpYygoTiksICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSsgICAgICAgIHVuc2lnbmVkIGNoYXI6ICAgICAgKCh1OHgxNikoTikpLCBcCi0rICAg ICAgICBzaWduZWQgY2hhcjogICAgICAgICgoaTh4MTYpKE4pKSwgXAotKyAgICAgICAgdW5zaWdu ZWQgc2hvcnQ6ICAgICAoKHUxNng4KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBzaG9ydDogICAg ICAgKChpMTZ4OCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQp KE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGludDogICAgICAgICAoKGkzMng0KShOKSksIFwKLSsg ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZzogKCh1NjR4MikoTikpLCBcCi0rICAgICAgICBzaWdu ZWQgbG9uZyBsb25nOiAgICgoaTY0eDIpKE4pKSAgXAotKyAgICApCi0rI2VuZGlmCi0rCi0gI2Vu ZGlmIC8qIERBVjFEX1NSQ19QUENfVFlQRVNfSCAqLwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9s c3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxf c3VwcG9ydC5oCi1pbmRleCBkMmJhZWU5ZC4uOTk1NWNlNDQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi0rKysgdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oCi1AQCAtMzkyMiw3ICszOTIyLDcgQEAgc3RydWN0IGtlcm5lbF9z dGF0ZnMgewotICAgICAgIExTU19SRUcoMiwgYnVmKTsKLSAgICAgICBMU1NfQk9EWSh2b2lkKiwg bW1hcDIsICIwIihfX3IyKSk7Ci0gICAgIH0KLS0jZWxzZQotKyNlbGlmICFkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIC8qIHBwYzY0IGRvZXNuJ3QgaGF2ZSBtbWFwMiAqLwotICAgICAjZGVmaW5lIF9f TlJfX21tYXAyIF9fTlJfbW1hcDIKLSAgICAgTFNTX0lOTElORSBfc3lzY2FsbDYodm9pZCosIF9t bWFwMiwgICAgICAgICAgICB2b2lkKiwgcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZV90LCAgICAgICAgICAgICAgICAgICBsLCBpbnQsICAgICAgICAgICAgICAgcCwKLUBAIC00MDMz LDcgKzQwMzMsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICAgIGRlZmluZWQoX19BUk1fQVJDSF8zX18pIHx8IGRlZmluZWQoX19BUk1fRUFC SV9fKSB8fCAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAm JiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMyKSB8fCAgICAgICAgICAgICAgICAgICBcCi0t ICAgICAgZGVmaW5lZChfX1BQQ19fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgKGRlZmluZWQoX19QUENfXykgJiYgIWRlZmlu ZWQoX19wb3dlcnBjNjRfXykpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0gICAgICAoZGVmaW5lZChfX3MzOTBfXykgJiYgIWRlZmluZWQo X19zMzkweF9fKSkKLSAgICAgLyogT24gdGhlc2UgYXJjaGl0ZWN0dXJlcywgaW1wbGVtZW50IG1t YXAoKSB3aXRoIG1tYXAyKCkuICovCi0gICAgIExTU19JTkxJTkUgdm9pZCogTFNTX05BTUUobW1h cCkodm9pZCAqcywgc2l6ZV90IGwsIGludCBwLCBpbnQgZiwgaW50IGQsCi1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jIHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5j Ci1pbmRleCBiZGFjNGQ3ODQuLjUxZTBmMmNhYyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9wZmZm dC9zcmMvcGZmZnQuYwotKysrIHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1AQCAtMTAw LDYgKzEwMCw3IEBACi0gICAgQWx0aXZlYyBzdXBwb3J0IG1hY3JvcyAKLSAqLwotICNpZiAhZGVm aW5lZChQRkZGVF9TSU1EX0RJU0FCTEUpICYmIChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSkKLSsjaW5jbHVkZSA8YWx0aXZlYy5oPgotIHR5cGVkZWYgdmVjdG9yIGZsb2F0 IHY0c2Y7Ci0gIyAgZGVmaW5lIFNJTURfU1ogNAotICMgIGRlZmluZSBWWkVSTygpICgodmVjdG9y IGZsb2F0KSB2ZWNfc3BsYXRfdTgoMCkpCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NraWEvc3Jj L3Nrc2wvU2tTTFN0cmluZy5jcHAgdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5n LmNwcAotaW5kZXggODhlYjFjN2QuLjRiZTMzZmE1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3Nr aWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKLSsrKyB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3Ns L1NrU0xTdHJpbmcuY3BwCi1AQCAtMjQwLDcgKzI0MCwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRv dWJsZSB2YWx1ZSkgewotICAgICBpZiAobmVlZHNEb3RaZXJvKSB7Ci0gICAgICAgICBidWZmZXIg PDwgIi4wIjsKLSAgICAgfQotLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigp KTsKLSsKLSsgICAgc3RkOjpzdHJpbmcgcmV0KGJ1ZmZlci5zdHIoKSk7Ci0rICAgIGlmIChzaWdu Yml0KHZhbHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7Ci0rICAgICAgICByZXRbMF0gPSAnLSc7Ci0r ICAgIH0KLSsgICAgcmV0dXJuIFN0cmluZyhyZXQuY19zdHIoKSk7Ci0gfQotIAotIFNLU0xfSU5U IHN0b2koY29uc3QgU3RyaW5nJiBzKSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1h dGlvbi9zcWxpdGUzLmMKLWluZGV4IDFiMmMyZWM3Li43NTkzZGJhMSAxMDA2NDQKLS0tLSB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsrKyB0aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLUBAIC0xNDQwMCw3ICsxNDQwMCw4 IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAg fHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAg ICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmlu ZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQo X01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5l IFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwg ZGVmaW5lZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1h bGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRp b25fZGV2L3NxbGl0ZTMuYwotaW5kZXggMTljODc2ODkuLmM3YWIwMzllIDEwMDY0NAotLS0tIHRo aXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLSsrKyB0aGly ZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi1AQCAtMTQ0MTMs NyArMTQ0MTMsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChp Mzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8 fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAg ICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8 fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAg ICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5l ZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2 NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0g IyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFy YykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJf XykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9zcWxp dGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVl L3J0cmVlLmMKLWluZGV4IGVmYWVmODEzLi40Y2Q1N2Q1NSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJlZS5jCi0rKysgdGhpcmRfcGFydHkvc3FsaXRlL3Ny Yy9leHQvcnRyZWUvcnRyZWUuYwotQEAgLTQzMiw3ICs0MzIsNyBAQCBzdHJ1Y3QgUnRyZWVNYXRj aEFyZyB7Ci0gI2lmIGRlZmluZWQoaTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwg ZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgIGRlZmluZWQo X01fQU1ENjQpIHx8IGRlZmluZWQoX01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAg ICBcCi0tICAgIGRlZmluZWQoX19hcm1fXykKLSsgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9F TkRJQU5fXykKLSAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjZWxpZiBkZWZp bmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9fcHBjX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVP UkRFUiAgICA0MzIxCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0 ZUludC5oIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1pbmRleCAxMjJl MjZhZC4uZWMyMWRjYjUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3Fs aXRlSW50LmgKLSsrKyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotQEAg LTg2OCw3ICs4NjgsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5l ZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2 KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQp ICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAot LSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVm aW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFS Q0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQot ICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3Bh cmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVC X18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvd2Vi cnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYyB0aGlyZF9wYXJ0eS93 ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjCi1pbmRleCBkZDlh YjQ1Ny4uYzAwNWQ5NTkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVz a3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYy5vcmlnCTIwMjAtMTEtMTcgMTM6NDI6MDIuMDAw MDAwMDAwIC0wNTAwCi0rKysgdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0 dXJlL2RpZmZlcl9ibG9jay5jYwkyMDIwLTExLTE4IDIxOjExOjAzLjAzOTkwNTM2MCAtMDUwMAot QEAgLTMwLDExICszMCw3IEBACi0gICBzdGF0aWMgYm9vbCAoKmRpZmZfcHJvYykoY29uc3QgdWlu dDhfdCosIGNvbnN0IHVpbnQ4X3QqKSA9IG51bGxwdHI7Ci0gCi0gICBpZiAoIWRpZmZfcHJvYykg ewotLSNpZiBkZWZpbmVkKFdFQlJUQ19BUkNIX0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRD X0FSQ0hfTUlQU19GQU1JTFkpCi0tICAgIC8vIEZvciBBUk0gYW5kIE1JUFMgcHJvY2Vzc29ycywg YWx3YXlzIHVzZSBDIHZlcnNpb24uCi0tICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBO RU9OIHZlcnNpb24uCi0tICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0tI2Vs c2UKLSsjaWYgZGVmaW5lZChXRUJSVENfQVJDSF9YODZfRkFNSUxZKQotICAgICBib29sIGhhdmVf c3NlMiA9IEdldENQVUluZm8oa1NTRTIpICE9IDA7Ci0gICAgIC8vIEZvciB4ODYgcHJvY2Vzc29y cywgY2hlY2sgaWYgU1NFMiBpcyBzdXBwb3J0ZWQuCi0gICAgIGlmIChoYXZlX3NzZTIgJiYga0Js b2NrU2l6ZSA9PSAzMikgewotQEAgLTQ0LDYgKzQwLDEwIEBACi0gICAgIH0gZWxzZSB7Ci0gICAg ICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLSAgICAgfQotKyNlbHNlCi0rICAg IC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KLSsgICAgLy8g VE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KLSsgICAgZGlmZl9wcm9jID0g JlZlY3RvckRpZmZlcmVuY2VfQzsKLSAjZW5kaWYKLSAgIH0KLSAKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmggdGhpcmRfcGFydHkvd2VicnRjL3J0 Y19iYXNlL3N5c3RlbS9hcmNoLmgKLWluZGV4IGVkMjE2ZTY2Li4yNWQzNmMwNyAxMDA2NDQKLS0t LSB0aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotKysrIHRoaXJkX3Bh cnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1AQCAtNTAsNiArNTAsMTggQEAKLSAj ZWxpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQotICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklU UwotICNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNlbGlmIGRlZmluZWQoX19Q UENfXykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX1BQQ19GQU1JTFkKLSsjaWYgX19CWVRFX09SREVS X18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18KLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRM RV9FTkRJQU4KLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotKyNlbmRp ZgotKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfNjRfQklUUwot KyNlbHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0rI2VuZGlmCi0gI2Vsc2UKLSAj ZXJyb3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFz ZS9zeXN0ZW0vYXJjaC5oCi0gI2VuZGlmCi0gZGlmZiAtLWdpdCB2OC9CVUlMRC5nbiB2OC9CVUlM RC5nbgotaW5kZXggMTY3ZTYzNTAzLi4xMjVjNDQ1ZWEgMTAwNjQ0Ci0tLS0gdjgvQlVJTEQuZ24K LSsrKyB2OC9CVUlMRC5nbgotQEAgLTY5Niw2ICs2OTYsMTIgQEAgY29uZmlnKCJ0b29sY2hhaW4i KSB7Ci0gICAgIH0KLSAgICAgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJsaXR0bGUiKSB7Ci0gICAg ICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRfQVJDSF9QUENfTEUiIF0KLSsgICAgICAgIGNmbGFn cyArPSBbCi0rICAgICAgICAjIEVuYWJsZSB1c2FnZSBvZiBBbHRpVmVjLCBWU1gsIGFuZCBvdGhl ciBQT1dFUjggYW5kIGhpZ2hlciBmZWF0dXJlcwotKyAgICAgICAgIi1tY3B1PXBvd2VyOCIsCi0r ICAgICAgICAiLW1hbHRpdmVjIiwKLSsgICAgICAgICItbXZzeCIsCi0rICAgICAgXQotICAgICB9 IGVsc2UgaWYgKGhvc3RfYnl0ZW9yZGVyID09ICJiaWciKSB7Ci0gICAgICAgZGVmaW5lcyArPSBb ICJWOF9UQVJHRVRfQVJDSF9QUENfQkUiIF0KLSAgICAgICBpZiAoY3VycmVudF9vcyA9PSAiYWl4 IikgewotZGlmZiAtLWdpdCB1aS9nbC9mZWF0dXJlcy5nbmkgdWkvZ2wvZmVhdHVyZXMuZ25pCi1p bmRleCBjYjJjOTg2NDkuLjVlMDliYzFmNyAxMDA2NDQKLS0tLSB1aS9nbC9mZWF0dXJlcy5nbmkK LSsrKyB1aS9nbC9mZWF0dXJlcy5nbmkKLUBAIC0yNSw1ICsyNSw2IEBAIGRlY2xhcmVfYXJncygp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpc19jaHJvbWVvcyB8fCBpc19mdWNoc2lhKSAm JgotICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0 X2NwdSA9PSAieDY0IiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0g ImFybSIgfHwgdGFyZ2V0X2NwdSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8fCB0YXJnZXRf Y3B1ID09ICJtaXBzNjRlbCIgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1 ID09ICJwcGM2NCIpCi0gfQotZGlmZiAtLWdpdCB2OC90ZXN0L0JVSUxELmduIHY4L3Rlc3QvQlVJ TEQuZ24KLWluZGV4IGY2ZDMwNTM3YS4uMjg3YjI3MDgwIDEwMDY0NAotLS0tIHY4L3Rlc3QvQlVJ TEQuZ24KLSsrKyB2OC90ZXN0L0JVSUxELmduCi1AQCAtMzEsNyArMzEsNyBAQCBncm91cCgiZ25f YWxsIikgewotICAgICBkZXBzICs9IFsKLSAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCi0gICAgICAg ImNjdGVzdDpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAotLSAgICAgICJ1bml0dGVz dHM6dW5pdHRlc3RzIiwKLSsgICAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICBdCi0g ICB9Ci0gfQotQEAgLTczLDcgKzczLDcgQEAgZ3JvdXAoInY4X2JvdF9kZWZhdWx0IikgewotICAg ICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKLSAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCi0gICAg ICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAotLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0r ICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICAgICJ3YXNtLWFwaS10ZXN0czp3YXNtX2Fw aV90ZXN0cyIsCi0gICAgICJ3YXNtLWpzOnY4X3dhc21fanMiLAotICAgICAid2FzbS1zcGVjLXRl c3RzOnY4X3dhc21fc3BlY190ZXN0cyIsCi1AQCAtOTMsNyArOTMsNyBAQCBncm91cCgidjhfZGVm YXVsdCIpIHsKLSAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4X21q c3VuaXQiLAotICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0czp1 bml0dGVzdHMiLAotKyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAid2FzbS1hcGkt dGVzdHM6d2FzbV9hcGlfdGVzdHMiLAotICAgICAid2FzbS1qczp2OF93YXNtX2pzIiwKLSAgICAg Indhc20tc3BlYy10ZXN0czp2OF93YXNtX3NwZWNfdGVzdHMiLApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggMDk4 Y2I5MDRkYTkuLmMwOGM5YTYwMDRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjaHJvbWl1bScKIHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHA6 Ly93d3cuY2hyb21pdW0ub3JnL2RldmVsb3BlcnMvY2FsZW5kYXIgZm9yIHRoZSBsYXRlc3QgdmVy c2lvbgotdmVyc2lvbj04OC4wLjQzMjQuMTgyCit2ZXJzaW9uPTg5LjAuNDM4OS43MgogcmV2aXNp b249MQogYXJjaHM9Imk2ODYqIHg4Nl82NCogYWFyY2g2NCogYXJtdjdsKiBwcGM2NGxlKiIKIHNo b3J0X2Rlc2M9Ikdvb2dsZSdzIGF0dGVtcHQgYXQgY3JlYXRpbmcgYSBzYWZlciwgZmFzdGVyLCBh bmQgbW9yZSBzdGFibGUgYnJvd3NlciIKQEAgLTksNyArOSw3IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBo b21lcGFnZT0iaHR0cHM6Ly93d3cuY2hyb21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9j b21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFs LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMDQxMWZjM2VjMmQzM2Rm NGM1Y2FkNDFmMjFhZmZhMzgyM2M4MGY3ZGJkMzk0ZjZkNjhmOWExZTgxMDE1YjgxCitjaGVja3N1 bT05NDZhMGI2NWFhZDEwZTBmNzdhNTM5MTAzODkyMDk5YjcyMzgzMTBjNzMzZjI1YjQxZDU4Yjc2 ZjZhYzBiYzRmCiBub2Nyb3NzPXllcwogCiBsaWIzMmRpc2FibGVkPXllcwpAQCAtMzQsNyArMzQs NyBAQCBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNz LWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGN1cnNvci1kZXZlbCBsaWJmbGFjLWRldmVsIHNw ZWV4LWRldmVsIGxpYm10cC1kZXZlbCBsaWJ3ZWJwLWRldmVsCiAgbGlianBlZy10dXJiby1kZXZl bCBsaWJldmVudC1kZXZlbCBqc29uLWMtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKICBtaW5pemlwLWRl dmVsIGpzb25jcHAtZGV2ZWwgemxpYi1kZXZlbCBsaWJjYXAtZGV2ZWwgbGliWGRhbWFnZS1kZXZl bAotIHJlMi1kZXZlbCBmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIG9wdXMtZGV2ZWwK KyByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbAogIGZmbXBlZy1kZXZl bCBsaWJ2YS1kZXZlbCBweXRob24tc2V0dXB0b29scyB4Y2ItcHJvdG8KICAkKHZvcHRfaWYgcGlw ZXdpcmUgbGlicGlwZXdpcmUwLjItZGV2ZWwpICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCki CiBkZXBlbmRzPSJsaWJleGlmIGh3aWRzIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24t dGhlbWUgeGRnLXV0aWxzIgpAQCAtMTE5LDYgKzExOSw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkj IHVzZV9zeXN0ZW1fdjg9MQogCSMgdXNlX3N5c3RlbV96bGliPTEKIAkjIGJ6aXAyIGpzb25jcHAg bWluaXppcCB4ZGdfdXRpbHMgc3BlZXgKKwkjIG9wdXMgZmFpbHMgYmVjYXVzZSB0aGUgZ2VuZXJh dGVkIHNoaW0gaGVhZGVyIG9wdXMuaCB0cmllcyB0byBpbmNsdWRlIDxvcHVzLmg+CiAJc3lzdGVt PSIKIAkJZmZtcGVnCiAJCWZsYWMKQEAgLTEzMiw3ICsxMzMsNiBAQCBkb19jb25maWd1cmUoKSB7 CiAJCWxpYndlYnAKIAkJbGlieG1sCiAJCWxpYnhzbHQKLQkJb3B1cwogCQlyZTIKIAkJc25hcHB5 CiAJIgo= --===============1503988295852350248==--