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 7248 invoked from network); 25 Sep 2022 01:20:53 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Sep 2022 01:20:53 -0000 Content-Type: multipart/mixed; boundary="===============1863194013967964316==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_binutils=3A_update_to_2=2E39=2E_?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 25 Sep 2022 03:20:52 +0200 List-Id: Message-ID: <20220925012052.XgymUwdl721jBVutZkMRrGydSXsDnnpClrU0hiN6EbA@z> GitHub notification mails are now in MIME to allow UTF8. --===============1863194013967964316== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIGJpbnV0aWxzCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8zOTMxMgoKYmludXRpbHM6IHVwZGF0ZSB0byAyLjM5LiAKPCEt LSBVbmNvbW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFy ZSBub3QgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVz dGVkIHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCk1vc3Qgb2YgdGhlIHRl c3RpbmcgZm9yIHRoaXMgd2FzIGRvbmUgYXMgYSBwYXJ0IG9mIHRoZSBbZ2NjMTIgUFJdKGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDkwMiksIHRoaXMg d2FzIHNwbGl0IG9uIHJlcXVlc3QuDQoNClRoZXJlIHdlcmUgc29tZSBhcGkgY2hhbmdlcyBpbiBs aWJmZCwgdGhlIGZvbGxvd2luZyBwYWNrYWdlcyB3ZXJlIHRlc3RlZCB0byBidWlsZCBhZ2FpbnN0 IGJpbnV0aWxzLWRldmVsOg0KLSBbeF0gb3Byb2ZpbGUNCi0gW3hdIHByZWxpbmstY3Jvc3MNCi0g W3hdIGtjb3YNCi0gW3hdIGxpbnV4LXRvb2xzDQotIFt4XSBkaXN0Y2MNCi0gW3hdIGNocm9vdC1k aXN0Y2MNCi0gW3hdIHNic2lnbnRvb2wNCi0gWyBdIGxsdm0xMiAoSSBjYW4ndCByZW1lbWJlciBp ZiBJIHRlc3RlZCBpdCB3aXRoIGJpbnV0aWxzIDIuMzkgb3IganVzdCAyLjM4LCBidWlsZGluZyBp dCB0YWtlcyBmb3JldmVyLCBidXQgaXQgc2hvdWxkIGJlIGZpbmUgc2luY2UgYWZhaWN0IGl0IGRv ZXNuJ3QgdXNlIGxpYmJmZCBvciBgZGlzLWFzbS5oYCkNCi0gW3hdIHJwbSAoZG9lc24ndCBhY3R1 YWxseSB1c2UgYmludXRpbHMtZGV2ZWwgYnV0IGl0IGlzIGxpc3RlZCBpbiB0aGUgbWFrZWRlcGVu ZHMsIGJ1aWxkcyBmaW5lIHdpdGhvdXQgaXQpDQoNClBsZWFzZSB0ZXN0IHRoaXMgUFIgYmVmb3Jl IG1lcmdpbmcuDQoNCkNsb3NlczogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9wdWxsLzM5MjkxDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcg cGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElO Ry5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBO b3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBs ZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250 aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFu ZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBz ZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMjIExv Y2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2 ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZv ciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0K ICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBw YXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzM5MzEyLnBhdGNoIGlzIGF0dGFjaGVk --===============1863194013967964316== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-binutils-39312.patch" RnJvbSAyMjkyNDhhOTg0MDI2YzBmMjJkNGQwNTg1MmQxMzFhMzIyNDQxOWI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMTYgU2VwIDIwMjIgMDM6NDY6MDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvNF0gbGliaWJl cnR5LWRldmVsOiB1cGRhdGUgdG8gMjAyMjA3MTMKCi0tLQogc3JjcGtncy9saWJpYmVydHktZGV2 ZWwvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxh dGUgYi9zcmNwa2dzL2xpYmliZXJ0eS1kZXZlbC90ZW1wbGF0ZQppbmRleCA1NTI1NWRjZWFlOGIu LmNhMmQ4NThhN2FiYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJpYmVydHktZGV2ZWwnCiBwa2duYW1lPWxpYmliZXJ0 eS1kZXZlbAotdmVyc2lvbj0yMDIxMDEwNgordmVyc2lvbj0yMDIyMDcxMwogcmV2aXNpb249MQog d3Jrc3JjPWxpYmliZXJ0eS0ke3ZlcnNpb259CiBidWlsZF93cmtzcmM9bGliaWJlcnR5CkBAIC0x MSw3ICsxMSw3IEBAIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9nY2MuZ251Lm9y Zy8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kZWIuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL2xp YmkvbGliaWJlcnR5L2xpYmliZXJ0eV8ke3ZlcnNpb259Lm9yaWcudGFyLnh6IgotY2hlY2tzdW09 OWRmMTUzZDY5OTE0YzBmNWE5MTQ1ZTBhYmJiMjQ4ZTcyZmVlYmFiNjc3N2M3MTJhMzBmMWMzYjhj MTkwNDdkNAorY2hlY2tzdW09YjU5MDUwZjQ4YzhhMGY5YzllNmZiYTVkMTdjN2E0ZjExZDEzMjlk ZTBjMGRjYTczMzFiNzY3YTZkMmJiZThkOQogY29uZmxpY3RzPSJiaW51dGlscy1kZXZlbDw9Mi4z NS4xXzMiCiAKIENGTEFHUz0iLWZQSUMiCgpGcm9tIGQwMmZhYzgyNDgxNzYwOGRlNTA0MjY3OWQy ZjZhZmFmMjVkYmMyMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9y ZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxNiBTZXAgMjAyMiAwMzo0NDoxNiAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMi80XSBiaW51dGlsczogdXBkYXRlIHRvIDIuMzkuCgotLS0KIC4uLmUz ZjNiZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZi5wYXRjaCB8ICAgNjAgLQogLi4uZmZk YzIwMmYwNDM5N2YzMTU1N2YxNzE3MGI0MGJjNDJiNzdhLnBhdGNoIHwgMTE4MSArKysrKysrKysr KysrKysrKwogLi4uL2ZpeC1saWJjb2xsZWN0b3Itd2l0aG91dC1qYXZhLnBhdGNoICAgICAgIHwg ICA1MyArCiAuLi4vcGF0Y2hlcy9wcGM2NC1yZXZlcnQtZ251LWF0dHJpYnV0ZXMucGF0Y2ggfCAg IDY2ICstCiBzcmNwa2dzL2JpbnV0aWxzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAg IDIyICstCiA1IGZpbGVzIGNoYW5nZWQsIDEyNjcgaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy8xNzY3ZTNm M2JkNmQ0NjA0OTFmOGM4ZDAzMmE3ZmVhODhkNWVjOGZmLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iaW51dGlscy9wYXRjaGVzL2ZlMzlmZmRjMjAyZjA0Mzk3ZjMxNTU3ZjE3MTcw YjQwYmM0MmI3N2EucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JpbnV0aWxzL3Bh dGNoZXMvZml4LWxpYmNvbGxlY3Rvci13aXRob3V0LWphdmEucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvMTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4 ZDVlYzhmZi5wYXRjaCBiL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy8xNzY3ZTNmM2JkNmQ0NjA0 OTFmOGM4ZDAzMmE3ZmVhODhkNWVjOGZmLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBhNTU0MzJkODNjZmYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JpbnV0aWxzL3Bh dGNoZXMvMTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLUZyb20gMTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQw MzJhN2ZlYTg4ZDVlYzhmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJILkouIEx1 IiA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTYgTm92IDIwMjAgMDY6Mzc6NTMg LTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZWxmOiBTZXQgcmVsX2Zyb21fYWJzIHRvIDEgZm9yIF9f ZWhkcl9zdGFydAotCi1iZmRsaW5rLmggaGFzCi0KLSAgLyogU3ltYm9sIHdpbGwgYmUgY29udmVy dGVkIGZyb20gYWJzb2x1dGUgdG8gc2VjdGlvbi1yZWxhdGl2ZS4gIFNldCBmb3IKLSAgICAgc3lt Ym9scyBkZWZpbmVkIGJ5IGEgc2NyaXB0IGZyb20gImRvdCIgKGFsc28gU0VHTUVOVF9TVEFSVCBv ciBPUklHSU4pCi0gICAgIG91dHNpZGUgb2YgYW4gb3V0cHV0IHNlY3Rpb24gc3RhdGVtZW50LiAg Ki8KLSAgdW5zaWduZWQgaW50IHJlbF9mcm9tX2FicyA6IDE7Ci0KLWxpbmtlci5jIGhhcwotCi0u eyogUmV0dXJuIFRSVUUgaWYgdGhlIHN5bWJvbCBkZXNjcmliZWQgYnkgYSBsaW5rZXIgaGFzaCBl bnRyeSBICi0uICAgaXMgZ29pbmcgdG8gYmUgYWJzb2x1dGUuICBMaW5rZXItc2NyaXB0IGRlZmlu ZWQgc3ltYm9scyBjYW4gYmUKLS4gICBjb252ZXJ0ZWQgZnJvbSBhYnNvbHV0ZSB0byBzZWN0aW9u LXJlbGF0aXZlIG9uZXMgbGF0ZSBpbiB0aGUKLS4gICBsaW5rLiAgVXNlIHRoaXMgbWFjcm8gdG8g Y29ycmVjdGx5IGRldGVybWluZSB3aGV0aGVyIHRoZSBzeW1ib2wKLS4gICB3aWxsIGFjdHVhbGx5 IGVuZCB1cCBhYnNvbHV0ZSBpbiBvdXRwdXQuICAqfQotLiNkZWZpbmUgYmZkX2lzX2Fic19zeW1i b2woSCkgXAotLiAgKCgoSCktPnR5cGUgPT0gYmZkX2xpbmtfaGFzaF9kZWZpbmVkIFwKLS4gICAg fHwgKEgpLT50eXBlID09IGJmZF9saW5rX2hhc2hfZGVmd2VhaykgXAotLiAgICYmIGJmZF9pc19h YnNfc2VjdGlvbiAoKEgpLT51LmRlZi5zZWN0aW9uKSBcCi0uICAgJiYgIShIKS0+cmVsX2Zyb21f YWJzKQotLgotCi1TZXQgcmVsX2Zyb21fYWJzIHRvIDEgZm9yIF9fZWhkcl9zdGFydCB3aGljaCB3 aWxsIGJlIGNvbnZlcnRlZCBmcm9tCi1hYnNvbHV0ZSB0byBzZWN0aW9uLXJlbGF0aXZlIGluIGFz c2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfbG9hZF9zZWN0aW9ucy4KLQotCVBSIGxkLzI2ODY5Ci0J KiBsZGVsZi5jIChsZGVsZl9iZWZvcmVfYWxsb2NhdGlvbik6IFNldCByZWxfZnJvbV9hYnMgdG8g MSBmb3IKLQlfX2VoZHJfc3RhcnQuCi0JKiB0ZXN0c3VpdGUvbGQtaTM4Ni9pMzg2LmV4cDogUnVu IHByMjY4NjkuCi0JKiB0ZXN0c3VpdGUvbGQtaTM4Ni9wcjI2ODY5LmQ6IE5ldyBmaWxlLgotCSog dGVzdHN1aXRlL2xkLWkzODYvcHIyNjg2OS5zOiBMaWtld2lzZS4KLQotKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgY2JkNWI5OWNjZTA3MzI3M2Y2NjhiMTU0ZDQ1MTRlOGU3ZTdjY2M1MSkKLS0t LQotIGxkL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKysrKwotIGxkL2xk ZWxmLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCi0gbGQvdGVzdHN1aXRlL2xkLWkzODYv aTM4Ni5leHAgIHwgIDEgKwotIGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjY4NjkuZCB8IDE0ICsr KysrKysrKysrKysrCi0gbGQvdGVzdHN1aXRlL2xkLWkzODYvcHIyNjg2OS5zIHwgIDMgKysrCi0g NSBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGxk L3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjY4NjkuZAotIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0 c3VpdGUvbGQtaTM4Ni9wcjI2ODY5LnMKLQotZGlmZiAtLWdpdCBhL2xkL2xkZWxmLmMgYi9sZC9s ZGVsZi5jCi1pbmRleCBiYWRhM2FkZTJkNy4uODMxZDAzMmZlNTYgMTAwNjQ0Ci0tLS0gYS9sZC9s ZGVsZi5jCi0rKysgYi9sZC9sZGVsZi5jCi1AQCAtMTU4OSw2ICsxNTg5LDggQEAgbGRlbGZfYmVm b3JlX2FsbG9jYXRpb24gKGNoYXIgKmF1ZGl0LCBjaGFyICpkZXBhdWRpdCwKLSAJCSAgICAgIChj aGFyICopICZlaGRyX3N0YXJ0LT51ICsgc2l6ZW9mIGVoZHJfc3RhcnQtPnUuZGVmLm5leHQsCi0g CQkgICAgICBzaXplb2YgZWhkcl9zdGFydF9zYXZlX3UpOwotIAkgICAgICBlaGRyX3N0YXJ0LT50 eXBlID0gYmZkX2xpbmtfaGFzaF9kZWZpbmVkOwotKwkgICAgICAvKiBJdCB3aWxsIGJlIGNvbnZl cnRlZCB0byBzZWN0aW9uLXJlbGF0aXZlIGxhdGVyLiAgKi8KLSsJICAgICAgZWhkcl9zdGFydC0+ cmVsX2Zyb21fYWJzID0gMTsKLSAJICAgICAgZWhkcl9zdGFydC0+dS5kZWYuc2VjdGlvbiA9IGJm ZF9hYnNfc2VjdGlvbl9wdHI7Ci0gCSAgICAgIGVoZHJfc3RhcnQtPnUuZGVmLnZhbHVlID0gMDsK LSAJICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy9mZTM5ZmZkYzIw MmYwNDM5N2YzMTU1N2YxNzE3MGI0MGJjNDJiNzdhLnBhdGNoIGIvc3JjcGtncy9iaW51dGlscy9w YXRjaGVzL2ZlMzlmZmRjMjAyZjA0Mzk3ZjMxNTU3ZjE3MTcwYjQwYmM0MmI3N2EucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45Y2UwYThmZjlkNmQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvZmUzOWZmZGMyMDJmMDQzOTdm MzE1NTdmMTcxNzBiNDBiYzQyYjc3YS5wYXRjaApAQCAtMCwwICsxLDExODEgQEAKK0Zyb20gZmUz OWZmZGMyMDJmMDQzOTdmMzE1NTdmMTcxNzBiNDBiYzQyYjc3YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFZsYWRpbWlyIE1lemVudHNldiA8dmxhZGltaXIubWV6ZW50c2V2QG9yYWNs ZS5jb20+CitEYXRlOiBXZWQsIDE0IFNlcCAyMDIyIDAxOjExOjQ1IC0wNzAwCitTdWJqZWN0OiBb UEFUQ0hdIGdwcm9mbmc6IGZpeCBidWlsZCBpc3N1ZXMgb24gbXVzbAorCitncHJvZm5nL0NoYW5n ZUxvZworMjAyMi0wOS0xNCAgVmxhZGltaXIgTWV6ZW50c2V2ICA8dmxhZGltaXIubWV6ZW50c2V2 QG9yYWNsZS5jb20+CisKKwlQUiBncHJvZm5nLzI5NDc3CisJKiBjb25maWd1cmUuYWM6IFNldCBf X01VU0xfTElCQy4KKwkqIGNvbmZpZ3VyZTogUmVidWlsZC4KKwkqIGNvbW1vbi9jb25maWcuaC5p bjogUmVidWlsZC4KKwkqIHNyYy9jb2xsZWN0b3JfbW9kdWxlLmg6IEZpeCBjb21waWxlciBlcnJv cnMgYmVjYXVzZSBtbWFwNjQsIG9wZW42NCwKKwlwd3JpdGU2NCBhcmUgbWFjcm9zIGFuZCBnZXRj b250ZXh0KCkgaXMgYWJzZW50IG9uIG11c2wuCisJKiBsaWJjb2xsZWN0b3IvY29sbGVjdG9yLmM6 IExpa2V3aXNlLgorCSogbGliY29sbGVjdG9yL2h3cHJvZmlsZS5jOiBMaWtld2lzZS4KKwkqIGxp YmNvbGxlY3Rvci9pb2xpYi5jOiBMaWtld2lzZS4KKwkqIGxpYmNvbGxlY3Rvci9saWJjb2xfdXRp bC5jOiBMaWtld2lzZS4KKwkqIGxpYmNvbGxlY3Rvci9saW5ldHJhY2UuYzogTGlrZXdpc2UuCisJ KiBsaWJjb2xsZWN0b3IvbWVtbWdyLmM6IExpa2V3aXNlLgorCSogbGliY29sbGVjdG9yL3Byb2Zp bGUuYzogTGlrZXdpc2UuCisJKiBsaWJjb2xsZWN0b3IvdW53aW5kLmM6IExpa2V3aXNlLgorCSog bGliY29sbGVjdG9yL2Rpc3BhdGNoZXIuYzogTGlrZXdpc2UuCisJKiBzcmMvRXhwZXJpbWVudC5j YzogTGlrZXdpc2UuCisJKiBsaWJjb2xsZWN0b3IvY29sbGVjdG9yLmg6IFVzZSBkbHN5bSgpIGJl Y2F1c2UgZGx2c3ltKCkgaXMgbm90IGRlZmluZWQKKwlvbiBtdXNsLgorCSogbGliY29sbGVjdG9y L2lvdHJhY2UuYzogUmVtb3ZlIGludGVycG9zaXRpb24gb2YgdmVyc2lvbmVkIGZ1bmN0aW9ucy4K KwkqIGxpYmNvbGxlY3Rvci9tbWFwdHJhY2UuYzogTGlrZXdpc2UuCisJKiBsaWJjb2xsZWN0b3Iv bGliY29sX3V0aWwuaDogRml4IC1XaW50LXRvLXBvaW50ZXItY2FzdCB3YXJuaW5ncy4KKwkqIGxp YmNvbGxlY3Rvci9qcHJvZmlsZS5jOiBMaWtld2lzZS4KKwkqIGxpYmNvbGxlY3Rvci9zeW5jdHJh Y2UuYzogSW5jbHVkZSAiY29sbGVjdG9yLmgiLgorCSogc3JjL1ByaW50LmNjOiBVc2UgZ2V0X2Jh c2VuYW1lKCkgYmVjYXVzZSBiYXNlbmFtZSgpIGlzIG5vdCBkZWZpbmVkCisJb24gbXVzbC4KKwkq IGNvbW1vbi9od2NkcnYuYzogRml4IC1XZm9ybWF0PSB3YXJuaW5ncy4KKy0tLQorIGdwcm9mbmcv Y29tbW9uL2NvbmZpZy5oLmluICAgICAgICAgfCAgIDMgKworIGdwcm9mbmcvY29tbW9uL2h3Y2Ry di5jICAgICAgICAgICAgfCAgIDYgKy0KKyBncHJvZm5nL2NvbmZpZ3VyZSAgICAgICAgICAgICAg ICAgIHwgIDMwICsrKystCisgZ3Byb2ZuZy9jb25maWd1cmUuYWMgICAgICAgICAgICAgICB8ICAy NyArKysrLQorIGdwcm9mbmcvbGliY29sbGVjdG9yL2NvbGxlY3Rvci5jICAgfCAgIDkgKy0KKyBn cHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0b3IuaCAgIHwgICA2ICstCisgZ3Byb2ZuZy9saWJj b2xsZWN0b3IvZGlzcGF0Y2hlci5jICB8ICAgNCArLQorIGdwcm9mbmcvbGliY29sbGVjdG9yL2h3 cHJvZmlsZS5jICAgfCAgMTEgKy0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci9pb2xpYi5jICAgICAg IHwgIDUyICsrKystLS0tLQorIGdwcm9mbmcvbGliY29sbGVjdG9yL2lvdHJhY2UuYyAgICAgfCAx NzkgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci9q cHJvZmlsZS5jICAgIHwgICA2IC0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci9saWJjb2xfdXRpbC5j IHwgIDE5ICsrLQorIGdwcm9mbmcvbGliY29sbGVjdG9yL2xpYmNvbF91dGlsLmggfCAgIDkgKy0K KyBncHJvZm5nL2xpYmNvbGxlY3Rvci9saW5ldHJhY2UuYyAgIHwgICA0ICstCisgZ3Byb2ZuZy9s aWJjb2xsZWN0b3IvbWVtbWdyLmMgICAgICB8ICAgMiArLQorIGdwcm9mbmcvbGliY29sbGVjdG9y L21tYXB0cmFjZS5jICAgfCAxMzIgKysrKysrKystLS0tLS0tLS0tLS0tCisgZ3Byb2ZuZy9saWJj b2xsZWN0b3IvcHJvZmlsZS5jICAgICB8ICAgMiArLQorIGdwcm9mbmcvbGliY29sbGVjdG9yL3N5 bmN0cmFjZS5jICAgfCAgIDMgKy0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQuYyAgICAg IHwgICAyICstCisgZ3Byb2ZuZy9zcmMvRXhwZXJpbWVudC5jYyAgICAgICAgICB8ICAgNCArLQor IGdwcm9mbmcvc3JjL1ByaW50LmNjICAgICAgICAgICAgICAgfCAgIDYgKy0KKyBncHJvZm5nL3Ny Yy9jb2xsZWN0b3JfbW9kdWxlLmggICAgIHwgICA2ICstCisgMjIgZmlsZXMgY2hhbmdlZCwgMjc3 IGluc2VydGlvbnMoKyksIDI0NSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dwcm9mbmcv Y29tbW9uL2NvbmZpZy5oLmluIGIvZ3Byb2ZuZy9jb21tb24vY29uZmlnLmguaW4KK2luZGV4IDg0 MDljZTc0YTU3Li5mODQ4NGYyMzhmZCAxMDA2NDQKKy0tLSBhL2dwcm9mbmcvY29tbW9uL2NvbmZp Zy5oLmluCisrKysgYi9ncHJvZm5nL2NvbW1vbi9jb25maWcuaC5pbgorQEAgLTExOCwzICsxMTgs NiBAQAorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBuZWVkIHRvIGluIG9yZGVyIGZvciBgc3Rh dCcgYW5kIG90aGVyIHRoaW5ncyB0byB3b3JrLiAqLworICN1bmRlZiBfUE9TSVhfU09VUkNFCisr CisrLyogQnVpbGQgd2l0aCBtdXNsLWxpYmMuICovCisrI3VuZGVmIF9fTVVTTF9MSUJDCitkaWZm IC0tZ2l0IGEvZ3Byb2ZuZy9jb21tb24vaHdjZHJ2LmMgYi9ncHJvZm5nL2NvbW1vbi9od2NkcnYu YworaW5kZXggY2FhYjk4MzliNDkuLjA1MzkwZTIzOWRmIDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9j b21tb24vaHdjZHJ2LmMKKysrKyBiL2dwcm9mbmcvY29tbW9uL2h3Y2Rydi5jCitAQCAtNDQwLDcg KzQ0MCw3IEBAIHR5cGVkZWYgc3RydWN0CisgeyAvLyBwZXItdGhyZWFkIGNvbnRleHQKKyAgIGNv dW50ZXJfc3RhdGVfdCAqY3RyX2xpc3Q7CisgICBpbnQgc2lnbmFsX2ZkOyAgICAgICAgICAgICAg ICAvLyBmZCB0aGF0IGNhdXNlZCB0aGUgbW9zdCByZWNlbnQgc2lnbmFsCistICBwdGhyZWFkX3Qg dGlkOyAgICAgICAgICAgICAgICAvLyBmb3IgZGVidWdnaW5nIHNpZ25hbCBkZWxpdmVyeSBwcm9i bGVtcworKyAgcGlkX3QgdGlkOwkJCS8vIGZvciBkZWJ1Z2dpbmcgc2lnbmFsIGRlbGl2ZXJ5IHBy b2JsZW1zCisgfSBoZHJ2X3BjbF9jdHhfdDsKKyAKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitA QCAtMTMyMSw3ICsxMzIxLDcgQEAgaHdjZHJ2X2ZyZWVfY291bnRlcnMgKCkgLy8gbm90ZTogb25s eSBwZXJmb3JtcyBzaHV0ZG93biBmb3IgdGhpcyB0aHJlYWQKKyAgIGZvciAoaW50IGlpID0gMDsg aWkgPCBoZHJ2X3BjbF9zdGF0ZS5od2NkZWZfY250OyBpaSsrKQorICAgICBpZiAoc3RvcF9vbmVf Y3RyIChpaSwgY3RyX2xpc3QpKQorICAgICAgIGh3Y19yYyA9IEhXQ0ZVTkNTX0VSUk9SX0dFTkVS SUM7CistICBUcHJpbnRmVCAoREJHX0xUMSwgImh3Y2RydjogaHdjZHJ2X2ZyZWVfY291bnRlcnMo dGlkPTB4JWx4KS5cbiIsIHBjdHgtPnRpZCk7CisrICBUcHJpbnRmVCAoREJHX0xUMSwgImh3Y2Ry djogaHdjZHJ2X2ZyZWVfY291bnRlcnModGlkPTB4JWx4KS5cbiIsIChsb25nKSBwY3R4LT50aWQp OworICAgcGN0eC0+Y3RyX2xpc3QgPSBOVUxMOworICAgcmV0dXJuIGh3Y19yYzsKKyB9CitAQCAt MTM1MSw3ICsxMzUxLDcgQEAgaHdjZHJ2X3N0YXJ0ICh2b2lkKSAvKiBtdXN0IGJlIGNhbGxlZCBm cm9tIGVhY2ggdGhyZWFkID8gKi8KKyAgICAgICByZXR1cm4gSFdDRlVOQ1NfRVJST1JfVU5FWFBF Q1RFRDsKKyAgICAgfQorICAgcGN0eC0+dGlkID0gaHdjZHJ2X2dldHRpZCAoKTsKKy0gIFRwcmlu dGZUIChEQkdfTFQxLCAiaHdjZHJ2OiBod2NkcnZfc3RhcnQodGlkPTB4JWx4KVxuIiwgcGN0eC0+ dGlkKTsKKysgIFRwcmludGZUIChEQkdfTFQxLCAiaHdjZHJ2OiBod2NkcnZfc3RhcnQodGlkPTB4 JWx4KVxuIiwgKGxvbmcpIHBjdHgtPnRpZCk7CisgCisgICAvKgorICAgICogY3JlYXRlIHBlci10 aHJlYWQgY291bnRlciBsaXN0CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9jb25maWd1cmUgYi9ncHJv Zm5nL2NvbmZpZ3VyZQoraW5kZXggZmFkNWIwMzAwNzIuLjMwMWFjMTAwNTBiIDEwMDc1NQorLS0t IGEvZ3Byb2ZuZy9jb25maWd1cmUKKysrKyBiL2dwcm9mbmcvY29uZmlndXJlCitAQCAtMTY1NzIs NyArMTY1NzIsNyBAQCBjbGFzcyBTaW1wbGV7CisgICB9CisgfQorIEVPRgorLSAgICAgIGlmIHsg YWNfdHJ5PSckSkFWQUMgY29uZnRlc3QuamF2YSAmNSAyPiYxJworKyAgICAgIGlmIHsgYWNfdHJ5 PSckSkFWQUMgY29uZmlndGVzdC5qYXZhICY1IDI+JjEnCisgICB7IHsgZXZhbCBlY2hvICJcIlwk YXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfdHJ5XCIiOyB9ID4mNQorICAgKGV2 YWwgJGFjX3RyeSkgMj4mNQorICAgYWNfc3RhdHVzPSQ/CitAQCAtMTY2MDgsNiArMTY2MDgsMzQg QEAgJGFzX2VjaG8gIiNkZWZpbmUgREVCVUcgMSIgPj5jb25mZGVmcy5oCisgCisgZmkKKyAKKytj YXQgPiAiZHVtbXkuYyIgPDwgRU9GCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrI2lmIGRlZmlu ZWQoX19VQ0xJQkNfXykKKytMSUJDPXVjbGliYworKyNlbGlmIGRlZmluZWQoX19kaWV0bGliY19f KQorK0xJQkM9ZGlldGxpYmMKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKytMSUJDPWdudQor KyNlbHNlCisrI2luY2x1ZGUgPHN0ZGFyZy5oPgorKy8qIEZpcnN0IGhldXJpc3RpYyB0byBkZXRl Y3QgbXVzbCBsaWJjLiAgKi8KKysjaWZkZWYgX19ERUZJTkVEX3ZhX2xpc3QKKytMSUJDPW11c2wK KysjZWxzZQorK0xJQkM9Z251CisrI2VuZGlmCisrI2VuZGlmCisrRU9GCisrY2Nfc2V0X2xpYmM9 YCRDQyAtRSAiZHVtbXkuYyIgMj4vZGV2L251bGwgfCBncmVwICdeTElCQz0nIHwgc2VkICdzLCAs LGcnYAorK2V2YWwgIiRjY19zZXRfbGliYyIKKytlY2hvICJjY19zZXRfbGliYz0kY2Nfc2V0X2xp YmM7IgorK2lmIHRlc3QgIiRMSUJDIiA9IG11c2w7IHRoZW4KKysKKyskYXNfZWNobyAiI2RlZmlu ZSBfX01VU0xfTElCQyAxIiA+PmNvbmZkZWZzLmgKKysKKytmaQorKworKworICMgQ2hlY2sgaWYg bGlua2VyIHN1cHBvcnRzIC0tYXMtbmVlZGVkIGFuZCAtLW5vLWFzLW5lZWRlZCBvcHRpb25zLgor IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgbGlua2Vy IC0tYXMtbmVlZGVkIHN1cHBvcnQiID4mNQorICRhc19lY2hvX24gImNoZWNraW5nIGxpbmtlciAt LWFzLW5lZWRlZCBzdXBwb3J0Li4uICIgPiY2OyB9CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9jb25m aWd1cmUuYWMgYi9ncHJvZm5nL2NvbmZpZ3VyZS5hYworaW5kZXggZTk0NTMxMDk2MDIuLjJkNzY0 MGRmZGM4IDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9jb25maWd1cmUuYWMKKysrKyBiL2dwcm9mbmcv Y29uZmlndXJlLmFjCitAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNzIFNpbXBsZXsKKyAgIH0KKyB9 CisgRU9GCistICAgICAgaWYgQUNfVFJZX0NPTU1BTkQoJEpBVkFDIGNvbmZ0ZXN0LmphdmEgJkFT X01FU1NBR0VfTE9HX0ZEIDI+JjEpOyB0aGVuCisrICAgICAgaWYgQUNfVFJZX0NPTU1BTkQoJEpB VkFDIGNvbmZpZ3Rlc3QuamF2YSAmQVNfTUVTU0FHRV9MT0dfRkQgMj4mMSk7IHRoZW4KKyAJR1BS T0ZOR19CUk9LRU5fSkFWQUM9bm8KKyAgICAgICBlbHNlCisgCUdQUk9GTkdfQlJPS0VOX0pBVkFD PXllcworQEAgLTE1OSw2ICsxNTksMzEgQEAgaWYgdGVzdCAiJHtlbmFibGVfZ3Byb2ZuZ19kZWJ1 Z30iID0geWVzOyB0aGVuCisgICAgIEFDX0RFRklORShERUJVRywgMSwgW0VuYWJsZSBkZWJ1Z2dp bmcgb3V0cHV0Ll0pCisgZmkKKyAKKytjYXQgPiAiZHVtbXkuYyIgPDwgRU9GCisrI2luY2x1ZGUg PGZlYXR1cmVzLmg+CisrI2lmIGRlZmluZWQoX19VQ0xJQkNfXykKKytMSUJDPXVjbGliYworKyNl bGlmIGRlZmluZWQoX19kaWV0bGliY19fKQorK0xJQkM9ZGlldGxpYmMKKysjZWxpZiBkZWZpbmVk KF9fR0xJQkNfXykKKytMSUJDPWdudQorKyNlbHNlCisrI2luY2x1ZGUgPHN0ZGFyZy5oPgorKy8q IEZpcnN0IGhldXJpc3RpYyB0byBkZXRlY3QgbXVzbCBsaWJjLiAgKi8KKysjaWZkZWYgX19ERUZJ TkVEX3ZhX2xpc3QKKytMSUJDPW11c2wKKysjZWxzZQorK0xJQkM9Z251CisrI2VuZGlmCisrI2Vu ZGlmCisrRU9GCisrY2Nfc2V0X2xpYmM9YCRDQyAtRSAiZHVtbXkuYyIgMj4vZGV2L251bGwgfCBn cmVwICdeTElCQz0nIHwgc2VkICdzLCAsLGcnYAorK2V2YWwgIiRjY19zZXRfbGliYyIKKytpZiB0 ZXN0ICIkTElCQyIgPSBtdXNsOyB0aGVuCisrICBBQ19ERUZJTkUoX19NVVNMX0xJQkMsIDEsIFtC dWlsZCB3aXRoIG11c2wtbGliYy5dKQorK2ZpCisrCisrCisgIyBDaGVjayBpZiBsaW5rZXIgc3Vw cG9ydHMgLS1hcy1uZWVkZWQgYW5kIC0tbm8tYXMtbmVlZGVkIG9wdGlvbnMuCisgQUNfQ0FDSEVf Q0hFQ0sobGlua2VyIC0tYXMtbmVlZGVkIHN1cHBvcnQsIGJmZF9jdl9sZF9hc19uZWVkZWQsCisg CVtiZmRfY3ZfbGRfYXNfbmVlZGVkPW5vCitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0 b3IvY29sbGVjdG9yLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0b3IuYworaW5kZXgg Y2VmZjJjMWNhY2MuLjkzMDE1MzA1NTg3IDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0 b3IvY29sbGVjdG9yLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2NvbGxlY3Rvci5jCitA QCAtMjE1NSw3ICsyMTU1LDcgQEAgbG9nX2hlYWRlcl93cml0ZSAoc3Bfb3JpZ2luX3Qgb3JpZ2lu KQorICAgdWNvbnRleHRfdCB1Y3A7CisgICB1Y3AudWNfc3RhY2suc3Nfc3AgPSBOVUxMOworICAg dWNwLnVjX3N0YWNrLnNzX3NpemUgPSAwOworLSAgaWYgKGdldGNvbnRleHQgKCZ1Y3ApID09IDAp CisrICBpZiAoQ0FMTF9VVElMIChnZXRjb250ZXh0KSAoJnVjcCkgPT0gMCkKKyAgICAgeworICAg ICAgICh2b2lkKSBfX2NvbGxlY3Rvcl9sb2dfd3JpdGUgKCI8cHJvY2VzcyBzdGFja2Jhc2U9XCIw eCVseFwiPjwvcHJvY2Vzcz5cbiIsCisgCQkJCSAgICAodW5zaWduZWQgbG9uZykgdWNwLnVjX3N0 YWNrLnNzX3NwICsgdWNwLnVjX3N0YWNrLnNzX3NpemUpOworQEAgLTI0MTMsMTAgKzI0MTMsOSBA QCBfX2NvbGxlY3Rvcl9kbG9nIChpbnQgdGZsYWcsIGludCBsZXZlbCwgY2hhciAqZm9ybWF0LCAu Li4pCisgICBpbnQgbGVmdCA9IGJ1ZnN6OworICAgaWYgKCh0ZmxhZyAmIFNQX0RVTVBfTk9IRUFE RVIpID09IDApCisgICAgIHsKKy0gICAgICBwICs9IENBTExfVVRJTCAoc25wcmludGYpKHAsIGxl ZnQsICJQJWQsTCUwMnUsdCUwMmx1IiwKKy0JCQkJKGludCkgZ2V0cGlkICgpLAorLQkJCQkodW5z aWduZWQgaW50KSBfX2NvbGxlY3Rvcl9sd3Bfc2VsZiAoKSwKKy0JCQkJX19jb2xsZWN0b3Jfbm9f dGhyZWFkcyA/IDAgOiBfX2NvbGxlY3Rvcl90aHJfc2VsZiAoKSk7CisrICAgICAgcCArPSBDQUxM X1VUSUwgKHNucHJpbnRmKSAocCwgbGVmdCwgIlAlbGQsTCUwMmx1LHQlMDJsdSIsCisrCSAobG9u ZykgZ2V0cGlkICgpLCAodW5zaWduZWQgbG9uZykgX19jb2xsZWN0b3JfbHdwX3NlbGYgKCksCisr CSAodW5zaWduZWQgbG9uZykgKF9fY29sbGVjdG9yX25vX3RocmVhZHMgPyAwIDogX19jb2xsZWN0 b3JfdGhyX3NlbGYgKCkpKTsKKyAgICAgICBsZWZ0ID0gYnVmc3ogLSAocCAtIGJ1Zik7CisgICAg ICAgaWYgKHRmbGFnKQorIAl7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvY29s bGVjdG9yLmggYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0b3IuaAoraW5kZXggYzU0NTY4 ZDg5MWMuLmI1ODlkM2YzZDE4IDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvY29s bGVjdG9yLmgKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2NvbGxlY3Rvci5oCitAQCAtMjEs NyArMjEsNiBAQAorICNpZm5kZWYgX0NPTExFQ1RPUl9ICisgI2RlZmluZSBfQ09MTEVDVE9SX0gK KyAKKy0jaW5jbHVkZSA8dWNvbnRleHQuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgCisgI2lu Y2x1ZGUgImdwLWRlZnMuaCIKK0BAIC0zMSw2ICszMCwxMSBAQAorIAorICNkZWZpbmUgR0VUUkVM VElNRSgpICAgIChfX2NvbGxlY3Rvcl9nZXRocnRpbWUoKSAtIF9fY29sbGVjdG9yX3N0YXJ0X3Rp bWUpCisgCisrI2lmIGRlZmluZWQoX19NVVNMX0xJQkMpCisrI2RlZmluZSBkbHZzeW0oZiwgbm0s IHYpICBkbHN5bSAoZiwgbm0pCisrI2RlZmluZSBTSUdFVl9USFJFQURfSUQgICA0CisrI2VuZGlm CisrCisgZXh0ZXJuIGhydGltZV90IF9fY29sbGVjdG9yX3N0YXJ0X3RpbWU7CisgCisgLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq LworZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL2Rpc3BhdGNoZXIuYyBiL2dwcm9m bmcvbGliY29sbGVjdG9yL2Rpc3BhdGNoZXIuYworaW5kZXggZjAzMDg2MDVkNzYuLmQzZTRjNTJk NjY3IDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvZGlzcGF0Y2hlci5jCisrKysg Yi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9kaXNwYXRjaGVyLmMKK0BAIC0zMCw5ICszMCw3IEBACisg I2luY2x1ZGUgPHVuaXN0ZC5oPgorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAjaW5jbHVkZSA8c3Ry aW5nLmg+CistI2luY2x1ZGUgPHVjb250ZXh0Lmg+CisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgor LSNpbmNsdWRlIDxzeXMvc2lnbmFsLmg+CisgI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisgI2lu Y2x1ZGUgPHRpbWUuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CitAQCAtNTc1LDcgKzU3Myw5IEBA IGNvbGxlY3Rvcl90aW1lcl9jcmVhdGUgKHRpbWVyX3QgKiBwdGltZXJpZCkKKyAgIHNpZ2V2LnNp Z2V2X25vdGlmeSA9IFNJR0VWX1RIUkVBRF9JRCB8IFNJR0VWX1NJR05BTDsKKyAgIHNpZ2V2LnNp Z2V2X3NpZ25vID0gU0lHUFJPRjsKKyAgIHNpZ2V2LnNpZ2V2X3ZhbHVlLnNpdmFsX3B0ciA9IHB0 aW1lcmlkOworKyNpZiAhZGVmaW5lZChfX01VU0xfTElCQykKKyAgIHNpZ2V2Ll9zaWdldl91bi5f dGlkID0gX19jb2xsZWN0b3JfZ2V0dGlkICgpOworKyNlbmRpZgorICAgaWYgKENBTExfUkVBTCAo dGltZXJfY3JlYXRlKShDTE9DS19USFJFQURfQ1BVVElNRV9JRCwgJnNpZ2V2LCBwdGltZXJpZCkg PT0gLTEpCisgICAgIHsKKyAgICAgICBUcHJpbnRmVCAoREJHX0xUMiwgImNvbGxlY3Rvcl90aW1l cl9zZXR0aW1lKCkgZmFpbGVkISBlcnJubz0lZFxuIiwgZXJybm8pOworZGlmZiAtLWdpdCBhL2dw cm9mbmcvbGliY29sbGVjdG9yL2h3cHJvZmlsZS5jIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvaHdw cm9maWxlLmMKK2luZGV4IDZmZGFmMWJkOGZmLi5lMzYwMDY4ZWEzMCAxMDA2NDQKKy0tLSBhL2dw cm9mbmcvbGliY29sbGVjdG9yL2h3cHJvZmlsZS5jCisrKysgYi9ncHJvZm5nL2xpYmNvbGxlY3Rv ci9od3Byb2ZpbGUuYworQEAgLTI5LDcgKzI5LDYgQEAKKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAj aW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CistI2luY2x1ZGUg PHVjb250ZXh0Lmg+CisgCisgI2luY2x1ZGUgImdwLWRlZnMuaCIKKyAjZGVmaW5lIF9TVFJJTkdf SCAxICAvKiBYWFggTUVaOiB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCAqLworQEAgLTM3OCwyMyArMzc3 LDIzIEBAIHN0YXRpYyB2b2lkCisgaW5pdF91Y29udGV4dHMgKHZvaWQpCisgeworICAgLyogaW5p dGlhbGl6ZSBkdW1teSBjb250ZXh0IGZvciAiY29sbGVjdG9yIiBmcmFtZXMgKi8KKy0gIGdldGNv bnRleHQgKCZleHByX2R1bW15X3VjKTsKKysgIENBTExfVVRJTCAoZ2V0Y29udGV4dCkgKCZleHBy X2R1bW15X3VjKTsKKyAgIFNFVEZVTkNUSU9OQ09OVEVYVCAoJmV4cHJfZHVtbXlfdWMsIE5VTEwp OworIAorICAgLyogaW5pdGlhbGl6ZSBkdW1teSBjb250ZXh0IGZvciAib3V0LW9mLXJhbmdlIiBm cmFtZXMgKi8KKy0gIGdldGNvbnRleHQgKCZleHByX291dF9vZl9yYW5nZV91Yyk7CisrICBDQUxM X1VUSUwgKGdldGNvbnRleHQpICgmZXhwcl9vdXRfb2ZfcmFuZ2VfdWMpOworICAgU0VURlVOQ1RJ T05DT05URVhUICgmZXhwcl9vdXRfb2ZfcmFuZ2VfdWMsICZfX2NvbGxlY3Rvcl9od2NzX291dF9v Zl9yYW5nZSk7CisgCisgICAvKiBpbml0aWFsaXplIGR1bW15IGNvbnRleHQgZm9yICJmcm96ZW4i IGZyYW1lcyAqLworLSAgZ2V0Y29udGV4dCAoJmV4cHJfZnJvemVuX3VjKTsKKysgIENBTExfVVRJ TCAoZ2V0Y29udGV4dCkgKCZleHByX2Zyb3plbl91Yyk7CisgICBTRVRGVU5DVElPTkNPTlRFWFQg KCZleHByX2Zyb3plbl91YywgJl9fY29sbGVjdG9yX2h3Y3NfZnJvemVuKTsKKyAKKyAgIC8qIGlu aXRpYWxpemUgZHVtbXkgY29udGV4dCBmb3Igbm9uLXByb2dyYW0tcmVsYXRlZCBmcmFtZXMgKi8K Ky0gIGdldGNvbnRleHQgKCZleHByX25vcGNfdWMpOworKyAgQ0FMTF9VVElMIChnZXRjb250ZXh0 KSAoJmV4cHJfbm9wY191Yyk7CisgICBTRVRGVU5DVElPTkNPTlRFWFQgKCZleHByX25vcGNfdWMs ICZfX2NvbGxlY3Rvcl9ub3RfcHJvZ3JhbV9yZWxhdGVkKTsKKyAKKyAgIC8qIGluaXRpYWxpemUg ZHVtbXkgY29udGV4dCBmb3IgbG9zdC1jb3VudHMtcmVsYXRlZCBmcmFtZXMgKi8KKy0gIGdldGNv bnRleHQgKCZleHByX2xvc3Rjb3VudHNfdWMpOworKyAgQ0FMTF9VVElMIChnZXRjb250ZXh0KSAo JmV4cHJfbG9zdGNvdW50c191Yyk7CisgICBTRVRGVU5DVElPTkNPTlRFWFQgKCZleHByX2xvc3Rj b3VudHNfdWMsICZfX2NvbGxlY3Rvcl9od2Nfc2FtcGxlc19sb3N0KTsKKyB9CisgLyogaW5pdGlh bGl6ZSB0aGUgc2lnbmFsIGhhbmRsZXIgKi8KK2RpZmYgLS1naXQgYS9ncHJvZm5nL2xpYmNvbGxl Y3Rvci9pb2xpYi5jIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvaW9saWIuYworaW5kZXggNjg4MWYw MmZkMzAuLjg2MTg0M2MxODNkIDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvaW9s aWIuYworKysrIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvaW9saWIuYworQEAgLTI0MywxNiArMjQz LDE0IEBAIF9fY29sbGVjdG9yX2NyZWF0ZV9oYW5kbGUgKGNoYXIgKmRlc2NwKQorICAgICB7Cisg ICAgICAgLyogYWxsb2NhdGUgb3VyIGJ1ZmZlcnMgaW4gdmlydHVhbCBtZW1vcnkgKi8KKyAgICAg ICAvKiBsYXRlciwgd2Ugd2lsbCByZW1hcCBidWZmZXJzIGluZGl2aWR1YWxseSB0byB0aGUgZmls ZSAqLworLSAgICAgIHVpbnQ4X3QgKm1lbW9yeSA9ICh1aW50OF90KikgQ0FMTF9VVElMIChtbWFw NjQpKDAsCistCQkJCQkJICAgICAgKHNpemVfdCkgKE5CVUZTICogYmxrc3opLAorLQkJCQkJCSAg ICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisrICAgICAgdWludDhfdCAqbWVtb3J5ID0gKHVp bnQ4X3QqKSBDQUxMX1VUSUwgKG1tYXA2NF8pICgwLAorKwkgICAgICAoc2l6ZV90KSAoTkJVRlMg KiBibGtzeiksIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisgI2lmIEFSQ0goU1BBUkMpCisgCSAg ICAgIE1BUF9TSEFSRUQgfCBNQVBfQU5PTiwKKyAjZWxzZQorIAkgICAgICBNQVBfUFJJVkFURSB8 IE1BUF9BTk9OLAorICNlbmRpZgorLQkgICAgICAtMSwKKy0JCQkJCQkgICAgICAob2ZmNjRfdCkg MCk7CisrCSAgICAgIC0xLCAob2ZmNjRfdCkgMCk7CisgICAgICAgaWYgKG1lbW9yeSA9PSBNQVBf RkFJTEVEKQorIAl7CisgCSAgVHByaW50ZlQgKDAsICJjcmVhdGVfaGFuZGxlOiBjYW4ndCBtbWFw IE1BUF9BTk9OIChmb3IgJXMpOiAlc1xuIiwgaG5kbC0+Zm5hbWUsIENBTExfVVRJTCAoc3RyZXJy b3IpKGVycm5vKSk7CitAQCAtNTE2LDkgKzUxNCw4IEBAIGFsbG9jYXRlQ2h1bmsgKERhdGFIYW5k bGUgKmhuZGwsIHVuc2lnbmVkIGljaHVuaykKKyAgICAgICBpZiAoX19jb2xsZWN0b3JfY2FzX3B0 ciAoJmhuZGwtPmNodW5rc1tpY2h1bmtdLCBOVUxMLCBDSFVOS19CVVNZKSA9PSBOVUxMKQorIAl7 CisgCSAgLyogYWxsb2NhdGUgdmlydHVhbCBtZW1vcnkgKi8KKy0JICB1aW50OF90ICpuZXdjaHVu ayA9ICh1aW50OF90KikgQ0FMTF9VVElMIChtbWFwNjQpKDAsCistCQkJCQkJCSAgICAoc2l6ZV90 KSAoYmxrc3ogKiBobmRsLT5uZmxvdyksCistCQkJCQkJCSAgICBQUk9UX1JFQUQgfCBQUk9UX1dS SVRFLAorKwkgIHVpbnQ4X3QgKm5ld2NodW5rID0gKHVpbnQ4X3QqKSBDQUxMX1VUSUwgKG1tYXA2 NF8pICgwLAorKwkJICAoc2l6ZV90KSAoYmxrc3ogKiBobmRsLT5uZmxvdyksIFBST1RfUkVBRCB8 IFBST1RfV1JJVEUsCisgI2lmIEFSQ0goU1BBUkMpCisgCQkgIE1BUF9TSEFSRUQgfCBNQVBfQU5P TiwKKyAjZWxzZQorQEAgLTYxMSw4ICs2MDgsMTAgQEAgcmVtYXBCbG9jayAoRGF0YUhhbmRsZSAq aG5kbCwgdW5zaWduZWQgaWZsb3csIHVuc2lnbmVkIGljaHVuaykKKyAJCSAgY2hhciBlcnJtc2db TUFYUEFUSExFTiArIDUwXTsKKyAJCSAgaHJ0aW1lX3QgdGVvID0gX19jb2xsZWN0b3JfZ2V0aHJ0 aW1lICgpOworIAkJICBkb3VibGUgZGVsdGF0byA9IChkb3VibGUpICh0ZW8gLSB0c28pIC8gMTAw MDAwMC47CistCQkgICh2b2lkKSBDQUxMX1VUSUwgKHNucHJpbnRmKSAoZXJybXNnLCBzaXplb2Yg KGVycm1zZyksICIgdD0lZCwgJXM6IG9wZW4tcmV0cmllcy1mYWlsZWQgPSAlZCwgJTMuNmYgbXMu OyByZW1hcCIsCistCQkJCQkgICAgICAgX19jb2xsZWN0b3JfdGhyX3NlbGYgKCksIGhuZGwtPmZu YW1lLCBpdGVyLCBkZWx0YXRvKTsKKysJCSAgKHZvaWQpIENBTExfVVRJTCAoc25wcmludGYpIChl cnJtc2csIHNpemVvZiAoZXJybXNnKSwKKysJCQkiIHQ9JWx1LCAlczogb3Blbi1yZXRyaWVzLWZh aWxlZD0lZCwgJTMuNmYgbXMuOyByZW1hcFxuIiwKKysJCQkodW5zaWduZWQgbG9uZykgX19jb2xs ZWN0b3JfdGhyX3NlbGYgKCksIGhuZGwtPmZuYW1lLAorKwkJCWl0ZXIsIGRlbHRhdG8pOworIAkJ ICBfX2NvbGxlY3Rvcl9sb2dfd3JpdGUgKCI8ZXZlbnQga2luZD1cIiVzXCIgaWQ9XCIlZFwiPiVz PC9ldmVudD5cbiIsCisgCQkJCQkgU1BfSkNNRF9DT01NRU5ULCBDT0xfQ09NTUVOVF9OT05FLCBl cnJtc2cpOworIAkJICByYyA9IDE7CitAQCAtNjIzLDkgKzYyMiw5IEBAIHJlbWFwQmxvY2sgKERh dGFIYW5kbGUgKmhuZGwsIHVuc2lnbmVkIGlmbG93LCB1bnNpZ25lZCBpY2h1bmspCisgCSAgICB9 CisgCSAgZGVsZXRlSGFuZGxlIChobmRsKTsKKyAJICBUcHJpbnRmVCAoMCwgInJlbWFwQmxvY2s6 IGNhbid0IG9wZW4gZmlsZTogJXM6ICVzXG4iLCBobmRsLT5mbmFtZSwgU1RSIChDQUxMX1VUSUwg KHN0cmVycm9yKShlcnJubykpKTsKKy0JICBfX2NvbGxlY3Rvcl9sb2dfd3JpdGUgKCI8ZXZlbnQg a2luZD1cIiVzXCIgaWQ9XCIlZFwiIGVjPVwiJWRcIj50PSVsbHUsICVzOiByZW1hcCA8L2V2ZW50 PlxuIiwKKysJICBfX2NvbGxlY3Rvcl9sb2dfd3JpdGUgKCI8ZXZlbnQga2luZD1cIiVzXCIgaWQ9 XCIlZFwiIGVjPVwiJWRcIj50PSVsdSwgJXM6IHJlbWFwIDwvZXZlbnQ+XG4iLAorIAkJCQkgU1Bf SkNNRF9DRVJST1IsIENPTF9FUlJPUl9GSUxFT1BOLCBlcnJubywKKy0JCQkJICh1bnNpZ25lZCBs b25nIGxvbmcpIF9fY29sbGVjdG9yX3Rocl9zZWxmICgpLAorKwkJCQkgKHVuc2lnbmVkIGxvbmcp IF9fY29sbGVjdG9yX3Rocl9zZWxmICgpLAorIAkJCQkgaG5kbC0+Zm5hbWUpOworIAkgIHJjID0g MTsKKyAJICBnb3RvIGV4aXQ7CitAQCAtNjQwLDE1ICs2MzksMTggQEAgcmVtYXBCbG9jayAoRGF0 YUhhbmRsZSAqaG5kbCwgdW5zaWduZWQgaWZsb3csIHVuc2lnbmVkIGljaHVuaykKKyAgICAgICBj aGFyIGVycm1zZ1tNQVhQQVRITEVOICsgNTBdOworICAgICAgIGhydGltZV90IHRlbyA9IF9fY29s bGVjdG9yX2dldGhydGltZSAoKTsKKyAgICAgICBkb3VibGUgZGVsdGF0byA9IChkb3VibGUpICh0 ZW8gLSB0c28pIC8gMTAwMDAwMC47CistICAgICAgKHZvaWQpIENBTExfVVRJTCAoc25wcmludGYp IChlcnJtc2csIHNpemVvZiAoZXJybXNnKSwgIiB0PSVkLCAlczogb3Blbi1yZXRyaWVzID0gJWQs ICUzLjZmIG1zLjsgcmVtYXAiLAorLQkJCQkgICBfX2NvbGxlY3Rvcl90aHJfc2VsZiAoKSwgaG5k bC0+Zm5hbWUsIGl0ZXIsIGRlbHRhdG8pOworKyAgICAgICh2b2lkKSBDQUxMX1VUSUwgKHNucHJp bnRmKSAoZXJybXNnLCBzaXplb2YgKGVycm1zZyksCisrCSAgICAgICIgdD0lZCwgJXM6IG9wZW4t cmV0cmllcz0lbHUsICUzLjZmIG1zLjsgcmVtYXBcbiIsCisrCSAgICAgICh1bnNpZ25lZCBsb25n KSBfX2NvbGxlY3Rvcl90aHJfc2VsZiAoKSwgaG5kbC0+Zm5hbWUsCisrCSAgICAgIGl0ZXIsIGRl bHRhdG8pOworICAgICAgIF9fY29sbGVjdG9yX2xvZ193cml0ZSAoIjxldmVudCBraW5kPVwiJXNc IiBpZD1cIiVkXCI+JXM8L2V2ZW50PlxuIiwKKyAJCQkgICAgIFNQX0pDTURfQ09NTUVOVCwgQ09M X0NPTU1FTlRfTk9ORSwgZXJybXNnKTsKKyAgICAgfQorIAorICAgLyogRW5zdXJlIGRpc2sgc3Bh Y2UgaXMgYWxsb2NhdGVkIGFuZCB0aGUgYmxvY2sgb2Zmc2V0IGlzIDAgKi8KKyAgIHVpbnQzMl90 IHplcm8gPSAwOworLSAgaW50IG4gPSBDQUxMX1VUSUwgKHB3cml0ZTY0KShmZCwgJnplcm8sIHNp emVvZiAoemVybyksIChvZmY2NF90KSAob2Zmc2V0ICsgYmxrc3ogLSBzaXplb2YgKHplcm8pKSk7 CisrICBpbnQgbiA9IENBTExfVVRJTCAocHdyaXRlNjRfKSAoZmQsICZ6ZXJvLCBzaXplb2YgKHpl cm8pLAorKwkJCQkob2ZmNjRfdCkgKG9mZnNldCArIGJsa3N6IC0gc2l6ZW9mICh6ZXJvKSkpOwor ICAgaWYgKG4gPD0gMCkKKyAgICAgeworICAgICAgIGRlbGV0ZUhhbmRsZSAoaG5kbCk7CitAQCAt NjYzLDEzICs2NjUsOSBAQCByZW1hcEJsb2NrIChEYXRhSGFuZGxlICpobmRsLCB1bnNpZ25lZCBp ZmxvdywgdW5zaWduZWQgaWNodW5rKQorIAorICAgLyogTWFwIGJsb2NrIHRvIGZpbGUgKi8KKyAg IHVpbnQ4X3QgKmJwdHIgPSBnZXRCbG9jayAoaG5kbCwgaWZsb3csIGljaHVuayk7CistICB1aW50 OF90ICp2YWRkciA9ICh1aW50OF90ICopIENBTExfVVRJTCAobW1hcDY0KSgKKy0JCQkJCQkgICh2 b2lkKikgYnB0ciwKKy0JCQkJCQkgIChzaXplX3QpIGJsa3N6LAorLQkJCQkJCSAgUFJPVF9SRUFE IHwgUFJPVF9XUklURSwKKy0JCQkJCQkgIE1BUF9TSEFSRUQgfCBNQVBfRklYRUQsCistCQkJCQkJ ICBmZCwKKy0JCQkJCQkgIG9mZnNldCk7CisrICB1aW50OF90ICp2YWRkciA9ICh1aW50OF90ICop IENBTExfVVRJTCAobW1hcDY0XykgKCh2b2lkKikgYnB0ciwKKysJICAoc2l6ZV90KSBibGtzeiwg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCB8IE1BUF9GSVhFRCwKKysJICBmZCwg b2Zmc2V0KTsKKyAKKyAgIGlmICh2YWRkciAhPSBicHRyKQorICAgICB7CitAQCAtNzg0LDggKzc4 Miw5IEBAIF9fY29sbGVjdG9yX3dyaXRlX3BhY2tldCAoRGF0YUhhbmRsZSAqaG5kbCwgQ01fUGFj a2V0ICpwY2t0KQorICAgICAgIFRwcmludGZUICgwLCAiY29sbGVjdG9yX3dyaXRlX3BhY2tldDog cGFja2V0IHRvbyBsb25nOiAlZCAobWF4ICVsZClcbiIsIHJlY3N6LCBibGtzeik7CisgICAgICAg cmV0dXJuIDE7CisgICAgIH0KKy0gIHVuc2lnbmVkIHRpZCA9IChfX2NvbGxlY3Rvcl9ub190aHJl YWRzID8gX19jb2xsZWN0b3JfbHdwX3NlbGYgKCkgOiBfX2NvbGxlY3Rvcl90aHJfc2VsZiAoKSk7 CistICB1bnNpZ25lZCBpZmxvdyA9IHRpZCAlIGhuZGwtPm5mbG93OworKyAgY29sbGVjdG9yX3Ro cmVhZF90IHRpZCA9IF9fY29sbGVjdG9yX25vX3RocmVhZHMgPyBfX2NvbGxlY3Rvcl9sd3Bfc2Vs ZiAoKQorKwkJCQkJCSAgOiBfX2NvbGxlY3Rvcl90aHJfc2VsZiAoKTsKKysgIHVuc2lnbmVkIGlm bG93ID0gKHVuc2lnbmVkKSAoKCh1bnNpZ25lZCBsb25nKSB0aWQpICUgaG5kbC0+bmZsb3cpOwor IAorICAgLyogQWNxdWlyZSBibG9jayAqLworICAgdWludDMyX3QgKnNwdHIgPSAmaG5kbC0+Ymxr c3RhdGVbaWZsb3cgKiBOQ0hVTktTXTsKK0BAIC05MjUsNyArOTI0LDggQEAgbWFwQnVmZmVyIChj aGFyICpmbmFtZSwgQnVmZmVyICpidWYsIG9mZjY0X3QgZm9mZikKKyAKKyAgIC8qIGVuc3VyZSBk aXNrIHNwYWNlIGlzIGFsbG9jYXRlZCAqLworICAgY2hhciBubCA9ICdcbic7CistICBpbnQgbiA9 IENBTExfVVRJTCAocHdyaXRlNjQpKGZkLCAmbmwsIHNpemVvZiAobmwpLCAob2ZmNjRfdCkgKGZv ZmYgKyBibGtzeiAtIHNpemVvZiAobmwpKSk7CisrICBpbnQgbiA9IENBTExfVVRJTCAocHdyaXRl NjRfKSAoZmQsICZubCwgc2l6ZW9mIChubCksCisrCQkJCSAob2ZmNjRfdCkgKGZvZmYgKyBibGtz eiAtIHNpemVvZiAobmwpKSk7CisgICBpZiAobiA8PSAwKQorICAgICB7CisgICAgICAgVHByaW50 ZlQgKDAsICJtYXBCdWZmZXIgRVJST1I6IGNhbid0IHB3cml0ZSBmaWxlICVzIGF0IDB4JWxseFxu IiwgZm5hbWUsCitAQCAtOTM3LDcgKzkzNyw3IEBAIG1hcEJ1ZmZlciAoY2hhciAqZm5hbWUsIEJ1 ZmZlciAqYnVmLCBvZmY2NF90IGZvZmYpCisgICAgICAgZ290byBleGl0OworICAgICB9CisgICAv KiBtbWFwIGJ1Zi0+dmFkZHIgdG8gZm5hbWUgYXQgZm9mZiAqLworLSAgdWludDhfdCAqdmFkZHIg PSBDQUxMX1VUSUwgKG1tYXA2NCkoYnVmLT52YWRkciwgKHNpemVfdCkgYmxrc3osCisrICB1aW50 OF90ICp2YWRkciA9IENBTExfVVRJTCAobW1hcDY0XykgKGJ1Zi0+dmFkZHIsIChzaXplX3QpIGJs a3N6LAorIAkgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQgfCBNQVBfRklYRUQs IGZkLCBmb2ZmKTsKKyAgIGlmICh2YWRkciAhPSBidWYtPnZhZGRyKQorICAgICB7CitkaWZmIC0t Z2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvaW90cmFjZS5jIGIvZ3Byb2ZuZy9saWJjb2xsZWN0 b3IvaW90cmFjZS5jCitpbmRleCA5YjQ3NzI0YmFiOS4uZDk0ZGFlZmE4OWIgMTAwNjQ0CistLS0g YS9ncHJvZm5nL2xpYmNvbGxlY3Rvci9pb3RyYWNlLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVj dG9yL2lvdHJhY2UuYworQEAgLTM0LDcgKzM0LDcgQEAKKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAK KyAjaW5jbHVkZSAiZ3AtZGVmcy5oIgorLSNpbmNsdWRlICJjb2xsZWN0b3JfbW9kdWxlLmgiCisr I2luY2x1ZGUgImNvbGxlY3Rvci5oIgorICNpbmNsdWRlICJncC1leHBlcmltZW50LmgiCisgI2lu Y2x1ZGUgImRhdGFfcGNrdHMuaCIKKyAjaW5jbHVkZSAidHNkLmgiCitAQCAtOTk5LDYgKzk5OSwy MiBAQCBpbml0X2lvX2ludGYgKCkKKyAgIHJldHVybiByYzsKKyB9CisgCisrc3RhdGljIHZvaWQK Kyt3cml0ZV9pb19wYWNrZXQgKGludCBmZCwgc3NpemVfdCByZXQsIGhydGltZV90IHJlcXQsIGlu dCBpb3R5cGUpCisreworKyAgSU9UcmFjZV9wYWNrZXQgaW9wa3Q7CisrICBjb2xsZWN0b3JfbWVt c2V0ICgmaW9wa3QsIDAsIHNpemVvZiAoIElPVHJhY2VfcGFja2V0KSk7CisrICBpb3BrdC5jb21t LnRzaXplID0gc2l6ZW9mIChJT1RyYWNlX3BhY2tldCk7CisrICBpb3BrdC5jb21tLnRzdGFtcCA9 IGdldGhydGltZSAoKTsKKysgIGlvcGt0LnJlcXVlc3RlZCA9IHJlcXQ7CisrICBpb3BrdC5pb3R5 cGUgPSBpb3R5cGU7CisrICBpb3BrdC5mZCA9IGZkOworKyAgaW9wa3QubmJ5dGUgPSByZXQ7Cisr ICBpb3BrdC5jb21tLmZyaW5mbyA9IGNvbGxlY3Rvcl9pbnRlcmZhY2UtPmdldEZyYW1lSW5mbyAo aW9faG5kbCwKKysJCQlpb3BrdC5jb21tLnRzdGFtcCwgRlJJTkZPX0ZST01fU1RBQ0ssICZpb3Br dCk7CisrICBjb2xsZWN0b3JfaW50ZXJmYWNlLT53cml0ZURhdGFSZWNvcmQgKGlvX2huZGwsIChD b21tb25fcGFja2V0KikgJiBpb3BrdCk7CisrfQorKworIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBvcGVuICovCisgaW50Cisg b3BlbiAoY29uc3QgY2hhciAqcGF0aCwgaW50IG9mbGFnLCAuLi4pCitAQCAtMjQxMiwxNjIgKzI0 MjgsMTQ3IEBAIHByZWFkIChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwgb2Zm X3Qgb2Zmc2V0KQorIH0KKyAKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcHdyaXRlICovCistI2lmIEFSQ0goSW50ZWwpICYm IFdTSVpFKDMyKQorKworKyNpZiAhZGVmaW5lZChfX01VU0xfTElCQykgJiYgQVJDSChJbnRlbCkg JiYgV1NJWkUoMzIpCisgLy8gbWFwIGludGVycG9zZWQgc3ltYm9sIHZlcnNpb25zCistc3RhdGlj IGludAorLV9fY29sbGVjdG9yX3B3cml0ZV9zeW12ZXIgKGludChyZWFsX3B3cml0ZSkgKCksIGlu dCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwor IAorIFNZTVZFUl9BVFRSSUJVVEUgKF9fY29sbGVjdG9yX3B3cml0ZV8yXzIsIHB3cml0ZUBAR0xJ QkNfMi4yKQorIGludAorIF9fY29sbGVjdG9yX3B3cml0ZV8yXzIgKGludCBmaWxkZXMsIGNvbnN0 IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpCisgeworLSAgVHByaW50ZlQg KERCR19MVFQsICJpb3RyYWNlOiBfX2NvbGxlY3Rvcl9wd3JpdGVfMl8yQCVwKGZpbGRlcz0lZCwg YnVmPSVwLCBuYnl0ZT0lbGxkLCBvZmZzZXQ9JWxsZClcbiIsCistCSAgICBDQUxMX1JFQUwgKHB3 cml0ZV8yXzIpLCBmaWxkZXMsIGJ1ZiwgKGxvbmcgbG9uZykgbmJ5dGUsIChsb25nIGxvbmcpIG9m ZnNldCk7CistICBpZiAoTlVMTF9QVFIgKHB3cml0ZSkpCisrICBpbnQgKmd1YXJkOworKyAgaWYg KE5VTExfUFRSIChwd3JpdGVfMl8yKSkKKyAgICAgaW5pdF9pb19pbnRmICgpOworLSAgcmV0dXJu IF9fY29sbGVjdG9yX3B3cml0ZV9zeW12ZXIgKENBTExfUkVBTCAocHdyaXRlXzJfMiksIGZpbGRl cywgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKKysgIGlmIChDSENLX1JFRU5UUkFOQ0UgKGd1YXJkKSkK KysgICAgcmV0dXJuIENBTExfUkVBTCAocHdyaXRlXzJfMikoZmlsZGVzLCBidWYsIG5ieXRlLCBv ZmZzZXQpOworKyAgUFVTSF9SRUVOVFJBTkNFIChndWFyZCk7CisrICBocnRpbWVfdCByZXF0ID0g Z2V0aHJ0aW1lICgpOworKyAgc3NpemVfdCByZXQgPSBDQUxMX1JFQUwgKHB3cml0ZV8yXzIpKGZp bGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKKysgIGlmIChSRUNIQ0tfUkVFTlRSQU5DRSAoZ3Vh cmQpKQorKyAgICB7CisrICAgICAgUE9QX1JFRU5UUkFOQ0UgKGd1YXJkKTsKKysgICAgICByZXR1 cm4gcmV0OworKyAgICB9CisrICB3cml0ZV9pb19wYWNrZXQgKGZpbGRlcywgcmV0LCByZXF0LCBy ZXQgPj0gMCA/IFdSSVRFX1RSQUNFIDogV1JJVEVfVFJBQ0VfRVJST1IpOworKyAgUE9QX1JFRU5U UkFOQ0UgKGd1YXJkKTsKKysgIHJldHVybiByZXQ7CisgfQorIAorIFNZTVZFUl9BVFRSSUJVVEUg KF9fY29sbGVjdG9yX3B3cml0ZV8yXzEsIHB3cml0ZUBHTElCQ18yLjEpCisgaW50CisgX19jb2xs ZWN0b3JfcHdyaXRlXzJfMSAoaW50IGZpbGRlcywgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5 dGUsIG9mZl90IG9mZnNldCkKKyB7CistICBUcHJpbnRmVCAoREJHX0xUVCwgImlvdHJhY2U6IF9f Y29sbGVjdG9yX3B3cml0ZV8yXzFAJXAoZmlsZGVzPSVkLCBidWY9JXAsIG5ieXRlPSVsbGQsIG9m ZnNldD0lbGxkKVxuIiwKKy0JICAgIENBTExfUkVBTCAocHdyaXRlXzJfMSksIGZpbGRlcywgYnVm LCAobG9uZyBsb25nKSBuYnl0ZSwgKGxvbmcgbG9uZykgb2Zmc2V0KTsKKy0gIGlmIChOVUxMX1BU UiAocHdyaXRlKSkKKysgIGludCAqZ3VhcmQ7CisrICBpZiAoTlVMTF9QVFIgKHB3cml0ZV8yXzEp KQorICAgICBpbml0X2lvX2ludGYgKCk7CistICByZXR1cm4gX19jb2xsZWN0b3JfcHdyaXRlX3N5 bXZlciAoQ0FMTF9SRUFMIChwd3JpdGVfMl8xKSwgZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZzZXQp OworKyAgaWYgKENIQ0tfUkVFTlRSQU5DRSAoZ3VhcmQpKQorKyAgICByZXR1cm4gQ0FMTF9SRUFM IChwd3JpdGVfMl8xKShmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7CisrICBQVVNIX1JFRU5U UkFOQ0UgKGd1YXJkKTsKKysgIGhydGltZV90IHJlcXQgPSBnZXRocnRpbWUgKCk7CisrICBzc2l6 ZV90IHJldCA9IENBTExfUkVBTCAocHdyaXRlXzJfMSkoZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZz ZXQpOworKyAgaWYgKFJFQ0hDS19SRUVOVFJBTkNFIChndWFyZCkpCisrICAgIHsKKysgICAgICBQ T1BfUkVFTlRSQU5DRSAoZ3VhcmQpOworKyAgICAgIHJldHVybiByZXQ7CisrICAgIH0KKysgIHdy aXRlX2lvX3BhY2tldCAoZmlsZGVzLCByZXQsIHJlcXQsIHJldCA+PSAwID8gV1JJVEVfVFJBQ0Ug OiBXUklURV9UUkFDRV9FUlJPUik7CisrICBQT1BfUkVFTlRSQU5DRSAoZ3VhcmQpOworKyAgcmV0 dXJuIHJldDsKKyB9CistCistc3RhdGljIGludAorLV9fY29sbGVjdG9yX3B3cml0ZV9zeW12ZXIg KGludChyZWFsX3B3cml0ZSkgKCksIGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90 IG5ieXRlLCBvZmZfdCBvZmZzZXQpCisteworLSNlbHNlIC8qIF5BUkNIKEludGVsKSAmJiBXU0la RSgzMikgKi8KKysjZW5kaWYgLyogIWRlZmluZWQoX19NVVNMX0xJQkMpICYmIEFSQ0goSW50ZWwp ICYmIFdTSVpFKDMyKSAqLworIAorIHNzaXplX3QKKyBwd3JpdGUgKGludCBmaWxkZXMsIGNvbnN0 IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpCisgeworLSNlbmRpZiAvKiBe QVJDSChJbnRlbCkgJiYgV1NJWkUoMzIpICovCisgICBpbnQgKmd1YXJkOworLSAgc3NpemVfdCBy ZXQ7CistICBJT1RyYWNlX3BhY2tldCBpb3BrdDsKKyAgIGlmIChOVUxMX1BUUiAocHdyaXRlKSkK KyAgICAgaW5pdF9pb19pbnRmICgpOworICAgaWYgKENIQ0tfUkVFTlRSQU5DRSAoZ3VhcmQpKQor LSAgICB7CistI2lmIEFSQ0goSW50ZWwpICYmIFdTSVpFKDMyKQorLSAgICAgIHJldHVybiAocmVh bF9wd3JpdGUpIChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7CistI2Vsc2UKKy0gICAgICBy ZXR1cm4gQ0FMTF9SRUFMIChwd3JpdGUpKGZpbGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKKy0j ZW5kaWYKKy0gICAgfQorKyAgICByZXR1cm4gQ0FMTF9SRUFMIChwd3JpdGUpKGZpbGRlcywgYnVm LCBuYnl0ZSwgb2Zmc2V0KTsKKyAgIFBVU0hfUkVFTlRSQU5DRSAoZ3VhcmQpOworICAgaHJ0aW1l X3QgcmVxdCA9IGdldGhydGltZSAoKTsKKy0jaWYgQVJDSChJbnRlbCkgJiYgV1NJWkUoMzIpCist ICByZXQgPSAocmVhbF9wd3JpdGUpIChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7CistI2Vs c2UKKy0gIHJldCA9IENBTExfUkVBTCAocHdyaXRlKShmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNl dCk7CistI2VuZGlmCisrICBzc2l6ZV90IHJldCA9IENBTExfUkVBTCAocHdyaXRlKShmaWxkZXMs IGJ1ZiwgbmJ5dGUsIG9mZnNldCk7CisgICBpZiAoUkVDSENLX1JFRU5UUkFOQ0UgKGd1YXJkKSkK KyAgICAgeworICAgICAgIFBPUF9SRUVOVFJBTkNFIChndWFyZCk7CisgICAgICAgcmV0dXJuIHJl dDsKKyAgICAgfQorLSAgaHJ0aW1lX3QgZ3JudCA9IGdldGhydGltZSAoKTsKKy0gIGNvbGxlY3Rv cl9tZW1zZXQgKCZpb3BrdCwgMCwgc2l6ZW9mICggSU9UcmFjZV9wYWNrZXQpKTsKKy0gIGlvcGt0 LmNvbW0udHNpemUgPSBzaXplb2YgKCBJT1RyYWNlX3BhY2tldCk7CistICBpb3BrdC5jb21tLnRz dGFtcCA9IGdybnQ7CistICBpb3BrdC5yZXF1ZXN0ZWQgPSByZXF0OworLSAgaWYgKHJldCA+PSAw KQorLSAgICBpb3BrdC5pb3R5cGUgPSBXUklURV9UUkFDRTsKKy0gIGVsc2UKKy0gICAgaW9wa3Qu aW90eXBlID0gV1JJVEVfVFJBQ0VfRVJST1I7CistICBpb3BrdC5mZCA9IGZpbGRlczsKKy0gIGlv cGt0Lm5ieXRlID0gcmV0OworLSAgaW9wa3QuY29tbS5mcmluZm8gPSBjb2xsZWN0b3JfaW50ZXJm YWNlLT5nZXRGcmFtZUluZm8gKGlvX2huZGwsIGlvcGt0LmNvbW0udHN0YW1wLCBGUklORk9fRlJP TV9TVEFDSywgJmlvcGt0KTsKKy0gIGNvbGxlY3Rvcl9pbnRlcmZhY2UtPndyaXRlRGF0YVJlY29y ZCAoaW9faG5kbCwgKENvbW1vbl9wYWNrZXQqKSAmIGlvcGt0KTsKKysgIHdyaXRlX2lvX3BhY2tl dCAoZmlsZGVzLCByZXQsIHJlcXQsIHJldCA+PSAwID8gV1JJVEVfVFJBQ0UgOiBXUklURV9UUkFD RV9FUlJPUik7CisgICBQT1BfUkVFTlRSQU5DRSAoZ3VhcmQpOworICAgcmV0dXJuIHJldDsKKyB9 CisgCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIHB3cml0ZTY0ICovCisrI2lmICFkZWZpbmVkKF9fTVVTTF9MSUJDKQorICNp ZiBBUkNIKEludGVsKSAmJiBXU0laRSgzMikKKyAvLyBtYXAgaW50ZXJwb3NlZCBzeW1ib2wgdmVy c2lvbnMKKy1zdGF0aWMgaW50CistX19jb2xsZWN0b3JfcHdyaXRlNjRfc3ltdmVyIChpbnQocmVh bF9wd3JpdGU2NCkgKCksIGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRl LCBvZmY2NF90IG9mZnNldCk7CisgCisgU1lNVkVSX0FUVFJJQlVURSAoX19jb2xsZWN0b3JfcHdy aXRlNjRfMl8yLCBwd3JpdGU2NEBAR0xJQkNfMi4yKQorLWludAorK3NzaXplX3QKKyBfX2NvbGxl Y3Rvcl9wd3JpdGU2NF8yXzIgKGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5i eXRlLCBvZmY2NF90IG9mZnNldCkKKyB7CistICBUcHJpbnRmVCAoREJHX0xUVCwgImlvdHJhY2U6 IF9fY29sbGVjdG9yX3B3cml0ZTY0XzJfMkAlcChmaWxkZXM9JWQsIGJ1Zj0lcCwgbmJ5dGU9JWxs ZCwgb2Zmc2V0PSVsbGQpXG4iLAorLQkgICAgQ0FMTF9SRUFMIChwd3JpdGU2NF8yXzIpLCBmaWxk ZXMsIGJ1ZiwgKGxvbmcgbG9uZykgbmJ5dGUsIChsb25nIGxvbmcpIG9mZnNldCk7CistICBpZiAo TlVMTF9QVFIgKHB3cml0ZTY0KSkKKysgIGludCAqZ3VhcmQ7CisrICBpZiAoTlVMTF9QVFIgKHB3 cml0ZTY0XzJfMikpCisgICAgIGluaXRfaW9faW50ZiAoKTsKKy0gIHJldHVybiBfX2NvbGxlY3Rv cl9wd3JpdGU2NF9zeW12ZXIgKENBTExfUkVBTCAocHdyaXRlNjRfMl8yKSwgZmlsZGVzLCBidWYs IG5ieXRlLCBvZmZzZXQpOworKyAgaWYgKENIQ0tfUkVFTlRSQU5DRSAoZ3VhcmQpKQorKyAgICBy ZXR1cm4gQ0FMTF9SRUFMIChwd3JpdGU2NF8yXzIpKGZpbGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0 KTsKKysgIFBVU0hfUkVFTlRSQU5DRSAoZ3VhcmQpOworKyAgaHJ0aW1lX3QgcmVxdCA9IGdldGhy dGltZSAoKTsKKysgIHNzaXplX3QgcmV0ID0gQ0FMTF9SRUFMIChwd3JpdGU2NF8yXzIpKGZpbGRl cywgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKKysgIGlmIChSRUNIQ0tfUkVFTlRSQU5DRSAoZ3VhcmQp KQorKyAgICB7CisrICAgICAgUE9QX1JFRU5UUkFOQ0UgKGd1YXJkKTsKKysgICAgICByZXR1cm4g cmV0OworKyAgICB9CisrICB3cml0ZV9pb19wYWNrZXQgKGZpbGRlcywgcmV0LCByZXF0LCByZXQg Pj0gMCA/IFdSSVRFX1RSQUNFIDogV1JJVEVfVFJBQ0VfRVJST1IpOworKyAgUE9QX1JFRU5UUkFO Q0UgKGd1YXJkKTsKKysgIHJldHVybiByZXQ7CisgfQorIAorIFNZTVZFUl9BVFRSSUJVVEUgKF9f Y29sbGVjdG9yX3B3cml0ZTY0XzJfMSwgcHdyaXRlNjRAR0xJQkNfMi4xKQorIGludAorIF9fY29s bGVjdG9yX3B3cml0ZTY0XzJfMSAoaW50IGZpbGRlcywgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qg bmJ5dGUsIG9mZjY0X3Qgb2Zmc2V0KQorIHsKKy0gIFRwcmludGZUIChEQkdfTFRULCAiaW90cmFj ZTogX19jb2xsZWN0b3JfcHdyaXRlNjRfMl8xQCVwKGZpbGRlcz0lZCwgYnVmPSVwLCBuYnl0ZT0l bGxkLCBvZmZzZXQ9JWxsZClcbiIsCistCSAgICBDQUxMX1JFQUwgKHB3cml0ZTY0XzJfMSksIGZp bGRlcywgYnVmLCAobG9uZyBsb25nKSBuYnl0ZSwgKGxvbmcgbG9uZykgb2Zmc2V0KTsKKy0gIGlm IChOVUxMX1BUUiAocHdyaXRlNjQpKQorKyAgaW50ICpndWFyZDsKKysgIGlmIChOVUxMX1BUUiAo cHdyaXRlNjRfMl8xKSkKKyAgICAgaW5pdF9pb19pbnRmICgpOworLSAgcmV0dXJuIF9fY29sbGVj dG9yX3B3cml0ZTY0X3N5bXZlciAoQ0FMTF9SRUFMIChwd3JpdGU2NF8yXzEpLCBmaWxkZXMsIGJ1 ZiwgbmJ5dGUsIG9mZnNldCk7CisrICBpZiAoQ0hDS19SRUVOVFJBTkNFIChndWFyZCkpCisrICAg IHJldHVybiBDQUxMX1JFQUwgKHB3cml0ZTY0XzJfMSkoZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZz ZXQpOworKyAgUFVTSF9SRUVOVFJBTkNFIChndWFyZCk7CisrICBocnRpbWVfdCByZXF0ID0gZ2V0 aHJ0aW1lICgpOworKyAgc3NpemVfdCByZXQgPSBDQUxMX1JFQUwgKHB3cml0ZTY0XzJfMSkoZmls ZGVzLCBidWYsIG5ieXRlLCBvZmZzZXQpOworKyAgaWYgKFJFQ0hDS19SRUVOVFJBTkNFIChndWFy ZCkpCisrICAgIHsKKysgICAgICBQT1BfUkVFTlRSQU5DRSAoZ3VhcmQpOworKyAgICAgIHJldHVy biByZXQ7CisrICAgIH0KKysgIHdyaXRlX2lvX3BhY2tldCAoZmlsZGVzLCByZXQsIHJlcXQsIHJl dCA+PSAwID8gV1JJVEVfVFJBQ0UgOiBXUklURV9UUkFDRV9FUlJPUik7CisrICBQT1BfUkVFTlRS QU5DRSAoZ3VhcmQpOworKyAgcmV0dXJuIHJldDsKKyB9CistCistc3RhdGljIGludAorLV9fY29s bGVjdG9yX3B3cml0ZTY0X3N5bXZlciAoaW50KHJlYWxfcHdyaXRlNjQpICgpLCBpbnQgZmlsZGVz LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwgb2ZmNjRfdCBvZmZzZXQpCisteworLSNl bHNlIC8qIF5BUkNIKEludGVsKSAmJiBXU0laRSgzMikgKi8KKysjZW5kaWYKKyAKKyBzc2l6ZV90 CisgcHdyaXRlNjQgKGludCBmaWxkZXMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBv ZmY2NF90IG9mZnNldCkKKyB7CistI2VuZGlmIC8qIF5BUkNIKEludGVsKSAmJiBXU0laRSgzMikg Ki8KKyAgIGludCAqZ3VhcmQ7CistICBzc2l6ZV90IHJldDsKKy0gIElPVHJhY2VfcGFja2V0IGlv cGt0OworICAgaWYgKE5VTExfUFRSIChwd3JpdGU2NCkpCisgICAgIGluaXRfaW9faW50ZiAoKTsK KyAgIGlmIChDSENLX1JFRU5UUkFOQ0UgKGd1YXJkKSkKKy0gICAgeworLSNpZiBBUkNIKEludGVs KSAmJiBXU0laRSgzMikKKy0gICAgICByZXR1cm4gKHJlYWxfcHdyaXRlNjQpIChmaWxkZXMsIGJ1 ZiwgbmJ5dGUsIG9mZnNldCk7CistI2Vsc2UKKy0gICAgICByZXR1cm4gQ0FMTF9SRUFMIChwd3Jp dGU2NCkoZmlsZGVzLCBidWYsIG5ieXRlLCBvZmZzZXQpOworLSNlbmRpZgorLSAgICB9CisrICAg IHJldHVybiBDQUxMX1JFQUwgKHB3cml0ZTY0KShmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7 CisgICBQVVNIX1JFRU5UUkFOQ0UgKGd1YXJkKTsKKyAgIGhydGltZV90IHJlcXQgPSBnZXRocnRp bWUgKCk7CistI2lmIEFSQ0goSW50ZWwpICYmIFdTSVpFKDMyKQorLSAgcmV0ID0gKHJlYWxfcHdy aXRlNjQpIChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIG9mZnNldCk7CistI2Vsc2UKKy0gIHJldCA9IENB TExfUkVBTCAocHdyaXRlNjQpKGZpbGRlcywgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsKKy0jZW5kaWYK KysgIHNzaXplX3QgcmV0ID0gQ0FMTF9SRUFMIChwd3JpdGU2NCkoZmlsZGVzLCBidWYsIG5ieXRl LCBvZmZzZXQpOworICAgaWYgKFJFQ0hDS19SRUVOVFJBTkNFIChndWFyZCkpCisgICAgIHsKKyAg ICAgICBQT1BfUkVFTlRSQU5DRSAoZ3VhcmQpOworICAgICAgIHJldHVybiByZXQ7CisgICAgIH0K Ky0gIGhydGltZV90IGdybnQgPSBnZXRocnRpbWUgKCk7CistICBjb2xsZWN0b3JfbWVtc2V0ICgm aW9wa3QsIDAsIHNpemVvZiAoIElPVHJhY2VfcGFja2V0KSk7CistICBpb3BrdC5jb21tLnRzaXpl ID0gc2l6ZW9mICggSU9UcmFjZV9wYWNrZXQpOworLSAgaW9wa3QuY29tbS50c3RhbXAgPSBncm50 OworLSAgaW9wa3QucmVxdWVzdGVkID0gcmVxdDsKKy0gIGlmIChyZXQgPj0gMCkKKy0gICAgaW9w a3QuaW90eXBlID0gV1JJVEVfVFJBQ0U7CistICBlbHNlCistICAgIGlvcGt0LmlvdHlwZSA9IFdS SVRFX1RSQUNFX0VSUk9SOworLSAgaW9wa3QuZmQgPSBmaWxkZXM7CistICBpb3BrdC5uYnl0ZSA9 IHJldDsKKy0gIGlvcGt0LmNvbW0uZnJpbmZvID0gY29sbGVjdG9yX2ludGVyZmFjZS0+Z2V0RnJh bWVJbmZvIChpb19obmRsLCBpb3BrdC5jb21tLnRzdGFtcCwgRlJJTkZPX0ZST01fU1RBQ0ssICZp b3BrdCk7CistICBjb2xsZWN0b3JfaW50ZXJmYWNlLT53cml0ZURhdGFSZWNvcmQgKGlvX2huZGws IChDb21tb25fcGFja2V0KikgJiBpb3BrdCk7CisrICB3cml0ZV9pb19wYWNrZXQgKGZpbGRlcywg cmV0LCByZXF0LCByZXQgPj0gMCA/IFdSSVRFX1RSQUNFIDogV1JJVEVfVFJBQ0VfRVJST1IpOwor ICAgUE9QX1JFRU5UUkFOQ0UgKGd1YXJkKTsKKyAgIHJldHVybiByZXQ7CisgfQorKyNlbmRpZgor IAorIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSBmZ2V0cyAqLworIGNoYXIqCitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xs ZWN0b3IvanByb2ZpbGUuYyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2pwcm9maWxlLmMKK2luZGV4 IDlkYWFhNWEyNjdlLi41MjExNDA2NjcyNiAxMDA2NDQKKy0tLSBhL2dwcm9mbmcvbGliY29sbGVj dG9yL2pwcm9maWxlLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2pwcm9maWxlLmMKK0BA IC0yODUsMTIgKzI4NSw2IEBAIF9fY29sbGVjdG9yX2pwcm9maWxlX3N0YXJ0X2F0dGFjaCAodm9p ZCkKKyAJICAgIHsKKyAJICAgICAganRocmVhZCB0aHJlYWQ7CisgCSAgICAgICgqanZtdGkpLT5H ZXRDdXJyZW50VGhyZWFkIChqdm10aSwgJnRocmVhZCk7CistI2lmZGVmIERFQlVHCistCSAgICAg IGNvbGxlY3Rvcl90aHJlYWRfdCB0aWQ7CistCSAgICAgIHRpZCA9IF9fY29sbGVjdG9yX3Rocl9z ZWxmICgpOworLQkgICAgICBUcHJpbnRmVCAoMCwgImpwcm9maWxlIGF0dGFjaDogQXR0YWNoQ3Vy cmVudFRocmVhZDogdGhyZWFkOiAlbHUgam5pX2Vudj0lcCBqdGhyZWFkPSVwXG4iLAorLQkJCSh1 bnNpZ25lZCBsb25nKSB0aWQsIGpuaV9lbnYsIHRocmVhZCk7CistI2VuZGlmIC8qIERFQlVHICov CisgCSAgICAgIGp2bXRpX1ZNSW5pdCAoanZtdGksIGpuaV9lbnYsIHRocmVhZCk7CisgCSAgICAg ICgqanZtdGkpLT5HZW5lcmF0ZUV2ZW50cyAoanZtdGksIEpWTVRJX0VWRU5UX0NPTVBJTEVEX01F VEhPRF9MT0FEKTsKKyAJICAgICAgKCpqdm10aSktPkdlbmVyYXRlRXZlbnRzIChqdm10aSwgSlZN VElfRVZFTlRfRFlOQU1JQ19DT0RFX0dFTkVSQVRFRCk7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9s aWJjb2xsZWN0b3IvbGliY29sX3V0aWwuYyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2xpYmNvbF91 dGlsLmMKK2luZGV4IGM3MDliM2M1ZWQxLi5kNjgyYWEwYWIyOSAxMDA2NDQKKy0tLSBhL2dwcm9m bmcvbGliY29sbGVjdG9yL2xpYmNvbF91dGlsLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9y L2xpYmNvbF91dGlsLmMKK0BAIC0xMTE2LDkgKzExMTYsOSBAQCBfX2NvbGxlY3Rvcl91dGlsX2lu aXQgKCkKKyAgIC8qICAgIGludGVybmFsIGNhbGxzIGZvciBtYXBwaW5nIGluIGxpYmNvbGxlY3Rv ciBjYWxsIG1tYXA2NCAqLworICAgcHRyID0gZGxzeW0gKGxpYmMsICJtbWFwNjQiKTsKKyAgIGlm IChwdHIpCistICAgIF9fY29sbGVjdG9yX3V0aWxfZnVuY3MubW1hcDY0ID0gKHZvaWQqKCopKHZv aWQgKiwgc2l6ZV90LCBpbnQsIGludCwgaW50LCBvZmZfdCkpcHRyOworKyAgICBfX2NvbGxlY3Rv cl91dGlsX2Z1bmNzLm1tYXA2NF8gPSAodm9pZCooKikodm9pZCAqLCBzaXplX3QsIGludCwgaW50 LCBpbnQsIG9mZl90KSlwdHI7CisgICBlbHNlCistICAgIF9fY29sbGVjdG9yX3V0aWxfZnVuY3Mu bW1hcDY0ID0gX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5tbWFwOworKyAgICBfX2NvbGxlY3Rvcl91 dGlsX2Z1bmNzLm1tYXA2NF8gPSBfX2NvbGxlY3Rvcl91dGlsX2Z1bmNzLm1tYXA7CisgCisgICBw dHIgPSBkbHN5bSAobGliYywgIm11bm1hcCIpOworICAgaWYgKHB0cikKK0BAIC0xMjE0LDE2ICsx MjE0LDE2IEBAIF9fY29sbGVjdG9yX3V0aWxfaW5pdCAoKQorICNpZiBBUkNIKEludGVsKSAmJiBX U0laRSgzMikKKyAgIHB0ciA9IGRsdnN5bSAobGliYywgInB3cml0ZTY0IiwgIkdMSUJDXzIuMiIp OyAvLyBpdCBpcyBpbiAvbGliL2xpYnB0aHJlYWQuc28uMAorICAgaWYgKHB0cikKKy0gICAgX19j b2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU2NCA9IChzc2l6ZV90ICgqKSgpKXB0cjsKKysgICAg X19jb2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU2NF8gPSAoc3NpemVfdCAoKikoKSlwdHI7Cisg ICBlbHNlCisgICAgIHsKKyAgICAgICBUcHJpbnRmIChEQkdfTFQwLCAibGliY29sX3V0aWw6IFdB Uk5JTkc6IGRsdnN5bSBmb3IgJXNAJXMgZmFpbGVkLiBVc2luZyBkbHN5bSgpIGluc3RlYWQuIiwg InB3cml0ZTY0IiwgIkdMSUJDXzIuMiIpOworICNlbmRpZiAvKiBBUkNIKEludGVsKSAmJiBXU0la RSgzMikgKi8KKyAgICAgICBwdHIgPSBkbHN5bSAobGliYywgInB3cml0ZTY0Iik7CisgICAgICAg aWYgKHB0cikKKy0JX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU2NCA9IChzc2l6ZV90ICgq KSgpKXB0cjsKKysJX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU2NF8gPSAoc3NpemVfdCAo KikoKSlwdHI7CisgICAgICAgZWxzZQorLQlfX2NvbGxlY3Rvcl91dGlsX2Z1bmNzLnB3cml0ZTY0 ID0gX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU7CisrCV9fY29sbGVjdG9yX3V0aWxfZnVu Y3MucHdyaXRlNjRfID0gX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5wd3JpdGU7CisgI2lmIEFSQ0go SW50ZWwpICYmIFdTSVpFKDMyKQorICAgICB9CisgI2VuZGlmIC8qIEFSQ0goSW50ZWwpICYmIFdT SVpFKDMyKSAqLworQEAgLTEzMTksNiArMTMxOSwxNSBAQCBfX2NvbGxlY3Rvcl91dGlsX2luaXQg KCkKKyAgIF9fY29sbGVjdG9yX3V0aWxfZnVuY3MuZ2V0Y3B1aWQgPSBfX2NvbGxlY3Rvcl9nZXRj cHVpZDsKKyAgIF9fY29sbGVjdG9yX3V0aWxfZnVuY3MubWVtc2V0ID0gY29sbGVjdG9yX21lbXNl dDsKKyAKKysgIHB0ciA9IGRsc3ltIChsaWJjLCAiZ2V0Y29udGV4dCIpOworKyAgaWYgKHB0cikK KysgICAgX19jb2xsZWN0b3JfdXRpbF9mdW5jcy5nZXRjb250ZXh0ID0gKGludCgqKSgpKXB0cjsK KysgIGVsc2UKKysgICAgeworKyAgICAgIENBTExfVVRJTCAoZnByaW50Zikoc3RkZXJyLCAiY29s bGVjdG9yX3V0aWxfaW5pdCBDT0xfRVJST1JfVVRJTF9JTklUIGdldGNvbnRleHQ6ICVzXG4iLCBk bGVycm9yICgpKTsKKysgICAgICBlcnIgPSBDT0xfRVJST1JfVVRJTF9JTklUOworKyAgICB9Cisr CisgICBwdHIgPSBkbHN5bSAobGliYywgIm1hbGxvYyIpOworICAgaWYgKHB0cikKKyAgICAgX19j b2xsZWN0b3JfdXRpbF9mdW5jcy5tYWxsb2MgPSAodm9pZCAqKCopKHNpemVfdCkpcHRyOworZGlm ZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL2xpYmNvbF91dGlsLmggYi9ncHJvZm5nL2xp YmNvbGxlY3Rvci9saWJjb2xfdXRpbC5oCitpbmRleCBlMTNhMDJlYTZkNy4uYzMyYzc2ZjA5MWIg MTAwNjQ0CistLS0gYS9ncHJvZm5nL2xpYmNvbGxlY3Rvci9saWJjb2xfdXRpbC5oCisrKysgYi9n cHJvZm5nL2xpYmNvbGxlY3Rvci9saWJjb2xfdXRpbC5oCitAQCAtNTksMTIgKzU5LDExIEBAIGV4 dGVybiBpbnQgX19jb2xsZWN0b3JfeG1sX3NucHJpbnRmIChjaGFyICpzLCBzaXplX3QgbiwgY29u c3QgY2hhciAqZm9ybWF0LCAuLi4pCisgZXh0ZXJuIGludCBfX2NvbGxlY3Rvcl94bWxfdnNucHJp bnRmIChjaGFyICpzLCBzaXplX3QgbiwgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3Mp OworIAorIC8qIC0tLS0tLS0gIGNvbGxlY3Rvcl90aHJlYWQgLS0tLS0tLS0tLS0tLS0tLS0gKi8K Ky1waWRfdCBfX2NvbGxlY3Rvcl9nZXR0aWQgKCk7CisrZXh0ZXJuIHBpZF90IF9fY29sbGVjdG9y X2dldHRpZCAoKTsKKyBleHRlcm4gdm9pZCBfX2NvbGxlY3Rvcl9leHRfZ2V0dGlkX3RzZF9jcmVh dGVfa2V5ICgpOworLSNkZWZpbmUgY29sbGVjdG9yX3RocmVhZF90IHB0aHJlYWRfdCAgICAgICAg ICAgIC8vIG5vdCB1c2luZyBwaWRfdCwgc2luY2UgdGlkIGlzIGRlZmluZWQgYXMgcHRocmVhZF90 IGluIHBhY2thZ2Ugc3RydWN0dXJlcywgYW5kIG90aGVyIGNvZGVzIGFzc3VtZSB0aGlzIHR5cGUK Ky0jZGVmaW5lIHN0YXR2ZnNfdCAgc3RydWN0IHN0YXR2ZnMKKy0jZGVmaW5lIF9fY29sbGVjdG9y X2x3cF9zZWxmKCkgKGNvbGxlY3Rvcl90aHJlYWRfdClfX2NvbGxlY3Rvcl9nZXR0aWQoKSAvLyBu b3QgdXNpbmcgcHRocmVhZF9zZWxmKCkKKy0jZGVmaW5lIF9fY29sbGVjdG9yX3Rocl9zZWxmKCkg KGNvbGxlY3Rvcl90aHJlYWRfdClfX2NvbGxlY3Rvcl9nZXR0aWQoKSAvLyBub3QgdXNpbmcgcHRo cmVhZF9zZWxmKCkKKyt0eXBlZGVmIHB0aHJlYWRfdCBjb2xsZWN0b3JfdGhyZWFkX3Q7CisrI2Rl ZmluZSBfX2NvbGxlY3Rvcl9sd3Bfc2VsZigpICgoY29sbGVjdG9yX3RocmVhZF90KSAoKHVuc2ln bmVkIGxvbmcpIF9fY29sbGVjdG9yX2dldHRpZCgpKSkKKysjZGVmaW5lIF9fY29sbGVjdG9yX3Ro cl9zZWxmKCkgKChjb2xsZWN0b3JfdGhyZWFkX3QpICgodW5zaWduZWQgbG9uZykgX19jb2xsZWN0 b3JfZ2V0dGlkKCkpKQorIAorIC8qIC0tLS0tLS0gIGNvbGxlY3Rvcl9tdXRleCAtLS0tLS0tLS0t LS0tLS0tLSAqLworIC8qCitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvbGluZXRy YWNlLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9saW5ldHJhY2UuYworaW5kZXggOTc4YzU1MDNl MmUuLmEyMDkzMDhjNzY3IDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvbGluZXRy YWNlLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2xpbmV0cmFjZS5jCitAQCAtMjksNiAr MjksOCBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4K KyAjaW5jbHVkZSA8c3lzL21tYW4uaD4KKysjaW5jbHVkZSA8bGltaXRzLmg+CisrCisgCisgI2lu Y2x1ZGUgImRlc2NlbmRhbnRzLmgiCisgCitAQCAtMzYwLDcgKzM2Miw3IEBAIGNoZWNrX2ZkX2R5 bmFtaWMgKGludCBmZCkKKyAgIHNpemVfdCBzeiA9IChzaXplX3QpIDgxOTI7IC8qIG9uZSBwYWdl IHNob3VsZCBzdWZmaWNlICovCisgICBpZiAoc3ogPiBvZmYpCisgICAgIHN6ID0gb2ZmOworLSAg Y2hhciAqcCA9IENBTExfVVRJTCAobW1hcDY0KSgoY2hhciAqKSAwLCBzeiwgUFJPVF9SRUFELCBN QVBfUFJJVkFURSwgZmQsIChvZmY2NF90KSAwKTsKKysgIGNoYXIgKnAgPSBDQUxMX1VUSUwgKG1t YXA2NF8pKChjaGFyICopIDAsIHN6LCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBmZCwgKG9mZjY0 X3QpIDApOworICAgaWYgKHAgPT0gTUFQX0ZBSUxFRCkKKyAgICAgeworICAgICAgIFRwcmludGZU IChEQkdfTFQwLCAiY2hlY2tfZmRfZHluYW1pYygpOiBFUlJPUi9XQVJOSU5HOiBtbWFwIGZhaWxl ZCBmb3IgYCVkJ1xuIiwgZmQpOworZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL21l bW1nci5jIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvbWVtbWdyLmMKK2luZGV4IDVhZGE0MjFmM2Y0 Li5hYTEzZWE3Nzg1MiAxMDA2NDQKKy0tLSBhL2dwcm9mbmcvbGliY29sbGVjdG9yL21lbW1nci5j CisrKysgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9tZW1tZ3IuYworQEAgLTEzMSw3ICsxMzEsNyBA QCBhbGxvY19jaHVuayAodW5zaWduZWQgc3osIGludCBsb2cpCisgICBpZiAobG9nID09IDEpCisg ICAgIFRwcmludGYgKERCR19MVDIsICJhbGxvY19jaHVuayBtYXBwaW5nICV1LCByb3VuZGVkIHVw IGZyb20gJXVcbiIsICh1bnNpZ25lZCBpbnQpIGNodW5rc3osIHN6KTsKKyAgIC8qIG1tYXA2NCBp cyBvbmx5IGluIDMyLWJpdHM7IHRoaXMgY2FsbCBnb2VzIHRvIG1tYXAgaW4gNjQtYml0cyAqLwor LSAgcHRyID0gKGNoYXIqKSBDQUxMX1VUSUwgKG1tYXA2NCkoMCwgY2h1bmtzeiwgUFJPVF9SRUFE IHwgUFJPVF9XUklURSwKKysgIHB0ciA9IChjaGFyKikgQ0FMTF9VVElMIChtbWFwNjRfKSgwLCBj aHVua3N6LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorIAkJCQkgICBNQVBfUFJJVkFURSB8IE1B UF9BTk9OLCAoaW50KSAtMSwgKG9mZjY0X3QpIDApOworICAgaWYgKHB0ciA9PSBNQVBfRkFJTEVE KQorICAgICB7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvbW1hcHRyYWNlLmMg Yi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9tbWFwdHJhY2UuYworaW5kZXggYmE1YzkxMjlmNGMuLmJk Mjk5ZTZmNjRmIDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvbW1hcHRyYWNlLmMK KysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL21tYXB0cmFjZS5jCitAQCAtNDQxLDEzICs0NDEs OSBAQCBjaGVja3N1bV9tYXBuYW1lIChNYXBJbmZvKiBtYXApCisgfQorIAorIAorLSNpZiAoQVJD SChJbnRlbCkgJiYgV1NJWkUoMzIpKSB8fCBBUkNIKFNQQVJDKQorLXN0YXRpYyB2b2lkKgorLWRs b3Blbl9zZWFyY2hwYXRoX3N5bXZlciAodm9pZCoocmVhbF9kbG9wZW4pICgpLCB2b2lkKiBjYWxs ZXJfYWRkciwgY29uc3QgY2hhciogYmFzZW5hbWUsIGludCBtb2RlKQorLSNlbHNlCisgc3RhdGlj IHZvaWQqCistZGxvcGVuX3NlYXJjaHBhdGggKHZvaWQqIGNhbGxlcl9hZGRyLCBjb25zdCBjaGFy KiBiYXNlbmFtZSwgaW50IG1vZGUpCistI2VuZGlmCisrZGxvcGVuX3NlYXJjaHBhdGggKHZvaWQq KHJlYWxfZGxvcGVuKSAoY29uc3QgY2hhciAqLCBpbnQpLAorKwkJdm9pZCAqY2FsbGVyX2FkZHIs IGNvbnN0IGNoYXIgKmJhc2VuYW1lLCBpbnQgbW9kZSkKKyB7CisgICBUcHJpbnRmVCAoREJHX0xU MiwgImRsb3Blbl9zZWFyY2hwYXRoKCVwLCAlcywgJWQpXG4iLCBjYWxsZXJfYWRkciwgYmFzZW5h bWUsIG1vZGUpOworICAgRGxfaW5mbyBkbF9pbmZvOworQEAgLTQ1OCw3ICs0NTQsOCBAQCBkbG9w ZW5fc2VhcmNocGF0aCAodm9pZCogY2FsbGVyX2FkZHIsIGNvbnN0IGNoYXIqIGJhc2VuYW1lLCBp bnQgbW9kZSkKKyAgICAgfQorICAgVHByaW50ZlQgKERCR19MVDIsICJkbGFkZHIoJXApOiAlcCBm bmFtZT0lc1xuIiwKKyAJICAgIGNhbGxlcl9hZGRyLCBkbF9pbmZvLmRsaV9mYmFzZSwgZGxfaW5m by5kbGlfZm5hbWUpOworLSAgaW50IG5vbG9hZCA9IFJUTERfQklORElOR19NQVNLIHwgUlRMRF9O T0xPQUQ7IC8vWFhYWCB3aHkgUlRMRF9CSU5ESU5HX01BU0s/CisrICBpbnQgbm9sb2FkID0gUlRM RF9MQVpZIHwgUlRMRF9OT1cgfCBSVExEX05PTE9BRDsKKysgIHZvaWQgKmNhbGxlcl9obmRsID0g TlVMTDsKKyAjZGVmaW5lIFdPUktBUk9VTkRfUlRMRF9CVUcgMQorICNpZmRlZiBXT1JLQVJPVU5E X1JUTERfQlVHCisgICAvLyBBIGR5bmFtaWMgbGlua2VyIGRsb3BlbiBidWcgY2FuIHJlc3VsdCBp biBjb3JydXB0aW9uL2Nsb3N1cmUgb2Ygb3BlbiBzdHJlYW1zCitAQCAtNDcwLDI5ICs0NjcsMjAg QEAgZGxvcGVuX3NlYXJjaHBhdGggKHZvaWQqIGNhbGxlcl9hZGRyLCBjb25zdCBjaGFyKiBiYXNl bmFtZSwgaW50IG1vZGUpCisgI2VuZGlmCisgICBjb25zdCBjaGFyKiB0bXBfcGF0aCA9CisgCSAg KGRsX2luZm8uZGxpX2ZiYXNlID09ICh2b2lkKikgTUFJTkJBU0UpID8gTlVMTCA6IGRsX2luZm8u ZGxpX2ZuYW1lOworLSAgdm9pZCogY2FsbGVyX2huZGwgPSBOVUxMOworLSNpZiAoKEFSQ0goSW50 ZWwpICYmIFdTSVpFKDMyKSkgfHwgQVJDSChTUEFSQykpCistICBjYWxsZXJfaG5kbCA9IChyZWFs X2Rsb3BlbikgKHRtcF9wYXRoLCBub2xvYWQpOworLSNlbHNlCistICBjYWxsZXJfaG5kbCA9IENB TExfUkVBTCAoZGxvcGVuKSh0bXBfcGF0aCwgbm9sb2FkKTsKKy0jZW5kaWYKKysgIGNhbGxlcl9o bmRsID0gcmVhbF9kbG9wZW4gKHRtcF9wYXRoLCBub2xvYWQpOworIAorICNlbHNlIC8vWFhYWCB3 b3JrYXJvdW5kIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgbGlua2VyIHBhdGNoZXMgYXJlIGFsbCBh dmFpbGFibGUKKyAKKy0gIHZvaWQqIGNhbGxlcl9obmRsID0gTlVMTDsKKy0jaWYgKEFSQ0goSW50 ZWwpICYmIFdTSVpFKDMyKSB8fCBBUkNIKFNQQVJDKQorLSAgY2FsbGVyX2huZGwgPSAocmVhbF9k bG9wZW4pIChkbF9pbmZvLmRsaV9mbmFtZSwgbm9sb2FkKTsKKy0jZWxzZQorLSAgY2FsbGVyX2hu ZGwgPSBDQUxMX1JFQUwgKGRsb3BlbikoZGxfaW5mby5kbGlfZm5hbWUsIG5vbG9hZCk7CistI2Vu ZGlmCisrICBjYWxsZXJfaG5kbCA9IHJlYWxfZGxvcGVuIChkbF9pbmZvLmRsaV9mbmFtZSwgbm9s b2FkKTsKKyAKKyAjZW5kaWYgLy9YWFhYIHdvcmthcm91bmQgc2hvdWxkIGJlIHJlbW92ZWQgb25j ZSBsaW5rZXIgcGF0Y2hlcyBhcmUgYWxsIGF2YWlsYWJsZQorIAorICAgaWYgKCFjYWxsZXJfaG5k bCkKKyAgICAgeworICAgICAgIFRwcmludGZUICgwLCAiRVJST1I6IGRsb3BlbiglcyxOT0xPQUQp OiAlc1xuIiwgZGxfaW5mby5kbGlfZm5hbWUsIGRsZXJyb3IgKCkpOworLSAgICAgIHJldHVybiAw OworKyAgICAgIHJldHVybiBOVUxMOworICAgICB9CisrI2lmICFkZWZpbmVkKF9fTVVTTF9MSUJD KQorICAgRGxfc2VyaW5mbyBfaW5mbywgKmluZm8gPSAmX2luZm87CisgICBEbF9zZXJwYXRoICpw YXRoOworIAorQEAgLTU0Niw3ICs1MzQsNyBAQCBkbG9wZW5fc2VhcmNocGF0aCAodm9pZCogY2Fs bGVyX2FkZHIsIGNvbnN0IGNoYXIqIGJhc2VuYW1lLCBpbnQgbW9kZSkKKyAgICAgICBJIGhhdmUg YWxyZWFkeSBjb25maXJtZWQgd2l0aCBvdXIgdXNlciB0aGF0IHRoZSB3b3JrYXJvdW5kCisgICAg ICAgaXMgd29ya2luZyB3aXRoIGhpcyByZWFsIGFwcGxpY2F0aW9uLiBBZGRpdGlvbmFsbHksCisg ICAgICAgdGhlIGRsb3Blbl9zZWFyY2hwYXRoKCkgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgYnkg dGhlCistICAgICAgbGliY29ycmVjdG9yIGluaXQoKSBmdW5jdGlvbiB3aGVuIHRoZSBleHBlcmlt ZW50IGlzIHN0YXJ0ZWQuCisrICAgICAgbGliY29sbGVjdG9yIGluaXQoKSBmdW5jdGlvbiB3aGVu IHRoZSBleHBlcmltZW50IGlzIHN0YXJ0ZWQuCisgICAgICAgVGhlcmVmb3JlLCBhbGxvY2F0aW5n IHNvbWUgZXh0cmEgYnl0ZXMgb24gdGhlIHN0YWNrIHdoaWNoCisgICAgICAgaXMgbG9jYWwgdG8g dGhpcyByb3V0aW5lIGlzIGhhcm1sZXNzLgorICAgICovCitAQCAtNTc1LDcgKzU2Myw4IEBAIGRs b3Blbl9zZWFyY2hwYXRoICh2b2lkKiBjYWxsZXJfYWRkciwgY29uc3QgY2hhciogYmFzZW5hbWUs IGludCBtb2RlKQorICAgICAgIGlmIChyZXQpCisgCXJldHVybiByZXQ7IC8vIHN1Y2Nlc3MhCisg ICAgIH0KKy0gIHJldHVybiAwOworKyNlbmRpZgorKyAgcmV0dXJuIE5VTEw7CisgfQorIAorIHN0 YXRpYyB2b2lkCitAQCAtMTU1MCw0MCArMTUzOSw5IEBAIG11bm1hcCAodm9pZCAqc3RhcnQsIHNp emVfdCBsZW5ndGgpCisgCisgCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGRsb3BlbiAqLworLS8vIG1hcCBpbnRlcnBvc2Vk IHN5bWJvbCB2ZXJzaW9ucworLSNpZiAoQVJDSChJbnRlbCkgJiYgV1NJWkUoMzIpKSB8fCBBUkNI KFNQQVJDKQorLQorLXN0YXRpYyB2b2lkICoKKy1fX2NvbGxlY3Rvcl9kbG9wZW5fc3ltdmVyICh2 b2lkKihyZWFsX2Rsb3BlbikgKCksIHZvaWQgKmNhbGxlciwgY29uc3QgY2hhciAqcGF0aG5hbWUs IGludCBtb2RlKTsKKy0KKy1TWU1WRVJfQVRUUklCVVRFIChfX2NvbGxlY3Rvcl9kbG9wZW5fMl8x LCBkbG9wZW5AQEdMSUJDXzIuMSkKKy12b2lkICoKKy1fX2NvbGxlY3Rvcl9kbG9wZW5fMl8xIChj b25zdCBjaGFyICpwYXRobmFtZSwgaW50IG1vZGUpCisteworLSAgaWYgKE5VTExfUFRSIChkbG9w ZW4pKQorLSAgICBpbml0X21tYXBfaW50ZiAoKTsKKy0gIHZvaWQgKmNhbGxlciA9IF9fYnVpbHRp bl9yZXR1cm5fYWRkcmVzcyAoMCk7IC8vIG11c3QgYmUgY2FsbGVkIGluc2lkZSBkbG9wZW4gZmly c3QgbGF5ZXIgaW50ZXJwb3N0aW9uCistICByZXR1cm4gX19jb2xsZWN0b3JfZGxvcGVuX3N5bXZl ciAoQ0FMTF9SRUFMIChkbG9wZW5fMl8xKSwgY2FsbGVyLCBwYXRobmFtZSwgbW9kZSk7CistfQor LQorLVNZTVZFUl9BVFRSSUJVVEUgKF9fY29sbGVjdG9yX2Rsb3Blbl8yXzAsIGRsb3BlbkBHTElC Q18yLjApCistdm9pZCAqCistX19jb2xsZWN0b3JfZGxvcGVuXzJfMCAoY29uc3QgY2hhciAqcGF0 aG5hbWUsIGludCBtb2RlKQorLXsKKy0gIGlmIChOVUxMX1BUUiAoZGxvcGVuKSkKKy0gICAgaW5p dF9tbWFwX2ludGYgKCk7CistICB2b2lkKiBjYWxsZXIgPSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl c3MgKDApOyAvLyBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgZGxvcGVuIGZpcnN0IGxheWVyIGludGVy cG9zdGlvbgorLSAgcmV0dXJuIF9fY29sbGVjdG9yX2Rsb3Blbl9zeW12ZXIgKENBTExfUkVBTCAo ZGxvcGVuXzJfMCksIGNhbGxlciwgcGF0aG5hbWUsIG1vZGUpOworLX0KKy0jZW5kaWYKKy0KKy0j aWYgKEFSQ0goSW50ZWwpICYmIFdTSVpFKDMyKSkgfHwgQVJDSChTUEFSQykKKyBzdGF0aWMgdm9p ZCAqCistX19jb2xsZWN0b3JfZGxvcGVuX3N5bXZlciAodm9pZCoocmVhbF9kbG9wZW4pICgpLCB2 b2lkICpjYWxsZXIsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBpbnQgbW9kZSkKKy0jZWxzZQorLXZv aWQgKgorLWRsb3BlbiAoY29uc3QgY2hhciAqcGF0aG5hbWUsIGludCBtb2RlKQorLSNlbmRpZgor K19fY29sbGVjdG9yX2Rsb3Blbl9zeW12ZXIgKHZvaWQqKHJlYWxfZGxvcGVuKSAoY29uc3QgY2hh ciAqLCBpbnQpLAorKwkJCSAgIHZvaWQgKmNhbGxlciwgY29uc3QgY2hhciAqcGF0aG5hbWUsIGlu dCBtb2RlKQorIHsKKyAgIGNvbnN0IGNoYXIgKiByZWFsX3BhdGhuYW1lID0gcGF0aG5hbWU7Cisg ICBjaGFyIG5ld19wYXRobmFtZVtNQVhQQVRITEVOXTsKK0BAIC0xNTk1LDEwICsxNTUzLDYgQEAg ZGxvcGVuIChjb25zdCBjaGFyICpwYXRobmFtZSwgaW50IG1vZGUpCisgICAgIG9yaWdpbl9vZmZz ZXQgPSAxMDsKKyAgIGlmIChvcmlnaW5fb2Zmc2V0KQorICAgICB7CistI2lmICEgKChBUkNIKElu dGVsKSAmJiBXU0laRSgzMikpIHx8IEFSQ0goU1BBUkMpKQorLSAgICAgIC8vICdjYWxsZXInIGlz IG5vdCBwYXNzZWQgYXMgYW4gYXJndW1lbnQKKy0gICAgICB2b2lkICogY2FsbGVyID0gX19idWls dGluX3JldHVybl9hZGRyZXNzICgwKTsgLy8gbXVzdCBiZSBjYWxsZWQgaW5zaWRlIGRsb3BlbiBm aXJzdCBsYXllciBpbnRlcnBvc3Rpb24KKy0jZW5kaWYKKyAgICAgICBEbF9pbmZvIGRsX2luZm87 CisgICAgICAgaWYgKGNhbGxlciAmJiBkbGFkZHIgKGNhbGxlciwgJmRsX2luZm8pICE9IDApCisg CXsKK0BAIC0xNjE5LDM3ICsxNTczLDE4IEBAIGRsb3BlbiAoY29uc3QgY2hhciAqcGF0aG5hbWUs IGludCBtb2RlKQorICAgICBpbml0X21tYXBfaW50ZiAoKTsKKyAgIFRwcmludGZUIChEQkdfTFQy LCAibGliY29sbGVjdG9yLmRsb3BlbiglcywlZCkgaW50ZXJwb3NpbmdcbiIsCisgCSAgICBwYXRo bmFtZSA/IHBhdGhuYW1lIDogIiIsIG1vZGUpOworLSAgdm9pZCogcmV0ID0gTlVMTDsKKysgIHZv aWQgKnJldCA9IE5VTEw7CisgCisgICAvLyBzZXQgZ3VhcmQgZm9yIGR1cmF0aW9uIG9mIGhhbmRs aW5nIGRsb3Blbiwgc2luY2Ugd2FudCB0byBlbnN1cmUKKyAgIC8vIG5ldyBtYXBwaW5ncyBhcmUg cmVzb2x2ZWQgYWZ0ZXIgdGhlIGFjdHVhbCBkbG9wZW4gaGFzIG9jY3VycmVkCisgICBQVVNIX1JF RU5UUkFOQ0U7CisgICBocnRpbWVfdCBocnQgPSBHRVRSRUxUSU1FICgpOworIAorLSAgaWYgKHJl YWxfcGF0aG5hbWUgJiYgIV9fY29sbGVjdG9yX3N0cmNociAocmVhbF9wYXRobmFtZSwgJy8nKSkK Ky0gICAgeyAvLyBnb3QgYW4gdW5xdWFsaWZpZWQgbmFtZQorLSAgICAgIC8vIGdldCBjYWxsZXIg YW5kIHVzZSBpdHMgc2VhcmNocGF0aAorLSNpZiAhICgoQVJDSChJbnRlbCkgJiYgV1NJWkUoMzIp KSB8fCBBUkNIKFNQQVJDKSkKKy0gICAgICB2b2lkKiBjYWxsZXIgPSBfX2J1aWx0aW5fcmV0dXJu X2FkZHJlc3MgKDApOyAvLyBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgZGxvcGVuCistI2VuZGlmCist ICAgICAgaWYgKGNhbGxlcikKKy0JeworLSNpZiAoQVJDSChJbnRlbCkgJiYgV1NJWkUoMzIpKSB8 fCBBUkNIKFNQQVJDKQorLQkgIHJldCA9IGRsb3Blbl9zZWFyY2hwYXRoX3N5bXZlciAocmVhbF9k bG9wZW4sIGNhbGxlciwgcmVhbF9wYXRobmFtZSwgbW9kZSk7CistI2Vsc2UKKy0JICByZXQgPSBk bG9wZW5fc2VhcmNocGF0aCAoY2FsbGVyLCByZWFsX3BhdGhuYW1lLCBtb2RlKTsKKy0jZW5kaWYK Ky0JfQorLSAgICB9CisrICBpZiAoY2FsbGVyICYmIHJlYWxfcGF0aG5hbWUgJiYgIV9fY29sbGVj dG9yX3N0cmNociAocmVhbF9wYXRobmFtZSwgJy8nKSkKKysgICAgcmV0ID0gZGxvcGVuX3NlYXJj aHBhdGggKHJlYWxfZGxvcGVuLCBjYWxsZXIsIHJlYWxfcGF0aG5hbWUsIG1vZGUpOworIAorICAg aWYgKCFyZXQpCistICAgIHsKKy0jaWYgKEFSQ0goSW50ZWwpICYmIFdTSVpFKDMyKSkgfHwgQVJD SChTUEFSQykKKy0gICAgICByZXQgPSAocmVhbF9kbG9wZW4pIChyZWFsX3BhdGhuYW1lLCBtb2Rl KTsKKy0jZWxzZQorLSAgICAgIHJldCA9IENBTExfUkVBTCAoZGxvcGVuKShyZWFsX3BhdGhuYW1l LCBtb2RlKTsKKy0jZW5kaWYKKy0gICAgfQorKyAgICByZXQgPSByZWFsX2Rsb3BlbiAocmVhbF9w YXRobmFtZSwgbW9kZSk7CisgICBUcHJpbnRmVCAoREJHX0xUMiwgImxpYmNvbGxlY3RvciAtLSBk bG9wZW4oJXMpIHJldHVybmluZyAlcFxuIiwgcGF0aG5hbWUsIHJldCk7CisgCisgICAvKiBEb24n dCBjYWxsIHVwZGF0ZSBpZiBkbG9wZW4gZmFpbGVkOiBwcmVzZXJ2ZSBkbGVycm9yKCkgKi8KK0BA IC0xNjYwLDYgKzE1OTUsMzkgQEAgZGxvcGVuIChjb25zdCBjaGFyICpwYXRobmFtZSwgaW50IG1v ZGUpCisgICByZXR1cm4gcmV0OworIH0KKyAKKyt2b2lkICoKKytkbG9wZW4gKGNvbnN0IGNoYXIg KnBhdGhuYW1lLCBpbnQgbW9kZSkKKyt7CisrICBpZiAoTlVMTF9QVFIgKGRsb3BlbikpCisrICAg IGluaXRfbW1hcF9pbnRmICgpOworKyAgdm9pZCogY2FsbGVyID0gX19idWlsdGluX3JldHVybl9h ZGRyZXNzICgwKTsgLy8gbXVzdCBiZSBjYWxsZWQgaW5zaWRlIGRsb3BlbiBmaXJzdCBsYXllciBp bnRlcnBvc3Rpb24KKysgIHJldHVybiBfX2NvbGxlY3Rvcl9kbG9wZW5fc3ltdmVyIChDQUxMX1JF QUwgKGRsb3BlbiksIGNhbGxlciwgcGF0aG5hbWUsIG1vZGUpOworK30KKysKKysjaWYgIWRlZmlu ZWQoX19NVVNMX0xJQkMpICYmICgoQVJDSChJbnRlbCkgJiYgV1NJWkUoMzIpKSB8fCBBUkNIKFNQ QVJDKSkKKysvLyBtYXAgaW50ZXJwb3NlZCBzeW1ib2wgdmVyc2lvbnMKKysKKytTWU1WRVJfQVRU UklCVVRFIChfX2NvbGxlY3Rvcl9kbG9wZW5fMl8xLCBkbG9wZW5AQEdMSUJDXzIuMSkKKyt2b2lk ICoKKytfX2NvbGxlY3Rvcl9kbG9wZW5fMl8xIChjb25zdCBjaGFyICpwYXRobmFtZSwgaW50IG1v ZGUpCisreworKyAgaWYgKE5VTExfUFRSIChkbG9wZW5fMl8xKSkKKysgICAgaW5pdF9tbWFwX2lu dGYgKCk7CisrICB2b2lkICpjYWxsZXIgPSBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MgKDApOyAv LyBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgZGxvcGVuIGZpcnN0IGxheWVyIGludGVycG9zdGlvbgor KyAgcmV0dXJuIF9fY29sbGVjdG9yX2Rsb3Blbl9zeW12ZXIgKENBTExfUkVBTCAoZGxvcGVuXzJf MSksIGNhbGxlciwgcGF0aG5hbWUsIG1vZGUpOworK30KKysKKytTWU1WRVJfQVRUUklCVVRFIChf X2NvbGxlY3Rvcl9kbG9wZW5fMl8wLCBkbG9wZW5AR0xJQkNfMi4wKQorK3ZvaWQgKgorK19fY29s bGVjdG9yX2Rsb3Blbl8yXzAgKGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBpbnQgbW9kZSkKKyt7Cisr ICBpZiAoTlVMTF9QVFIgKGRsb3Blbl8yXzApKQorKyAgICBpbml0X21tYXBfaW50ZiAoKTsKKysg IHZvaWQqIGNhbGxlciA9IF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyAoMCk7IC8vIG11c3QgYmUg Y2FsbGVkIGluc2lkZSBkbG9wZW4gZmlyc3QgbGF5ZXIgaW50ZXJwb3N0aW9uCisrICByZXR1cm4g X19jb2xsZWN0b3JfZGxvcGVuX3N5bXZlciAoQ0FMTF9SRUFMIChkbG9wZW5fMl8wKSwgY2FsbGVy LCBwYXRobmFtZSwgbW9kZSk7CisrfQorKyNlbmRpZgorKworIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBkbGNsb3NlICovCisg aW50CisgZGxjbG9zZSAodm9pZCAqaGFuZGxlKQorZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29s bGVjdG9yL3Byb2ZpbGUuYyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL3Byb2ZpbGUuYworaW5kZXgg OTk2ZDNmMDkxOTguLmVlOWZiN2QzYjBjIDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0 b3IvcHJvZmlsZS5jCisrKysgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9wcm9maWxlLmMKK0BAIC0y NjgsNyArMjY4LDcgQEAgX19jb2xsZWN0b3JfZXh0X3Byb2ZpbGVfaGFuZGxlciAoc2lnaW5mb190 ICppbmZvLCB1Y29udGV4dF90ICpjb250ZXh0KQorICAgICAgIC8qIGFzc3VtZSB0aGlzIGNhc2Ug aXMgcmFyZSwgYW5kIGFjY2VwdCBvdmVyaGVhZCBvZiBjcmVhdGluZyBkdW1teV91YyAqLworICAg ICAgIFRwcmludGZUICgwLCAiY29sbGVjdG9yX3Byb2ZpbGVfaGFuZGxlcjogRVJST1I6IGdvdCBO VUxMIGNvbnRleHQhXG4iKTsKKyAgICAgICBjb250ZXh0ID0gJnVjdHhtZW07CistICAgICAgZ2V0 Y29udGV4dCAoY29udGV4dCk7ICAgICAvKiBpbml0aWFsaXplIGR1bW15IGNvbnRleHQgKi8KKysg ICAgICBDQUxMX1VUSUwgKGdldGNvbnRleHQpIChjb250ZXh0KTsgICAgIC8qIGluaXRpYWxpemUg ZHVtbXkgY29udGV4dCAqLworICAgICAgIFNFVEZVTkNUSU9OQ09OVEVYVCAoY29udGV4dCwgJl9f Y29sbGVjdG9yX2xvc3RfcHJvZmlsZV9jb250ZXh0KTsKKyAgICAgfQorICAgQ2xvY2tQYWNrZXQg cGNrdDsKK2RpZmYgLS1naXQgYS9ncHJvZm5nL2xpYmNvbGxlY3Rvci9zeW5jdHJhY2UuYyBiL2dw cm9mbmcvbGliY29sbGVjdG9yL3N5bmN0cmFjZS5jCitpbmRleCA0OTJlZjk5OTNmNy4uZDQ4YWVh YTJkMmQgMTAwNjQ0CistLS0gYS9ncHJvZm5nL2xpYmNvbGxlY3Rvci9zeW5jdHJhY2UuYworKysr IGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3Ivc3luY3RyYWNlLmMKK0BAIC0zMiwxMCArMzIsOSBAQAor ICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgCisgI2luY2x1ZGUgImdwLWRlZnMuaCIKKy0jaW5jbHVk ZSAiY29sbGVjdG9yX21vZHVsZS5oIgorKyNpbmNsdWRlICJjb2xsZWN0b3IuaCIKKyAjaW5jbHVk ZSAiZ3AtZXhwZXJpbWVudC5oIgorICNpbmNsdWRlICJkYXRhX3Bja3RzLmgiCistI2luY2x1ZGUg ImkxOG4uaCIKKyAjaW5jbHVkZSAidHNkLmgiCisgI2luY2x1ZGUgImNjX2xpYmNvbGxlY3Rvci5o IgorIAorZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL3Vud2luZC5jIGIvZ3Byb2Zu Zy9saWJjb2xsZWN0b3IvdW53aW5kLmMKK2luZGV4IGY4ZTExODIzYzgxLi4wMDliNWFiODQ1NiAx MDA2NDQKKy0tLSBhL2dwcm9mbmcvbGliY29sbGVjdG9yL3Vud2luZC5jCisrKysgYi9ncHJvZm5n L2xpYmNvbGxlY3Rvci91bndpbmQuYworQEAgLTIzMiw3ICsyMzIsNyBAQCBtZW1vcnlfZXJyb3Jf ZnVuYyAoaW50IHN0YXR1cyBBVFRSSUJVVEVfVU5VU0VELCBiZmRfdm1hIGFkZHIgQVRUUklCVVRF X1VOVVNFRCwKKyAKKyAjZWxpZiBBUkNIKEFhcmNoNjQpCisgI2RlZmluZSBGSUxMX0NPTlRFWFQo Y29udGV4dCkgXAorLSAgICB7IGdldGNvbnRleHQoY29udGV4dCk7ICBcCisrICAgIHsgQ0FMTF9V VElMIChnZXRjb250ZXh0KSAoY29udGV4dCk7ICBcCisgICAgICAgY29udGV4dC0+dWNfbWNvbnRl eHQuc3AgPSAoX191NjQpIF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDApOyBcCisgICAgIH0KKyAK K2RpZmYgLS1naXQgYS9ncHJvZm5nL3NyYy9FeHBlcmltZW50LmNjIGIvZ3Byb2ZuZy9zcmMvRXhw ZXJpbWVudC5jYworaW5kZXggYzc5NzcyNGFmMDcuLjk4YWFlOTcxNGFjIDEwMDY0NAorLS0tIGEv Z3Byb2ZuZy9zcmMvRXhwZXJpbWVudC5jYworKysrIGIvZ3Byb2ZuZy9zcmMvRXhwZXJpbWVudC5j YworQEAgLTY0NjYsNyArNjQ2Niw3IEBAIGludAorIEV4cGVyaW1lbnQ6OmNvcHlfZmlsZV90b19h cmNoaXZlIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICphbmFtZSwgaW50IGhpZGVfbXNn KQorIHsKKyAgIGVycm5vID0gMDsKKy0gIGludCBmZF93ID0gb3BlbjY0IChhbmFtZSwgT19XUk9O TFkgfCBPX0NSRUFUIHwgT19FWENMLCAwNjQ0KTsKKysgIGludCBmZF93ID0gOjpvcGVuNjQgKGFu YW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX0VYQ0wsIDA2NDQpOworICAgaWYgKGZkX3cgPT0g LTEpCisgICAgIHsKKyAgICAgICBpZiAoZXJybm8gPT0gRUVYSVNUKQorQEAgLTY0ODQsNyArNjQ4 NCw3IEBAIEV4cGVyaW1lbnQ6OmNvcHlfZmlsZV90b19hcmNoaXZlIChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICphbmFtZSwgaW50IGhpZGVfCisgICAgICAgcmV0dXJuIDE7CisgICAgIH0K KyAKKy0gIGludCBmZF9yID0gb3BlbjY0IChuYW1lLCBPX1JET05MWSk7CisrICBpbnQgZmRfciA9 IDo6b3BlbjY0IChuYW1lLCBPX1JET05MWSk7CisgICBpZiAoZmRfciA9PSAtMSkKKyAgICAgewor ICAgICAgIGZwcmludGYgKHN0ZGVyciwgR1RYVCAoImVyX2FyY2hpdmU6IHVuYWJsZSB0byBvcGVu IGAlcyc6ICVzXG4iKSwKK2RpZmYgLS1naXQgYS9ncHJvZm5nL3NyYy9QcmludC5jYyBiL2dwcm9m bmcvc3JjL1ByaW50LmNjCitpbmRleCBkNDE1ZDU5MWUxZS4uMDM5MzI1MzA5NTYgMTAwNjQ0Cist LS0gYS9ncHJvZm5nL3NyYy9QcmludC5jYworKysrIGIvZ3Byb2ZuZy9zcmMvUHJpbnQuY2MKK0BA IC0yMjA5LDE0ICsyMjA5LDE0IEBAIHByaW50X2Fubm9fZmlsZSAoY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqc2VsLCBjb25zdCBjaGFyICpzcmNGaWxlLAorIAkgICAgeworIAkgICAgICBmaXRlbSA9 IGZ1bmMtPmdldERlZlNyYyAoKTsKKyAJICAgICAgZm91bmQgPSAoZnVuYy0+bGluZV9maXJzdCA+ IDApCistCQkgICAgICAmJiBzdHJjbXAgKGJhc2VuYW1lIChzcmNGaWxlKSwKKy0JCQkJIGJhc2Vu YW1lIChmaXRlbS0+Z2V0X25hbWUgKCkpKSA9PSAwOworKwkJICAgICAgJiYgc3RyY21wIChnZXRf YmFzZW5hbWUgKHNyY0ZpbGUpLAorKwkJCQkgZ2V0X2Jhc2VuYW1lIChmaXRlbS0+Z2V0X25hbWUg KCkpKSA9PSAwOworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIHsKKyAJICAgICAgVmVjX2xvb3Ag KFNvdXJjZUZpbGUqLCBzb3VyY2VzLCBpbmRleCwgZml0ZW0pCisgCSAgICAgIHsKKy0JCWlmIChz dHJjbXAgKGJhc2VuYW1lIChzcmNGaWxlKSwgYmFzZW5hbWUgKGZpdGVtLT5nZXRfbmFtZSAoKSkp ID09IDApCisrCQlpZiAoc3RyY21wIChnZXRfYmFzZW5hbWUgKHNyY0ZpbGUpLCBnZXRfYmFzZW5h bWUgKGZpdGVtLT5nZXRfbmFtZSAoKSkpID09IDApCisgCQkgIHsKKyAJCSAgICBmb3VuZCA9IHRy dWU7CisgCQkgICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9zcmMvY29sbGVjdG9yX21v ZHVsZS5oIGIvZ3Byb2ZuZy9zcmMvY29sbGVjdG9yX21vZHVsZS5oCitpbmRleCBmNjA4ZGFiNTgz MS4uNmNmNTNkNWIyN2YgMTAwNjQ0CistLS0gYS9ncHJvZm5nL3NyYy9jb2xsZWN0b3JfbW9kdWxl LmgKKysrKyBiL2dwcm9mbmcvc3JjL2NvbGxlY3Rvcl9tb2R1bGUuaAorQEAgLTI1LDYgKzI1LDcg QEAKKyAjaW5jbHVkZSA8c3RkYXJnLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUg PHVuaXN0ZC5oPgorKyNpbmNsdWRlIDx1Y29udGV4dC5oPgorICNpbmNsdWRlIDxkaXJlbnQuaD4K KyAKKyAjaW5jbHVkZSAiZ3AtZGVmcy5oIgorQEAgLTU1LDYgKzU2LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgQ29sbGVjdG9yVXRpbEZ1bmNzCisgICBpbnQgKCpmcHJpbnRmKShGSUxFICpzdHJlYW0sIGNv bnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgIHZvaWQgKCpmcmVlKSh2b2lkICpwdHIpOworICAg aW50ICgqZnN0YXQpKGludCBmZCwgc3RydWN0IHN0YXQgKmJ1Zik7CisrICBpbnQgKCpnZXRjb250 ZXh0KSh1Y29udGV4dF90ICp1Y3ApOworICAgaW50ICgqZ2V0Y3B1aWQpKCk7CisgICBjaGFyICoo KmdldGN3ZCkoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSk7CisgICBjaGFyICooKmdldGVudikoY29u c3QgY2hhciAqbmFtZSk7CitAQCAtNjYsNyArNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb2xsZWN0 b3JVdGlsRnVuY3MKKyAgIGludCAoKm1rZGlyKSgpOworICAgdGltZV90ICgqbWt0aW1lKShzdHJ1 Y3QgdG0gKnRpbWVwdHIpOworICAgdm9pZCAqKCptbWFwKSh2b2lkICosIHNpemVfdCwgaW50LCBp bnQsIGludCwgb2ZmX3QpOworLSAgdm9pZCAqKCptbWFwNjQpKCk7CisrICB2b2lkICooKm1tYXA2 NF8pKCk7CisgICBpbnQgKCptdW5tYXApKCk7CisgICBpbnQgKCpvcGVuKShjb25zdCBjaGFyICos IGludCwgLi4uKTsKKyAgIGludCAoKm9wZW5fYmFyZSkoY29uc3QgY2hhciAqLCBpbnQsIC4uLik7 CitAQCAtNzUsNyArNzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb2xsZWN0b3JVdGlsRnVuY3MKKyAg IEZJTEUgKigqcG9wZW4pKGNvbnN0IGNoYXIgKmNvbW1hbmQsIGNvbnN0IGNoYXIgKm1vZGUpOwor ICAgaW50ICgqcHV0ZW52KShjaGFyICpzdHJpbmcpOworICAgc3NpemVfdCAoKnB3cml0ZSkoKTsK Ky0gIHNzaXplX3QgKCpwd3JpdGU2NCkoKTsKKysgIHNzaXplX3QgKCpwd3JpdGU2NF8pKCk7Cisg ICBzc2l6ZV90ICgqcmVhZCkoKTsKKyAgIGludCAoKnNldGVudikoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqdmFsdWUsIGludCBvdmVyd3JpdGUpOworICAgaW50ICgqc2lnZmlsbHNldCko c2lnc2V0X3QgKnNldCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvZml4 LWxpYmNvbGxlY3Rvci13aXRob3V0LWphdmEucGF0Y2ggYi9zcmNwa2dzL2JpbnV0aWxzL3BhdGNo ZXMvZml4LWxpYmNvbGxlY3Rvci13aXRob3V0LWphdmEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NDM4NDg3NWYzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvZml4LWxpYmNvbGxlY3Rvci13aXRob3V0LWphdmEucGF0 Y2gKQEAgLTAsMCArMSw1MyBAQAorRnJvbSA0OWRkZDgxNGFjMTA3MWFmN2M0ZjQ1ZDVmODM5OGI5 MTg2MmYyYzdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVmxhZGltaXIgTWV6ZW50 c2V2IDx2bGFkaW1pci5tZXplbnRzZXZAb3JhY2xlLmNvbT4KK0RhdGU6IFdlZCwgMTcgQXVnIDIw MjIgMTk6NTU6MjMgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ3Byb2ZuZzogZml4IGJ1ZyAyOTQ3 OSBDb2xsZWN0aW9uIGZhaWxzIHdoZW4gYnVpbHQgd2l0aG91dAorIGphdmEgc3VwcG9ydAorCitn cHJvZm5nL0NoYW5nZUxvZworMjAyMi0wOC0xNyAgVmxhZGltaXIgTWV6ZW50c2V2ICA8dmxhZGlt aXIubWV6ZW50c2V2QG9yYWNsZS5jb20+CisKKwlQUiBncHJvZm5nLzI5NDc5CisJKiBsaWJjb2xs ZWN0b3IvY29sbGVjdG9yLmM6IEFkZCAjaWYgZGVmaW5lZChHUFJPRk5HX0pBVkFfUFJPRklMSU5H KSBmb3IKKwlqYXZhIHNwZWNpZmljIGNvZGUuCisJKiBsaWJjb2xsZWN0b3IvdW53aW5kLmM6IExp a2V3aXNlLgorLS0tCisgZ3Byb2ZuZy9saWJjb2xsZWN0b3IvY29sbGVjdG9yLmMgfCAyICsrCisg Z3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53aW5kLmMgICAgfCAyICsrCisgMiBmaWxlcyBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL2Nv bGxlY3Rvci5jIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvY29sbGVjdG9yLmMKK2luZGV4IDkzYzlk MzMzMGRlNS4uY2VmZjJjMWNhY2NiIDEwMDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3Iv Y29sbGVjdG9yLmMKKysrKyBiL2dwcm9mbmcvbGliY29sbGVjdG9yL2NvbGxlY3Rvci5jCitAQCAt OTEzLDggKzkxMywxMCBAQCBfX2NvbGxlY3Rvcl9vcGVuX2V4cGVyaW1lbnQgKGNvbnN0IGNoYXIg KmV4cCwgY29uc3QgY2hhciAqcGFyYW1zLCBzcF9vcmlnaW5fdCBvcgorICAgX19jb2xsZWN0b3Jf ZXh0X3Vud2luZF9rZXlfaW5pdCAoMSwgTlVMTCk7CisgCisgICAvKiBzdGFydCBqYXZhIGF0dGFj aCBpZiBzdWl0YWJsZSAqLworKyNpZiBkZWZpbmVkKEdQUk9GTkdfSkFWQV9QUk9GSUxJTkcpCisg ICBpZiAoZXhwX29yaWdpbiA9PSBTUF9PUklHSU5fREJYX0FUVEFDSCkKKyAgICAgX19jb2xsZWN0 b3JfanByb2ZpbGVfc3RhcnRfYXR0YWNoICgpOworKyNlbmRpZgorICAgc3RhcnRfc2VjX3RpbWUg PSBDQUxMX1VUSUwgKHRpbWUpKE5VTEwpOworICAgX19jb2xsZWN0b3Jfc3RhcnRfdGltZSA9IGNv bGxlY3Rvcl9pbnRlcmZhY2UuZ2V0SGlSZXNUaW1lICgpOworICAgVHByaW50ZlQgKERCR19MVDAs ICJcdF9fY29sbGVjdG9yX29wZW5fZXhwZXJpbWVudDsgcmVzZXR0aW5nIHN0YXJ0X3RpbWVcbiIp OworZGlmZiAtLWdpdCBhL2dwcm9mbmcvbGliY29sbGVjdG9yL3Vud2luZC5jIGIvZ3Byb2ZuZy9s aWJjb2xsZWN0b3IvdW53aW5kLmMKK2luZGV4IDExOTI0Mzc4ODAyMC4uZjhlMTE4MjNjODFlIDEw MDY0NAorLS0tIGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53aW5kLmMKKysrKyBiL2dwcm9mbmcv bGliY29sbGVjdG9yL3Vud2luZC5jCitAQCAtNTU3LDYgKzU1Nyw3IEBAIF9fY29sbGVjdG9yX2dl dF9mcmFtZV9pbmZvIChocnRpbWVfdCB0cywgaW50IG1vZGUsIHZvaWQgKmFyZykKKyAgIGludCBz aXplID0gbWF4X2ZyYW1lX3NpemU7CisgCisgI2RlZmluZSBNSU4oYSxiKSAoKGEpPChiKT8oYSk6 KGIpKQorKyNpZiBkZWZpbmVkKEdQUk9GTkdfSkFWQV9QUk9GSUxJTkcpCisgICAvKiBnZXQgSmF2 YSBpbmZvICovCisgICBpZiAoX19jb2xsZWN0b3JfamF2YV9tb2RlICYmIF9fY29sbGVjdG9yX2ph dmFfYXN5bmNnZXRjYWxsdHJhY2VfbG9hZGVkICYmIGNvbnRleHQgJiYgIXBzZXVkb19jb250ZXh0 KQorICAgICB7CitAQCAtNTY5LDYgKzU3MCw3IEBAIF9fY29sbGVjdG9yX2dldF9mcmFtZV9pbmZv IChocnRpbWVfdCB0cywgaW50IG1vZGUsIHZvaWQgKmFyZykKKyAJICBzaXplIC09IHN6OworIAl9 CisgICAgIH0KKysjZW5kaWYKKyAKKyAgIC8qIGdldCBuYXRpdmUgc3RhY2sgKi8KKyAgIGlmIChj b250ZXh0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iaW51dGlscy9wYXRjaGVzL3BwYzY0LXJldmVy dC1nbnUtYXR0cmlidXRlcy5wYXRjaCBiL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy9wcGM2NC1y ZXZlcnQtZ251LWF0dHJpYnV0ZXMucGF0Y2gKaW5kZXggNWRlOTM3ZjRmY2NlLi4xYzIwOGRkODk1 NWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy9wcGM2NC1yZXZlcnQtZ251 LWF0dHJpYnV0ZXMucGF0Y2gKKysrIGIvc3JjcGtncy9iaW51dGlscy9wYXRjaGVzL3BwYzY0LXJl dmVydC1nbnUtYXR0cmlidXRlcy5wYXRjaApAQCAtMSwzOSArMSwyNCBAQAotRnJvbSBiMWZhZjk5 ZjNlNTQ2ZGYyY2QzMDJiYjFhZDM2YTIwNzgyMjRmZThiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbSBiYmYwNWI3NDJmZGU1MThmYjk3Yzc4OWIwNDNmZTBkM2FhZjU0OWYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQXJpYWRuZSBDb25pbGwgPGFyaWFkbmVAZGVyZWZlcmVu Y2VkLm9yZz4KLURhdGU6IEZyaSwgMzAgT2N0IDIwMjAgMTY6NTk6NDggLTA2MDAKK0RhdGU6IFR1 ZSwgMjEgU2VwIDIwMjEgMTQ6NTM6MTMgKzAwMDAKIFN1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJQ UjI1ODgyLCAuZ251LmF0dHJpYnV0ZXMgYXJlIG5vdCBjaGVja2VkIGZvciBzaGFyZWQKICBsaWJy YXJpZXMiCiAKK1RoaXMgcmV2ZXJ0IGlzIG5lZWRlZCB0byBhdm9pZCB3cm9uZ2x5IHRhZ2dpbmcg b2JqZWN0cyB3aXRoIHRoZSBpbmNvbXBhdGlibGUKK0lCTSBsb25nIGRvdWJsZSBBQkksIHdoaWNo IGlzIG5vdCBzdXBwb3J0ZWQgYnkgbXVzbCBhbmQgd2lsbCByZXN1bHQgaW4KK2xpbmtpbmcgZXJy b3JzIGlmIHVzZWQuCisKIFRoaXMgcmV2ZXJ0cyBjb21taXQgYThhY2Q2ZWViNmRjMmNjNTQ2MGVj ZTkwZjkwZWJlMzZiNTZiMjBiYS4KIC0tLQotIGJmZC9DaGFuZ2VMb2cgICAgIHwgNiAtLS0tLS0K LSBiZmQvZWxmMzItdGljNnguYyB8IDMgLS0tCi0gbGQvQ2hhbmdlTG9nICAgICAgfCA2IC0tLS0t LQotIGxkL2xkbGFuZy5jICAgICAgIHwgOSArKysrLS0tLS0KLSA0IGZpbGVzIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCisgYmZkL2VsZjMyLXRpYzZ4LmMgfCAgMyAt LS0KKyBsZC9sZGxhbmcuYyAgICAgICB8IDEwICsrKystLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2JmZC9DaGFu Z2VMb2cgYi9iZmQvQ2hhbmdlTG9nCi1pbmRleCA5ZmFjMTI1MzhhLi5iNTQ2MTQ5NGU4IDEwMDY0 NAotLS0tIGEvYmZkL0NoYW5nZUxvZwotKysrIGIvYmZkL0NoYW5nZUxvZwotQEAgLTE0MjIsMTIg KzE0MjIsNiBAQAotIAlhY2Nlc3Npbmcgcm9vdC51LmRlZiBvZiBzeW1ib2xzLiAgQWxzbyBjaGVj ayByb290LnUuZGVmLnNlY3Rpb24KLSAJaXMgbm9uLU5VTEwuICBSZXZlcnNlIHRlc3RzIHNvIGFz IHRvIG1ha2UgdGhlIGxvZ2ljIHBvc2l0aXZlLgotIAotLTIwMjAtMDUtMDEgIEFsYW4gTW9kcmEg IDxhbW9kcmFAZ21haWwuY29tPgotLQotLQlQUiAyNTg4MgotLQkqIGVsZjMyLXRpYzZ4LmMgKGVs ZjMyX3RpYzZ4X21lcmdlX2F0dHJpYnV0ZXMpOiBEb24ndCB0cmFuc2ZlcgotLQlUYWdfQUJJX1BJ QyBvciBUYWdfQUJJX1BJRCBmcm9tIGR5bmFtaWMgb2JqZWN0cyB0byB0aGUgb3V0cHV0LgotLQot IDIwMjAtMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgotIAotIAlQUiAyNTg4 MgogZGlmZiAtLWdpdCBhL2JmZC9lbGYzMi10aWM2eC5jIGIvYmZkL2VsZjMyLXRpYzZ4LmMKLWlu ZGV4IGI4YjkxNmJmZDMuLjkxYmI2YTEwYjEgMTAwNjQ0CitpbmRleCA1NzU0ZjNjYjg2MC4uM2Fk MWQ2MTI3NDkgMTAwNjQ0CiAtLS0gYS9iZmQvZWxmMzItdGljNnguYwogKysrIGIvYmZkL2VsZjMy LXRpYzZ4LmMKLUBAIC0zNzQ4LDkgKzM3NDgsNiBAQCBlbGYzMl90aWM2eF9tZXJnZV9hdHRyaWJ1 dGVzIChiZmQgKmliZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQorQEAgLTM3MzUsOSAr MzczNSw2IEBAIGVsZjMyX3RpYzZ4X21lcmdlX2F0dHJpYnV0ZXMgKGJmZCAqaWJmZCwgc3RydWN0 IGJmZF9saW5rX2luZm8gKmluZm8pCiAgCiAgCWNhc2UgVGFnX0FCSV9QSUM6CiAgCWNhc2UgVGFn X0FCSV9QSUQ6CkBAIC00MywzNiArMjgsMjAgQEAgaW5kZXggYjhiOTE2YmZkMy4uOTFiYjZhMTBi MSAxMDA2NDQKICAJICBpZiAob3V0X2F0dHJbaV0uaSA+IGluX2F0dHJbaV0uaSkKICAJICAgIG91 dF9hdHRyW2ldLmkgPSBpbl9hdHRyW2ldLmk7CiAgCSAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvbGQv Q2hhbmdlTG9nIGIvbGQvQ2hhbmdlTG9nCi1pbmRleCA0ZWVjN2QyOTc3Li5iOTM0NTJmNzBjIDEw MDY0NAotLS0tIGEvbGQvQ2hhbmdlTG9nCi0rKysgYi9sZC9DaGFuZ2VMb2cKLUBAIC0xMzE5LDEy ICsxMzE5LDYgQEAKLSAJKiB0ZXN0c3VpdGUvbGQtYWFyY2g2NC9mYXJjYWxsLWdyb3VwLmQ6IE5l dyB0ZXN0IGRyaXZlci4KLSAJKiB0ZXN0c3VpdGUvbGQtYWFyY2g2NC9hYXJjaDY0LWVsZi5leHA6 IFJ1biB0aGUgbmV3IHRlc3QuCi0gCi0tMjAyMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBn bWFpbC5jb20+Ci0tCi0tCVBSIDI1ODgyCi0tCSogbGRsYW5nLmMgKGxhbmdfY2hlY2spOiBDYWxs IGJmZF9tZXJnZV9wcml2YXRlX2JmZF9kYXRhIGZvcgotLQlzaGFyZWQgbGlicmFyaWVzLgotLQot IDIwMjAtMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgotIAotIAkqIHBvL0JM RC1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KIGRpZmYgLS1naXQgYS9sZC9sZGxhbmcuYyBiL2xk L2xkbGFuZy5jCi1pbmRleCA5OTc3MTk1MDc0Li4xNzNkOGVjMzQ5IDEwMDY0NAoraW5kZXggMzdi NjRjODllZTEuLmYxM2JlYWVmOWQ5IDEwMDY0NAogLS0tIGEvbGQvbGRsYW5nLmMKICsrKyBiL2xk L2xkbGFuZy5jCi1AQCAtNjk3MiwxMiArNjk3MiwxMSBAQCBsYW5nX2NoZWNrICh2b2lkKQorQEAg LTcwNzEsMTMgKzcwNzEsMTEgQEAgbGFuZ19jaGVjayAodm9pZCkKICAJCSAgIGJmZF9wcmludGFi bGVfbmFtZSAoaW5wdXRfYmZkKSwgaW5wdXRfYmZkLAogIAkJICAgYmZkX3ByaW50YWJsZV9uYW1l IChsaW5rX2luZm8ub3V0cHV0X2JmZCkpOwogIAl9CiAtCiAtICAgICAgLyogSWYgdGhlIGlucHV0 IGJmZCBoYXMgbm8gY29udGVudHMsIGl0IHNob3VsZG4ndCBzZXQgdGhlCiAtCSBwcml2YXRlIGRh dGEgb2YgdGhlIG91dHB1dCBiZmQuICAqLwotLSAgICAgIGVsc2UgaWYgKChpbnB1dF9iZmQtPmZs YWdzICYgRFlOQU1JQykgIT0gMAotLQkgICAgICAgfHwgYmZkX2NvdW50X3NlY3Rpb25zIChpbnB1 dF9iZmQpICE9IDApCistICAgICAgZWxzZSBpZiAoIWZpbGUtPmZsYWdzLmp1c3Rfc3ltcworLQkg ICAgICAgJiYgKChpbnB1dF9iZmQtPmZsYWdzICYgRFlOQU1JQykgIT0gMAorLQkJICAgfHwgYmZk X2NvdW50X3NlY3Rpb25zIChpbnB1dF9iZmQpICE9IDApKQogKyAgICAgIGVsc2UgaWYgKGJmZF9j b3VudF9zZWN0aW9ucyAoaW5wdXRfYmZkKSkKICAJewogKwkgIC8qIElmIHRoZSBpbnB1dCBiZmQg aGFzIG5vIGNvbnRlbnRzLCBpdCBzaG91bGRuJ3Qgc2V0IHRoZQpAQCAtODIsNSArNTEsNCBAQCBp bmRleCA5OTc3MTk1MDc0Li4xNzNkOGVjMzQ5IDEwMDY0NAogIAogIAkgIC8qIElmIHdlIGFyZW4n dCBzdXBwb3NlZCB0byB3YXJuIGFib3V0IG1pc21hdGNoZWQgaW5wdXQKIC0tIAotMi4yOS4yCi0K KzIuMzMuMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv YmludXRpbHMvdGVtcGxhdGUKaW5kZXggNjI3MGY4NjE4Yzg3Li4yNTZlNjI3MTM1YjAgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvYmludXRpbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iaW51dGlscy90 ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmludXRpbHMn CiBwa2duYW1lPWJpbnV0aWxzCi12ZXJzaW9uPTIuMzUuMQotcmV2aXNpb249NAordmVyc2lvbj0y LjM5CityZXZpc2lvbj0xCiBib290c3RyYXA9eWVzCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWciCiBtYWtlZGVwZW5kcz0iemxpYi1kZXZlbCIKIHNob3J0X2Rlc2M9IkdOVSBiaW5hcnkgdXRp bGl0aWVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2JpbnV0aWxzLyIKIGRpc3RmaWxlcz0iJHtHTlVfU0lURX0vJHBrZ25hbWUvJHBr Z25hbWUtJHZlcnNpb24udGFyLnh6IgotY2hlY2tzdW09M2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVh YjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNworY2hlY2tzdW09NjQ1YzI1 ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQw MAogCiBzdWJwYWNrYWdlcz0iYmludXRpbHMtZG9jIgogaWYgWyAiJENIUk9PVF9SRUFEWSIgXTsg dGhlbgotCWhvc3RtYWtlZGVwZW5kcz0iZmxleCBwZXJsIHRleGluZm8iCisJaG9zdG1ha2VkZXBl bmRzKz0iIGZsZXggcGVybCB0ZXhpbmZvIgogCW1ha2VkZXBlbmRzKz0iIGVsZnV0aWxzLWRldmVs IgogCWNoZWNrZGVwZW5kcz0iYmMiCiAJZGVwZW5kcz0iYmludXRpbHMtZG9jIgpAQCAtNDQsNiAr NDUsMTIgQEAgZG9fY29uZmlndXJlKCkgewogCQljb25mKz0iIC0taG9zdD0ke1hCUFNfQ1JPU1Nf VFJJUExFVH0gLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IgogCWZpCiAK KwkjIGdwcm9mbmcgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgeDg2IGFuZCBhYXJjaDY0LgorCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQl4ODZfNjQqfGkzODYqfGFhcmNoNjQqKSBj b25mKz0iIC0tZW5hYmxlLWdwcm9mbmciIDs7CisJCSopIGNvbmYrPSIgLS1kaXNhYmxlLWdwcm9m bmciIDs7CisJZXNhYworCiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCXBwYyop CiAJCQljb25mKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKQEAgLTc2LDEzICs4MywxNSBAQCBkb19j b25maWd1cmUoKSB7CiAJCS0tbGliZGlyPS91c3IvbGliIFwKIAkJLS1tYW5kaXI9L3Vzci9zaGFy ZS9tYW4gXAogCQktLWluZm9kaXI9L3Vzci9zaGFyZS9pbmZvIFwKKwkJLS1zeXNjb25mZGlyPS9l dGMgXAogCQktLWRpc2FibGUtd2Vycm9yIFwKLQkJLS1kaXNhYmxlLXNoYXJlZCBcCiAJCS0tZGlz YWJsZS1ubHMgXAorCQktLWVuYWJsZS1zaGFyZWQgXAogCQktLWVuYWJsZS10aHJlYWRzIFwKIAkJ LS1lbmFibGUtcGx1Z2lucyBcCiAJCS0tZW5hYmxlLXJlbHJvIFwKIAkJLS1lbmFibGUtZ29sZCBc CisJCS0tZW5hYmxlLW5ldy1kdGFncyBcCiAJCS0tZW5hYmxlLWRldGVybWluaXN0aWMtYXJjaGl2 ZXMgXAogCQktLWVuYWJsZS02NC1iaXQtYmZkIFwKIAkJLS1lbmFibGUtbGQ9ZGVmYXVsdCBcCkBA IC0xNDIsNyArMTUxLDggQEAgYmludXRpbHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgInVzci9saWIvKi5hIgotCQl2bW92 ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi9saWJiZmQuc28iCisJCXZtb3ZlICJ1 c3IvbGliL2xpYm9wY29kZXMuc28iCiAJfQogfQogCgpGcm9tIGI0MmEzMDkyMGM4OWU5Yzg0OTMy ZDU1NDE3YzQyM2MzMzUwM2FkZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82 MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxNiBTZXAgMjAyMiAwNDowOTowMCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBnZGI6IHJlc29sdmUgY29uZmxpY3Qgd2l0aCBiaW51 dGlscyAyLjM5CgotLS0KIHNyY3BrZ3MvZ2RiL3RlbXBsYXRlIHwgNSArKystLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dkYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RiL3RlbXBsYXRlCmluZGV4IGZmN2M5ZDlhNTkx MS4uNTk3MDQwMmViMjdlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dkYi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dkYi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dkYicKIHBrZ25hbWU9Z2RiCiB2ZXJzaW9uPTEyLjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIHB5Y29tcGlsZV9kaXJzPSIvdXNyL3NoYXJlL2dk Yi9weXRob24iCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdlcnJvciAtLWRpc2FibGUtbmxz IC0td2l0aC1zeXN0ZW0tcmVhZGxpbmUKQEAgLTQ4LDcgKzQ4LDggQEAgdm9wdF9jb25mbGljdCBk ZWJ1Z2luZm9kIHN0YXRpYwogCiBwb3N0X2luc3RhbGwoKSB7CiAJIyByZXNvbHZlIGNvbmZsaWN0 cyB3aXRoIGJpbnV0aWxzCi0Jcm0gLXIgJHtERVNURElSfS91c3Ive2luY2x1ZGUsbGliLHNoYXJl L2luZm8vYmZkLmluZm8qfQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci97aW5jbHVkZSxsaWJ9CisJ cm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlL2luZm8ve2JmZCxjdGYtc3BlY30uaW5mbyoKIH0K IAogZ2RiLWNvbW1vbl9wYWNrYWdlKCkgewoKRnJvbSBjMjE5NzcyMWVjYmVhN2MwZGM4ZWQzZDkx NmY0ZTFhY2MzNTU3ODI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxv cmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTYgU2VwIDIwMjIgMTU6NTQ6NTEgLTA3MDAK U3ViamVjdDogW1BBVENIIDQvNF0gYnVpbGQtc3R5bGUvdm9pZC1jcm9zczogdXBkYXRlIGZsYWdz IGZvciBiaW51dGlscyAyLjM5CgotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNo IHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9idWlsZC1zdHlsZS92 b2lkLWNyb3NzLnNoCmluZGV4IDkyZjAzZjgxMzBmNS4uNDFiMzk2ZmNiODc1IDEwMDY0NAotLS0g YS9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaAorKysgYi9jb21tb24vYnVpbGQtc3R5 bGUvdm9pZC1jcm9zcy5zaApAQCAtNTMsNiArNTMsNyBAQCBfdm9pZF9jcm9zc19idWlsZF9iaW51 dGlscygpIHsKIAkJLS1zYmluZGlyPS91c3IvYmluIFwKIAkJLS1saWJkaXI9L3Vzci9saWIgXAog CQktLWxpYmV4ZWNkaXI9L3Vzci9saWIgXAorCQktLXN5c2NvbmZkaXI9L2V0YyBcCiAJCS0tdGFy Z2V0PSR7dGd0fSBcCiAJCS0td2l0aC1zeXNyb290PS91c3IvJHt0Z3R9IFwKIAkJLS1kaXNhYmxl LW5scyBcCkBAIC02MCw4ICs2MSwxMCBAQCBfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscygpIHsK IAkJLS1kaXNhYmxlLW11bHRpbGliIFwKIAkJLS1kaXNhYmxlLXdlcnJvciBcCiAJCS0tZGlzYWJs ZS1nb2xkIFwKKwkJLS1kaXNhYmxlLWdwcm9mbmcgXAogCQktLWVuYWJsZS1yZWxybyBcCiAJCS0t ZW5hYmxlLXBsdWdpbnMgXAorCQktLWVuYWJsZS1uZXctZHRhZ3MgXAogCQktLWVuYWJsZS02NC1i aXQtYmZkIFwKIAkJLS1lbmFibGUtZGV0ZXJtaW5pc3RpYy1hcmNoaXZlcyBcCiAJCS0tZW5hYmxl LWRlZmF1bHQtaGFzaC1zdHlsZT1nbnUgXApAQCAtNjI1LDYgKzYyOCw5IEBAIGRvX2luc3RhbGwo KSB7CiAJIyB0aGVuIHJlbW92ZSBpdCBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGxpYnF1YWRt YXRoIHBhY2thZ2UKIAlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGlicXVh ZG1hdGguKgogCisJIyBSZW1vdmUgbGliZGVwIGxpbmtlciBwbHVnaW4gYmVjYXVzZSBpdCBjb25m bGljdHMgd2l0aCBzeXN0ZW0gYmludXRpbHMKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIvYmZk LXBsdWdpbnMvbGliZGVwKgorCiAJIyBSZW1vdmUgbGVmdG92ZXIgc3ltbGlua3MKIAlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIke1hCUFNfVEFSR0VUX1dPUkRTSVpFfQogCXJtIC1mICR7REVTVERJ Un0vbGliKgo= --===============1863194013967964316==--