From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE,URIBL_SBL_A autolearn=ham autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 51C6323FB4 for ; Sat, 22 Jun 2024 00:41:23 +0200 (CEST) Content-Type: multipart/mixed; boundary="===============7266467979995604914==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_liferea=3A_update_to_1=2E14=2E6=2E?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 22 Jun 2024 00:41:23 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============7266467979995604914== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IG9yZW82MzkgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL29yZW82Mzkv dm9pZC1wYWNrYWdlcyBsaWZlcmVhCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC81MDkxOAoKbGlmZXJlYTogdXBkYXRlIHRvIDEuMTQuNi4KPCEtLSBVbmNv bW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3Qg YXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRo ZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2th Z2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1l bnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFz dGVyL0NPTlRSSUJVVElORy5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoq DQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0 aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRS SUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUg bmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQu DQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+ DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2Fs bHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhp cyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsg Y3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1t dXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzUwOTE4LnBhdGNoIGlzIGF0dGFjaGVk --===============7266467979995604914== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-liferea-50918.patch" RnJvbSA3MzM2MjMyZmI1ZjVkNmYyOWExMjUyOWIwMDVlMWZhYmViYTNhZTVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMjEgSnVuIDIwMjQgMTU6NDA6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBsaWZlcmVhOiB1 cGRhdGUgdG8gMS4xNC42LgoKLS0tCiBzcmNwa2dzL2xpZmVyZWEvcGF0Y2hlcy9saWJ3ZWJraXQy Z3RrNDEucGF0Y2ggfCAxMTg2ICsrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xpZmVyZWEvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICstCiAyIGZpbGVzIGNoYW5nZWQsIDEx OTUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpZmVyZWEvcGF0Y2hlcy9saWJ3ZWJraXQyZ3RrNDEucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpZmVyZWEvcGF0Y2hlcy9saWJ3ZWJraXQyZ3RrNDEucGF0Y2ggYi9zcmNwa2dzL2xp ZmVyZWEvcGF0Y2hlcy9saWJ3ZWJraXQyZ3RrNDEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAuLjIyNjhjNTEyYTcxZThlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9saWZlcmVhL3BhdGNoZXMvbGlid2Via2l0Mmd0azQxLnBhdGNoCkBAIC0wLDAgKzEs MTE4NiBAQAorRnJvbSA0OWRhNGJjYzczODVjYzQ2YjI2ZDE5MjM0NDRjZTU2NDViYzEzMmNjIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGFycyBXaW5kb2xmIDxsYXJzLndpbmRvbGZA Z214LmRlPgorRGF0ZTogVGh1LCAzMCBNYXIgMjAyMyAyMjoxMjo1NiArMDIwMAorU3ViamVjdDog W1BBVENIIDAxLzIwXSBVcGdyYWRlIHRvIGxpYnNvdXAzCisKKy0tLQorIGNvbmZpZ3VyZS5hYyAg ICAgICAgICAgICB8ICAgNCArLQorIHNyYy9jb25mLmMgICAgICAgICAgICAgICB8ICA1NiArLS0t LS0tCisgc3JjL25ldC5jICAgICAgICAgICAgICAgIHwgMzE5ICsrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9uZXQuaCAgICAgICAgICAgICAgICB8ICAxMSArLQor IHNyYy91aS9saWZlcmVhX2Jyb3dzZXIuYyB8ICAgOCArLQorIHNyYy93ZWJraXQvd2Via2l0LmMg ICAgICB8ICA0NSArLS0tLS0KKyBzcmMvd2Via2l0L3dlYmtpdC5oICAgICAgfCAgIDIgKy0KKyA3 IGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCAzMTIgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDRlZmVhMTc3Ny4u MDE1ZGQxY2ViIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMK K0BAIC0zOCw4ICszOCw4IEBAIHBrZ19tb2R1bGVzPSIJZ3RrKy0zLjAgPj0gMy4yMi4wCisgCQlz cWxpdGUzID49IDMuNy4wCisgCQlnbW9kdWxlLTIuMCA+PSAyLjAuMAorIAkJZ3RocmVhZC0yLjAK Ky0JCWxpYnNvdXAtMi40ID49IDIuNDIKKy0JCXdlYmtpdDJndGstNC4wCisrCQlsaWJzb3VwLTMu MCA+PSAzLjIKKysJCXdlYmtpdDJndGstNC4xCisgCQlqc29uLWdsaWItMS4wCisgCQlnb2JqZWN0 LWludHJvc3BlY3Rpb24tMS4wCisgCQlnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCitkaWZmIC0t Z2l0IGEvc3JjL2NvbmYuYyBiL3NyYy9jb25mLmMKK2luZGV4IGNjYjM2NThhMC4uYjI5NTY1MmVm IDEwMDY0NAorLS0tIGEvc3JjL2NvbmYuYworKysrIGIvc3JjL2NvbmYuYworQEAgLTEyNiw2MCAr MTI2LDEwIEBAIGNvbmZfcHJveHlfcmVzZXRfc2V0dGluZ3NfY2IgKEdTZXR0aW5ncyAqc2V0dGlu Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgKmtleSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgeworLQlnY2hhcgkJ KnByb3h5bmFtZSwgKnByb3h5dXNlcm5hbWUsICpwcm94eXBhc3N3b3JkOworLQlnaW50CQlwcm94 eXBvcnQ7CistCWdpbnQJCXByb3h5ZGV0ZWN0bW9kZTsKKy0JZ2Jvb2xlYW4JcHJveHl1c2VhdXRo OworLQorLQlwcm94eW5hbWUgPSBOVUxMOworLQlwcm94eXBvcnQgPSAwOworLQlwcm94eXVzZXJu YW1lID0gTlVMTDsKKy0JcHJveHlwYXNzd29yZCA9IE5VTEw7CistCWNvbmZfZ2V0X2ludF92YWx1 ZSAoUFJPWFlfREVURUNUX01PREUsICZwcm94eWRldGVjdG1vZGUpOworLQorLSNpZiAhV0VCS0lU X0NIRUNLX1ZFUlNJT04gKDIsIDE1LCAzKQorLQlpZiAocHJveHlkZXRlY3Rtb2RlICE9IFBST1hZ X0RFVEVDVF9NT0RFX0FVVE8pCistCXsKKy0JCUd0a1dpZGdldCAqZGlhbG9nID0gZ3RrX21lc3Nh Z2VfZGlhbG9nX25ldyAoTlVMTCwKKy0JCQkwLAorLQkJCUdUS19NRVNTQUdFX0lORk8sCistCQkJ R1RLX0JVVFRPTlNfQ0xPU0UsCistCQkJXygiWW91ciB2ZXJzaW9uIG9mIFdlYktpdEdUSysgZG9l c24ndCBzdXBwb3J0IGNoYW5naW5nIHRoZSBwcm94eSBzZXR0aW5ncyBmcm9tIExpZmVyZWEuIFRo ZSBzeXN0ZW0ncyBkZWZhdWx0IHByb3h5IHNldHRpbmdzIHdpbGwgYmUgdXNlZC4iKSk7CistCQln dGtfZGlhbG9nX3J1biAoR1RLX0RJQUxPRyAoZGlhbG9nKSk7CistCQlndGtfd2lkZ2V0X2Rlc3Ry b3kgKGRpYWxvZyk7CistCistCQljb25mX3NldF9pbnRfdmFsdWUgKFBST1hZX0RFVEVDVF9NT0RF LCBQUk9YWV9ERVRFQ1RfTU9ERV9BVVRPKTsKKy0JCXJldHVybjsKKy0JfQorLSNlbmRpZgorLQlz d2l0Y2ggKHByb3h5ZGV0ZWN0bW9kZSkgeworLQkJZGVmYXVsdDoKKy0JCWNhc2UgMDoKKy0JCQlk ZWJ1ZzAgKERFQlVHX0NPTkYsICJwcm94eSBhdXRvIGRldGVjdCBpcyBjb25maWd1cmVkIik7Cist CQkJLyogbm90aGluZyB0byBkbywgYWxsIGRvbmUgYnkgbGlicHJveHkgaW5zaWRlIGxpYnNvdXAg Ki8KKy0JCQlicmVhazsKKy0JCWNhc2UgMToKKy0JCQlkZWJ1ZzAgKERFQlVHX0NPTkYsICJwcm94 eSBpcyBkaXNhYmxlZCBieSB1c2VyIik7CistCQkJLyogbm90aGluZyB0byBkbyAqLworLQkJCWJy ZWFrOworLQkJY2FzZSAyOgorLQkJCWRlYnVnMCAoREVCVUdfQ09ORiwgIm1hbnVhbCBwcm94eSBp cyBjb25maWd1cmVkIik7CistCistCQkJY29uZl9nZXRfc3RyX3ZhbHVlIChQUk9YWV9IT1NULCAm cHJveHluYW1lKTsKKy0JCQljb25mX2dldF9pbnRfdmFsdWUgKFBST1hZX1BPUlQsICZwcm94eXBv cnQpOworLQkJCWNvbmZfZ2V0X2Jvb2xfdmFsdWUgKFBST1hZX1VTRUFVVEgsICZwcm94eXVzZWF1 dGgpOworLQkJCWlmIChwcm94eXVzZWF1dGgpIHsKKy0JCQkJY29uZl9nZXRfc3RyX3ZhbHVlIChQ Uk9YWV9VU0VSLCAmcHJveHl1c2VybmFtZSk7CistCQkJCWNvbmZfZ2V0X3N0cl92YWx1ZSAoUFJP WFlfUEFTU1dELCAmcHJveHlwYXNzd29yZCk7CistCQkJfQorLQkJCWJyZWFrOworLQl9CistCWRl YnVnNCAoREVCVUdfQ09ORiwgIk1hbnVhbCBwcm94eSBzZXR0aW5ncyBhcmUgbm93ICVzOiVkICVz OiVzIiwKKy0JICAgICAgICAgICAgICAgICAgICBwcm94eW5hbWUgIT0gTlVMTCA/IHByb3h5bmFt ZSA6ICJOVUxMIiwgcHJveHlwb3J0LAorLQkgICAgICAgICAgICAgICAgICAgIHByb3h5dXNlcm5h bWUgIT0gTlVMTCA/IHByb3h5dXNlcm5hbWUgOiAiTlVMTCIsCistCSAgICAgICAgICAgICAgICAg ICAgcHJveHlwYXNzd29yZCAhPSBOVUxMID8gcHJveHlwYXNzd29yZCA6ICJOVUxMIik7CisrCWdp bnQJbW9kZTsKKyAKKy0JbmV0d29ya19zZXRfcHJveHkgKHByb3h5ZGV0ZWN0bW9kZSwgcHJveHlu YW1lLCBwcm94eXBvcnQsIHByb3h5dXNlcm5hbWUsIHByb3h5cGFzc3dvcmQpOworKwljb25mX2dl dF9pbnRfdmFsdWUgKFBST1hZX0RFVEVDVF9NT0RFLCAmbW9kZSk7CisrCW5ldHdvcmtfc2V0X3By b3h5IChtb2RlKTsKKyB9CisgCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK2RpZmYgLS1naXQgYS9zcmMv bmV0LmMgYi9zcmMvbmV0LmMKK2luZGV4IDhjYWJkNzc4YS4uNjRlOGViNzMyIDEwMDY0NAorLS0t IGEvc3JjL25ldC5jCisrKysgYi9zcmMvbmV0LmMKK0BAIC0xLDcgKzEsNyBAQAorIC8qKgorICAq IEBmaWxlIG5ldC5jICBIVFRQIG5ldHdvcmsgYWNjZXNzIHVzaW5nIGxpYnNvdXAKKyAgKgorLSAq IENvcHlyaWdodCAoQykgMjAwNy0yMDIxIExhcnMgV2luZG9sZiA8bGFycy53aW5kb2xmQGdteC5k ZT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMyBMYXJzIFdpbmRvbGYgPGxhcnMud2luZG9s ZkBnbXguZGU+CisgICogQ29weXJpZ2h0IChDKSAyMDA5IEVtaWxpbyBQb3p1ZWxvIE1vbmZvcnQg PHBvY2h1MjdAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAyMSBMb3JlbnpvIEwuIEFu Y29yYSA8YWRtaW5AbG9yZW56b2FuY29yYS5pbmZvPgorICAqCitAQCAtMzcsODAgKzM3LDc5IEBA CisgCisgI2RlZmluZSBIT01FUEFHRQkiaHR0cHM6Ly9sem9uZS5kZS9saWZlcmVhLyIKKyAKKytz dGF0aWMgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSA9IE5VTEw7CS8qIEdDYW5jZWxsYWJsZSBm b3IgYWxsIHJlcXVlc3QgaGFuZGxpbmcgKi8KKyBzdGF0aWMgU291cFNlc3Npb24gKnNlc3Npb24g PSBOVUxMOwkvKiBTZXNzaW9uIGNvbmZpZ3VyZWQgZm9yIHByZWZlcmVuY2VzICovCisgc3RhdGlj IFNvdXBTZXNzaW9uICpzZXNzaW9uMiA9IE5VTEw7CS8qIFNlc3Npb24gZm9yICJEb24ndCB1c2Ug cHJveHkgZmVhdHVyZSIgKi8KKyAKKyBzdGF0aWMgUHJveHlEZXRlY3RNb2RlIHByb3h5bW9kZSA9 IFBST1hZX0RFVEVDVF9NT0RFX0FVVE87Cistc3RhdGljIGdjaGFyCSpwcm94eW5hbWUgPSBOVUxM OworLXN0YXRpYyBnY2hhcgkqcHJveHl1c2VybmFtZSA9IE5VTEw7Cistc3RhdGljIGdjaGFyCSpw cm94eXBhc3N3b3JkID0gTlVMTDsKKy1zdGF0aWMgaW50CXByb3h5cG9ydCA9IDA7CistCisgCisg c3RhdGljIHZvaWQKKyBuZXR3b3JrX3Byb2Nlc3NfcmVkaXJlY3RfY2FsbGJhY2sgKFNvdXBNZXNz YWdlICptc2csIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgCXVwZGF0ZUpvYlB0cglqb2IgPSAo dXBkYXRlSm9iUHRyKXVzZXJfZGF0YTsKKyAJY29uc3QgZ2NoYXIJKmxvY2F0aW9uID0gTlVMTDsK Ky0JU291cFVSSQkJKm5ld3VyaTsKKy0KKy0JaWYgKDMwMSA9PSBtc2ctPnN0YXR1c19jb2RlIHx8 IDMwOCA9PSBtc2ctPnN0YXR1c19jb2RlKQorLQl7CistCQlsb2NhdGlvbiA9IHNvdXBfbWVzc2Fn ZV9oZWFkZXJzX2dldF9vbmUgKG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkxvY2F0aW9uIik7Cist CQluZXd1cmkgPSBzb3VwX3VyaV9uZXcgKGxvY2F0aW9uKTsKKy0KKy0JCWlmIChTT1VQX1VSSV9J U19WQUxJRCAobmV3dXJpKSAmJiAhIHNvdXBfdXJpX2VxdWFsIChuZXd1cmksIHNvdXBfbWVzc2Fn ZV9nZXRfdXJpIChtc2cpKSkgeworLQkJCWRlYnVnMiAoREVCVUdfTkVULCAiXCIlc1wiIHBlcm1h bmVudGx5IHJlZGlyZWN0cyB0byBuZXcgbG9jYXRpb24gXCIlc1wiIiwgc291cF91cmlfdG9fc3Ry aW5nIChzb3VwX21lc3NhZ2VfZ2V0X3VyaSAobXNnKSwgRkFMU0UpLAorLQkJCQkJCQkgICAgICAg ICAgICBzb3VwX3VyaV90b19zdHJpbmcgKG5ld3VyaSwgRkFMU0UpKTsKKy0JCQlqb2ItPnJlc3Vs dC0+aHR0cHN0YXR1cyA9IG1zZy0+c3RhdHVzX2NvZGU7CistCQkJam9iLT5yZXN1bHQtPnNvdXJj ZSA9IHNvdXBfdXJpX3RvX3N0cmluZyAobmV3dXJpLCBGQUxTRSk7CisrCUdVcmkJCSpuZXd1cmk7 CisrCVNvdXBTdGF0dXMJc3RhdHVzID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMgKG1zZyk7Cisr CisrCWlmIChTT1VQX1NUQVRVU19NT1ZFRF9QRVJNQU5FTlRMWSA9PSBzdGF0dXMgfHwgU09VUF9T VEFUVVNfUEVSTUFORU5UX1JFRElSRUNUID09IHN0YXR1cykgeworKwkJaWYgKGdfdXJpX2lzX3Zh bGlkIChsb2NhdGlvbiwgU09VUF9IVFRQX1VSSV9GTEFHUyB8IEdfVVJJX0ZMQUdTX1BBUlNFX1JF TEFYRUQsIE5VTEwpKSB7CisrCQkJbG9jYXRpb24gPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRf b25lIChzb3VwX21lc3NhZ2VfZ2V0X3Jlc3BvbnNlX2hlYWRlcnMgKG1zZyksICJMb2NhdGlvbiIp OworKwkJCW5ld3VyaSA9IGdfdXJpX3BhcnNlIChsb2NhdGlvbiwgU09VUF9IVFRQX1VSSV9GTEFH UyB8IEdfVVJJX0ZMQUdTX1BBUlNFX1JFTEFYRUQsIE5VTEwpOworKworKwkJCWlmICghc291cF91 cmlfZXF1YWwgKG5ld3VyaSwgc291cF9tZXNzYWdlX2dldF91cmkgKG1zZykpKSB7CisrCQkJCWpv Yi0+cmVzdWx0LT5odHRwc3RhdHVzID0gc3RhdHVzOworKwkJCQlqb2ItPnJlc3VsdC0+c291cmNl ID0gZ191cmlfdG9fc3RyaW5nX3BhcnRpYWwgKG5ld3VyaSwgMCk7CisrCQkJCWRlYnVnMiAoREVC VUdfTkVULCAiXCIlc1wiIHBlcm1hbmVudGx5IHJlZGlyZWN0cyB0byBuZXcgbG9jYXRpb24gXCIl c1wiIiwKKysJCQkJICAgICAgICBqb2ItPnJlcXVlc3QtPnNvdXJjZSwgam9iLT5yZXN1bHQtPnNv dXJjZSk7CisrCQkJfQorIAkJfQorIAl9CisgfQorIAorIHN0YXRpYyB2b2lkCistbmV0d29ya19w cm9jZXNzX2NhbGxiYWNrIChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UgKm1zZywg Z3BvaW50ZXIgdXNlcl9kYXRhKQorK25ldHdvcmtfcHJvY2Vzc19jYWxsYmFjayAoR0lucHV0U3Ry ZWFtICpzdHJlYW0sIFNvdXBNZXNzYWdlICptc2csIHVwZGF0ZUpvYlB0ciBqb2IpCisgeworLQl1 cGRhdGVKb2JQdHIJam9iID0gKHVwZGF0ZUpvYlB0cil1c2VyX2RhdGE7CistCVNvdXBEYXRlCSps YXN0X21vZGlmaWVkOworLQljb25zdCBnY2hhcgkqdG1wID0gTlVMTDsKKy0JR0hhc2hUYWJsZQkq cGFyYW1zOworLQlnYm9vbGVhbglyZXZhbGlkYXRlZCA9IEZBTFNFOworLQlnaW50CQltYXhhZ2U7 CistCWdpbnQJCWFnZTsKKysJZ19hdXRvcHRyKEdCeXRlcykJYm9keSA9IE5VTEw7CisrCUdEYXRl VGltZQkJKmxhc3RfbW9kaWZpZWQ7CisrCWNvbnN0IGdjaGFyCQkqdG1wID0gTlVMTDsKKysJR0hh c2hUYWJsZQkJKnBhcmFtczsKKysJZ2Jvb2xlYW4JCXJldmFsaWRhdGVkID0gRkFMU0U7CisrCWdp bnQJCQltYXhhZ2U7CisrCWdpbnQJCQlhZ2U7CisgCistCWpvYi0+cmVzdWx0LT5zb3VyY2UgPSBz b3VwX3VyaV90b19zdHJpbmcgKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKy0J am9iLT5yZXN1bHQtPmh0dHBzdGF0dXMgPSBtc2ctPnN0YXR1c19jb2RlOworKwlqb2ItPnJlc3Vs dC0+c291cmNlID0gZ191cmlfdG9fc3RyaW5nX3BhcnRpYWwgKHNvdXBfbWVzc2FnZV9nZXRfdXJp IChtc2cpLCAwKTsKKysJam9iLT5yZXN1bHQtPmh0dHBzdGF0dXMgPSBzb3VwX21lc3NhZ2VfZ2V0 X3N0YXR1cyAobXNnKTsKKyAKKyAJLyoga2VlcCBzb21lIHJlcXVlc3QgaGVhZGVycyBmb3IgcmV2 YWxpZGF0ZWQgcmVzcG9uc2VzICovCisgCXJldmFsaWRhdGVkID0gKDMwNCA9PSBqb2ItPnJlc3Vs dC0+aHR0cHN0YXR1cyk7CisgCistCWRlYnVnMSAoREVCVUdfTkVULCAiZG93bmxvYWQgc3RhdHVz IGNvZGU6ICVkIiwgbXNnLT5zdGF0dXNfY29kZSk7CisrCWRlYnVnMSAoREVCVUdfTkVULCAiZG93 bmxvYWQgc3RhdHVzIGNvZGU6ICVkIiwgam9iLT5yZXN1bHQtPmh0dHBzdGF0dXMpOworIAlkZWJ1 ZzEgKERFQlVHX05FVCwgInNvdXJjZSBhZnRlciBkb3dubG9hZDogPj4+JXM8PDwiLCBqb2ItPnJl c3VsdC0+c291cmNlKTsKKyAKKysJYm9keSA9IGdfaW5wdXRfc3RyZWFtX3JlYWRfYnl0ZXMgKHN0 cmVhbSwgR19NQVhTU0laRSwgY2FuY2VsbGFibGUsIE5VTEwpOworKworICNpZmRlZiBIQVZFX0df TUVNRFVQMgorLQlqb2ItPnJlc3VsdC0+ZGF0YSA9IGdfbWVtZHVwMiAobXNnLT5yZXNwb25zZV9i b2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCsxKTsKKysJam9iLT5yZXN1bHQt PmRhdGEgPSBnX21lbWR1cDIgKGdfYnl0ZXNfZ2V0X2RhdGEgKGJvZHksICZqb2ItPnJlc3VsdC0+ c2l6ZSksIGdfYnl0ZXNfZ2V0X3NpemUgKGJvZHkpKTsKKyAjZWxzZQorLQlqb2ItPnJlc3VsdC0+ ZGF0YSA9IGdfbWVtZHVwIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2Vf Ym9keS0+bGVuZ3RoKzEpOworKwlqb2ItPnJlc3VsdC0+ZGF0YSA9IGdfbWVtZHVwIChnX2J5dGVz X2dldF9kYXRhIChib2R5LCAmam9iLT5yZXN1bHQtPnNpemUpLCBnX2J5dGVzX2dldF9zaXplIChi b2R5KSk7CisgI2VuZGlmCisgCistCWpvYi0+cmVzdWx0LT5zaXplID0gKHNpemVfdCltc2ctPnJl c3BvbnNlX2JvZHktPmxlbmd0aDsKKyAJZGVidWcxIChERUJVR19ORVQsICIlZCBieXRlcyBkb3du bG9hZGVkIiwgam9iLT5yZXN1bHQtPnNpemUpOworIAorLQlqb2ItPnJlc3VsdC0+Y29udGVudFR5 cGUgPSBnX3N0cmR1cCAoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X2NvbnRlbnRfdHlwZSAobXNn LT5yZXNwb25zZV9oZWFkZXJzLCBOVUxMKSk7CisrCWpvYi0+cmVzdWx0LT5jb250ZW50VHlwZSA9 IGdfc3RyZHVwIChzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF90eXBlIChzb3VwX21l c3NhZ2VfZ2V0X3Jlc3BvbnNlX2hlYWRlcnMgKG1zZyksIE5VTEwpKTsKKyAKKyAJLyogVXBkYXRl IGxhc3QtbW9kaWZpZWQgZGF0ZSAqLworIAlpZiAocmV2YWxpZGF0ZWQpIHsKKyAJCSBqb2ItPnJl c3VsdC0+dXBkYXRlU3RhdGUtPmxhc3RNb2RpZmllZCA9IHVwZGF0ZV9zdGF0ZV9nZXRfbGFzdG1v ZGlmaWVkIChqb2ItPnJlcXVlc3QtPnVwZGF0ZVN0YXRlKTsKKyAJfSBlbHNlIHsKKy0JCXRtcCA9 IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUgKG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkxh c3QtTW9kaWZpZWQiKTsKKysJCXRtcCA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUgKHNv dXBfbWVzc2FnZV9nZXRfcmVzcG9uc2VfaGVhZGVycyAobXNnKSwgIkxhc3QtTW9kaWZpZWQiKTsK KyAJCWlmICh0bXApIHsKKyAJCQkvKiBUaGUgc3RyaW5nIG1heSBiZSBiYWRseSBmb3JtYXR0ZWQs IHdoaWNoIHdpbGwgbWFrZQorIAkJCSogc291cF9kYXRlX25ld19mcm9tX3N0cmluZygpIHJldHVy biBOVUxMICovCistCQkJbGFzdF9tb2RpZmllZCA9IHNvdXBfZGF0ZV9uZXdfZnJvbV9zdHJpbmcg KHRtcCk7CisrCQkJbGFzdF9tb2RpZmllZCA9IHNvdXBfZGF0ZV90aW1lX25ld19mcm9tX2h0dHBf c3RyaW5nICh0bXApOworIAkJCWlmIChsYXN0X21vZGlmaWVkKSB7CistCQkJCWpvYi0+cmVzdWx0 LT51cGRhdGVTdGF0ZS0+bGFzdE1vZGlmaWVkID0gc291cF9kYXRlX3RvX3RpbWVfdCAobGFzdF9t b2RpZmllZCk7CistCQkJCXNvdXBfZGF0ZV9mcmVlIChsYXN0X21vZGlmaWVkKTsKKysJCQkJam9i LT5yZXN1bHQtPnVwZGF0ZVN0YXRlLT5sYXN0TW9kaWZpZWQgPSBnX2RhdGVfdGltZV90b191bml4 IChsYXN0X21vZGlmaWVkKTsKKysJCQkJZ19mcmVlIChsYXN0X21vZGlmaWVkKTsKKyAJCQl9Cisg CQl9CisgCX0KK0BAIC0xMTksMTQgKzExOCwxNCBAQCBuZXR3b3JrX3Byb2Nlc3NfY2FsbGJhY2sg KFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSAqbXNnLCBncG9pbnRlciB1c2VyXwor IAlpZiAocmV2YWxpZGF0ZWQpIHsKKyAJCWpvYi0+cmVzdWx0LT51cGRhdGVTdGF0ZS0+ZXRhZyA9 IGdfc3RyZHVwICh1cGRhdGVfc3RhdGVfZ2V0X2V0YWcgKGpvYi0+cmVxdWVzdC0+dXBkYXRlU3Rh dGUpKTsKKyAJfSBlbHNlIHsKKy0JCXRtcCA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUg KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkVUYWciKTsKKysJCXRtcCA9IHNvdXBfbWVzc2FnZV9o ZWFkZXJzX2dldF9vbmUgKHNvdXBfbWVzc2FnZV9nZXRfcmVzcG9uc2VfaGVhZGVycyAobXNnKSwg IkVUYWciKTsKKyAJCWlmICh0bXApIHsKKyAJCQlqb2ItPnJlc3VsdC0+dXBkYXRlU3RhdGUtPmV0 YWcgPSBnX3N0cmR1cCAodG1wKTsKKyAJCX0KKyAJfQorIAorIAkvKiBVcGRhdGUgY2FjaGUgbWF4 LWFnZSAgKi8KKy0JdG1wID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X2xpc3QgKG1zZy0+cmVz cG9uc2VfaGVhZGVycywgIkNhY2hlLUNvbnRyb2wiKTsKKysJdG1wID0gc291cF9tZXNzYWdlX2hl YWRlcnNfZ2V0X2xpc3QgKHNvdXBfbWVzc2FnZV9nZXRfcmVzcG9uc2VfaGVhZGVycyAobXNnKSwg IkNhY2hlLUNvbnRyb2wiKTsKKyAJaWYgKHRtcCkgeworIAkJcGFyYW1zID0gc291cF9oZWFkZXJf cGFyc2VfcGFyYW1fbGlzdCAodG1wKTsKKyAJCWlmIChwYXJhbXMpIHsKK0BAIC0xMzUsNyArMTM0 LDcgQEAgbmV0d29ya19wcm9jZXNzX2NhbGxiYWNrIChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291 cE1lc3NhZ2UgKm1zZywgZ3BvaW50ZXIgdXNlcl8KKyAJCQkJbWF4YWdlID0gYXRvaSAodG1wKTsK KyAJCQkJaWYgKDAgPCBtYXhhZ2UpIHsKKyAJCQkJCS8qIHN1YnRyYWN0IEFnZSBmcm9tIG1heC1h Z2UgKi8KKy0JCQkJCXRtcCA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUgKG1zZy0+cmVz cG9uc2VfaGVhZGVycywgIkFnZSIpOworKwkJCQkJdG1wID0gc291cF9tZXNzYWdlX2hlYWRlcnNf Z2V0X29uZSAoc291cF9tZXNzYWdlX2dldF9yZXNwb25zZV9oZWFkZXJzIChtc2cpLCAiQWdlIik7 CisgCQkJCQlpZiAodG1wKSB7CisgCQkJCQkJYWdlID0gYXRvaSAodG1wKTsKKyAJCQkJCQlpZiAo MCA8IGFnZSkgeworQEAgLTE1NCwxOSArMTUzLDIxIEBAIG5ldHdvcmtfcHJvY2Vzc19jYWxsYmFj ayAoU291cFNlc3Npb24gKnNlc3Npb24sIFNvdXBNZXNzYWdlICptc2csIGdwb2ludGVyIHVzZXJf CisgCXVwZGF0ZV9wcm9jZXNzX2ZpbmlzaGVkX2pvYiAoam9iKTsKKyB9CisgCistLyogRG93bmxv YWRzIGEgZmVlZCBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3Qgc3RydWN0dXJlLCByZXR1cm5zCisr LyogRG93bmxvYWRzIGEgVVJMIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUsIHJl dHVybnMKKyAgICB0aGUgZG93bmxvYWRlZCBkYXRhIG9yIE5VTEwgaW4gdGhlIHJlcXVlc3Qgc3Ry dWN0dXJlLgorICAgIElmIHRoZSB3ZWJzZXJ2ZXIgcmVwb3J0cyBhIHBlcm1hbmVudCByZWRpcmVj dGlvbiwgdGhlCistICAgZmVlZCB1cmwgd2lsbCBiZSBtb2RpZmllZCBhbmQgdGhlIG9sZCBVUkwg J2xsIGJlIGZyZWVkLiBUaGUKKysgICBVUkwgd2lsbCBiZSBtb2RpZmllZCBhbmQgdGhlIG9sZCBV UkwgJ2xsIGJlIGZyZWVkLiBUaGUKKyAgICByZXF1ZXN0IHN0cnVjdHVyZSB3aWxsIGFsc28gY29u dGFpbiB0aGUgSFRUUCBzdGF0dXMgYW5kIHRoZQorICAgIGxhc3QgbW9kaWZpZWQgc3RyaW5nLgor ICAqLworIHZvaWQKKyBuZXR3b3JrX3Byb2Nlc3NfcmVxdWVzdCAoY29uc3QgdXBkYXRlSm9iUHRy IGpvYikKKyB7CistCVNvdXBNZXNzYWdlCSptc2c7CistCVNvdXBEYXRlCSpkYXRlOworLQlnYm9v bGVhbglkb19ub3RfdHJhY2sgPSBGQUxTRTsKKysJZ19hdXRvcHRyKEdJbnB1dFN0cmVhbSkJc3Ry ZWFtOworKwlnX2F1dG9wdHIoU291cE1lc3NhZ2UpCW1zZyA9IE5VTEw7CisrCVNvdXBNZXNzYWdl SGVhZGVycwkqcmVxdWVzdF9oZWFkZXJzOworKwlnX2F1dG9wdHIoR1VyaSkJCXNvdXJjZVVyaTsK KysJZ2Jvb2xlYW4JCWRvX25vdF90cmFjayA9IEZBTFNFOworIAorIAlnX2Fzc2VydCAoTlVMTCAh PSBqb2ItPnJlcXVlc3QpOworIAlkZWJ1ZzEgKERFQlVHX05FVCwgImRvd25sb2FkaW5nICVzIiwg am9iLT5yZXF1ZXN0LT5zb3VyY2UpOworQEAgLTE3NCwzOSArMTc1LDUwIEBAIG5ldHdvcmtfcHJv Y2Vzc19yZXF1ZXN0IChjb25zdCB1cGRhdGVKb2JQdHIgam9iKQorIAkJZGVidWcxIChERUJVR19O RVQsICIgICBwb3N0ZGF0YT0+Pj4lczw8PCIsIGpvYi0+cmVxdWVzdC0+cG9zdGRhdGEpOworIAor IAkvKiBQcmVwYXJlIHRoZSBTb3VwTWVzc2FnZSAqLworLQltc2cgPSBzb3VwX21lc3NhZ2VfbmV3 IChqb2ItPnJlcXVlc3QtPnBvc3RkYXRhID8gU09VUF9NRVRIT0RfUE9TVCA6IFNPVVBfTUVUSE9E X0dFVCwKKy0JCQkJam9iLT5yZXF1ZXN0LT5zb3VyY2UpOworLQorKwlzb3VyY2VVcmkgPSBnX3Vy aV9idWlsZF93aXRoX3VzZXIgKAorKwkJU09VUF9IVFRQX1VSSV9GTEFHUyB8IEdfVVJJX0ZMQUdT X1BBUlNFX1JFTEFYRUQsCisrCQlnX3VyaV9wZWVrX3NjaGVtZSAoam9iLT5yZXF1ZXN0LT5zb3Vy Y2UpLAorKwkJKCFqb2ItPnJlcXVlc3QtPmF1dGhWYWx1ZSAmJiBqb2ItPnJlcXVlc3QtPm9wdGlv bnMgJiYgam9iLT5yZXF1ZXN0LT5vcHRpb25zLT51c2VybmFtZSk/am9iLT5yZXF1ZXN0LT5vcHRp b25zLT51c2VybmFtZTpOVUxMLAorKwkJKCFqb2ItPnJlcXVlc3QtPmF1dGhWYWx1ZSAmJiBqb2It PnJlcXVlc3QtPm9wdGlvbnMgJiYgam9iLT5yZXF1ZXN0LT5vcHRpb25zLT5wYXNzd29yZCk/am9i LT5yZXF1ZXN0LT5vcHRpb25zLT5wYXNzd29yZDpOVUxMLAorKwkJTlVMTCwJLyogYXV0aF9wYXJh bXMgKi8KKysJCU5VTEwsCS8qIGhvc3QgKi8KKysJCS0xLAkvKiBwb3J0ICovCisrCQlqb2ItPnJl cXVlc3QtPnNvdXJjZSwKKysJCU5VTEwsCS8qIHF1ZXJ5ICovCisrCQlOVUxMCS8qIGZyYWdtZW50 ICovCisrCSk7CisrCWlmIChzb3VyY2VVcmkpCisrCQltc2cgPSBzb3VwX21lc3NhZ2VfbmV3X2Zy b21fdXJpIChqb2ItPnJlcXVlc3QtPnBvc3RkYXRhPyJQT1NUIjoiR0VUIiwgc291cmNlVXJpKTsK KyAJaWYgKCFtc2cpIHsKKyAJCWdfd2FybmluZyAoIlRoZSByZXF1ZXN0IGZvciAlcyBjb3VsZCBu b3QgYmUgcGFyc2VkISIsIGpvYi0+cmVxdWVzdC0+c291cmNlKTsKKyAJCXJldHVybjsKKyAJfQor IAorKwlyZXF1ZXN0X2hlYWRlcnMgPSBzb3VwX21lc3NhZ2VfZ2V0X3JlcXVlc3RfaGVhZGVycyAo bXNnKTsKKysKKyAJLyogU2V0IHRoZSBwb3N0ZGF0YSBmb3IgdGhlIHJlcXVlc3QgKi8KKyAJaWYg KGpvYi0+cmVxdWVzdC0+cG9zdGRhdGEpIHsKKy0JCXNvdXBfbWVzc2FnZV9zZXRfcmVxdWVzdCAo bXNnLAorLQkJCQkJICAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwKKy0JCQkJ CSAgU09VUF9NRU1PUllfU1RBVElDLCAvKiBsaWJzb3VwIHdvbid0IGZyZWUgdGhlIHBvc3RkYXRh ICovCistCQkJCQkgIGpvYi0+cmVxdWVzdC0+cG9zdGRhdGEsCistCQkJCQkgIHN0cmxlbiAoam9i LT5yZXF1ZXN0LT5wb3N0ZGF0YSkpOworKwkJZ19hdXRvcHRyKEdCeXRlcykgcG9zdGRhdGEgPSBn X2J5dGVzX25ldyAoam9iLT5yZXF1ZXN0LT5wb3N0ZGF0YSwgc3RybGVuIChqb2ItPnJlcXVlc3Qt PnBvc3RkYXRhKSk7CisrCQlzb3VwX21lc3NhZ2Vfc2V0X3JlcXVlc3RfYm9keV9mcm9tX2J5dGVz IChtc2csCisrCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBw bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwKKysJCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBvc3RkYXRhKTsKKyAJfQorIAorIAkvKiBTZXQgdGhlIElm LU1vZGlmaWVkLVNpbmNlOiBoZWFkZXIgKi8KKyAJaWYgKGpvYi0+cmVxdWVzdC0+dXBkYXRlU3Rh dGUgJiYgdXBkYXRlX3N0YXRlX2dldF9sYXN0bW9kaWZpZWQgKGpvYi0+cmVxdWVzdC0+dXBkYXRl U3RhdGUpKSB7CistCQlnY2hhciAqZGF0ZXN0cjsKKysJCWdfYXV0b2ZyZWUgZ2NoYXIgKmRhdGVz dHI7CisrCQlnX2F1dG9wdHIoR0RhdGVUaW1lKSBkYXRlOworIAorLQkJZGF0ZSA9IHNvdXBfZGF0 ZV9uZXdfZnJvbV90aW1lX3QgKHVwZGF0ZV9zdGF0ZV9nZXRfbGFzdG1vZGlmaWVkIChqb2ItPnJl cXVlc3QtPnVwZGF0ZVN0YXRlKSk7CistCQlkYXRlc3RyID0gc291cF9kYXRlX3RvX3N0cmluZyAo ZGF0ZSwgU09VUF9EQVRFX0hUVFApOworLQkJc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kICht c2ctPnJlcXVlc3RfaGVhZGVycywKKysJCWRhdGUgPSBnX2RhdGVfdGltZV9uZXdfZnJvbV91bml4 X3V0YyAodXBkYXRlX3N0YXRlX2dldF9sYXN0bW9kaWZpZWQgKGpvYi0+cmVxdWVzdC0+dXBkYXRl U3RhdGUpKTsKKysJCWRhdGVzdHIgPSBzb3VwX2RhdGVfdGltZV90b19zdHJpbmcgKGRhdGUsIFNP VVBfREFURV9IVFRQKTsKKysJCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCAocmVxdWVzdF9o ZWFkZXJzLAorIAkJCQkJICAgICAiSWYtTW9kaWZpZWQtU2luY2UiLAorIAkJCQkJICAgICBkYXRl c3RyKTsKKy0JCWdfZnJlZSAoZGF0ZXN0cik7CistCQlzb3VwX2RhdGVfZnJlZSAoZGF0ZSk7Cisg CX0KKyAKKyAJLyogU2V0IHRoZSBJZi1Ob25lLU1hdGNoIGhlYWRlciAqLworIAlpZiAoam9iLT5y ZXF1ZXN0LT51cGRhdGVTdGF0ZSAmJiB1cGRhdGVfc3RhdGVfZ2V0X2V0YWcgKGpvYi0+cmVxdWVz dC0+dXBkYXRlU3RhdGUpKSB7CistCQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobXNnLT5y ZXF1ZXN0X2hlYWRlcnMsCisrCQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQocmVxdWVzdF9o ZWFkZXJzLAorIAkJCQkJICAgICJJZi1Ob25lLU1hdGNoIiwKKyAJCQkJCSAgICB1cGRhdGVfc3Rh dGVfZ2V0X2V0YWcgKGpvYi0+cmVxdWVzdC0+dXBkYXRlU3RhdGUpKTsKKyAJfQorQEAgLTIxNSwz MyArMjI3LDIzIEBAIG5ldHdvcmtfcHJvY2Vzc19yZXF1ZXN0IChjb25zdCB1cGRhdGVKb2JQdHIg am9iKQorIAlpZiAoam9iLT5yZXF1ZXN0LT51cGRhdGVTdGF0ZSAmJgorIAkgICAgKHVwZGF0ZV9z dGF0ZV9nZXRfbGFzdG1vZGlmaWVkIChqb2ItPnJlcXVlc3QtPnVwZGF0ZVN0YXRlKSB8fAorIAkg ICAgIHVwZGF0ZV9zdGF0ZV9nZXRfZXRhZyAoam9iLT5yZXF1ZXN0LT51cGRhdGVTdGF0ZSkpKSB7 CistCQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobXNnLT5yZXF1ZXN0X2hlYWRlcnMsCisr CQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQocmVxdWVzdF9oZWFkZXJzLAorIAkJCQkJICAg ICJBLUlNIiwKKyAJCQkJCSAgICAiZmVlZCIpOworIAl9CisgCisgCS8qIFN1cHBvcnQgSFRUUCBj b250ZW50IG5lZ290aWF0aW9uICovCistCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZChtc2ct PnJlcXVlc3RfaGVhZGVycywgIkFjY2VwdCIsICJhcHBsaWNhdGlvbi9hdG9tK3htbCxhcHBsaWNh dGlvbi94bWw7cT0wLjksdGV4dC94bWw7cT0wLjgsKi8qO3E9MC43Iik7CistCistCS8qIFNldCB0 aGUgYXV0aGVudGljYXRpb24gKi8KKy0JaWYgKCFqb2ItPnJlcXVlc3QtPmF1dGhWYWx1ZSAmJgor LQkgICAgam9iLT5yZXF1ZXN0LT5vcHRpb25zICYmCistCSAgICBqb2ItPnJlcXVlc3QtPm9wdGlv bnMtPnVzZXJuYW1lICYmCistCSAgICBqb2ItPnJlcXVlc3QtPm9wdGlvbnMtPnBhc3N3b3JkKSB7 CistCQlTb3VwVVJJICp1cmkgPSBzb3VwX21lc3NhZ2VfZ2V0X3VyaSAobXNnKTsKKy0KKy0JCXNv dXBfdXJpX3NldF91c2VyICh1cmksIGpvYi0+cmVxdWVzdC0+b3B0aW9ucy0+dXNlcm5hbWUpOwor LQkJc291cF91cmlfc2V0X3Bhc3N3b3JkICh1cmksIGpvYi0+cmVxdWVzdC0+b3B0aW9ucy0+cGFz c3dvcmQpOworLQl9CisrCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCAocmVxdWVzdF9oZWFk ZXJzLCAiQWNjZXB0IiwgImFwcGxpY2F0aW9uL2F0b20reG1sLGFwcGxpY2F0aW9uL3htbDtxPTAu OSx0ZXh0L3htbDtxPTAuOCwqLyo7cT0wLjciKTsKKyAKKysJLyogQWRkIEF1dGhvcml6YXRpb24g aGVhZGVyICovCisgCWlmIChqb2ItPnJlcXVlc3QtPmF1dGhWYWx1ZSkgeworLQkJc291cF9tZXNz YWdlX2hlYWRlcnNfYXBwZW5kIChtc2ctPnJlcXVlc3RfaGVhZGVycywgIkF1dGhvcml6YXRpb24i LAorKwkJc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kIChyZXF1ZXN0X2hlYWRlcnMsICJBdXRo b3JpemF0aW9uIiwKKyAJCQkJCSAgICAgam9iLT5yZXF1ZXN0LT5hdXRoVmFsdWUpOworIAl9Cisg CisgCS8qIEFkZCByZXF1ZXN0ZWQgY29va2llcyAqLworIAlpZiAoam9iLT5yZXF1ZXN0LT51cGRh dGVTdGF0ZSAmJiBqb2ItPnJlcXVlc3QtPnVwZGF0ZVN0YXRlLT5jb29raWVzKSB7CistCQlzb3Vw X21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKG1zZy0+cmVxdWVzdF9oZWFkZXJzLCAiQ29va2llIiwK KysJCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCAocmVxdWVzdF9oZWFkZXJzLCAiQ29va2ll IiwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9iLT5yZXF1ZXN0LT51cGRhdGVT dGF0ZS0+Y29va2llcyk7CisgCQlzb3VwX21lc3NhZ2VfZGlzYWJsZV9mZWF0dXJlIChtc2csIFNP VVBfVFlQRV9DT09LSUVfSkFSKTsKKyAJfQorQEAgLTI1Nyw3ICsyNTksNyBAQCBuZXR3b3JrX3By b2Nlc3NfcmVxdWVzdCAoY29uc3QgdXBkYXRlSm9iUHRyIGpvYikKKyAJLyogQWRkIERvIE5vdCBU cmFjayBoZWFkZXIgYWNjb3JkaW5nIHRvIHNldHRpbmdzICovCisgCWNvbmZfZ2V0X2Jvb2xfdmFs dWUgKERPX05PVF9UUkFDSywgJmRvX25vdF90cmFjayk7CisgCWlmIChkb19ub3RfdHJhY2spCist CQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKG1zZy0+cmVxdWVzdF9oZWFkZXJzLCAiRE5U IiwgIjEiKTsKKysJCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCAocmVxdWVzdF9oZWFkZXJz LCAiRE5UIiwgIjEiKTsKKyAKKyAJLyogUHJvY2VzcyBwZXJtYW5lbnQgcmVkaXJlY3RzICh1cGRh dGUgZmVlZCBsb2NhdGlvbikgKi8KKyAJc291cF9tZXNzYWdlX2FkZF9zdGF0dXNfY29kZV9oYW5k bGVyIChtc2csICJnb3RfYm9keSIsIDMwMSwgKEdDYWxsYmFjaykgbmV0d29ya19wcm9jZXNzX3Jl ZGlyZWN0X2NhbGxiYWNrLCBqb2IpOworQEAgLTI2NSw2MCArMjY3LDI3IEBAIG5ldHdvcmtfcHJv Y2Vzc19yZXF1ZXN0IChjb25zdCB1cGRhdGVKb2JQdHIgam9iKQorIAorIAkvKiBJZiB0aGUgZmVl ZCBoYXMgImRvbnQgdXNlIGEgcHJveHkiIHNlbGVjdGVkLCB1c2UgJ3Nlc3Npb24yJyB3aGljaCBp cyBub24tcHJveHkgKi8KKyAJaWYgKGpvYi0+cmVxdWVzdC0+b3B0aW9ucyAmJiBqb2ItPnJlcXVl c3QtPm9wdGlvbnMtPmRvbnRVc2VQcm94eSkKKy0JCXNvdXBfc2Vzc2lvbl9xdWV1ZV9tZXNzYWdl IChzZXNzaW9uMiwgbXNnLCBuZXR3b3JrX3Byb2Nlc3NfY2FsbGJhY2ssIGpvYik7CisrCQlzdHJl YW0gPSBzb3VwX3Nlc3Npb25fc2VuZCAoc2Vzc2lvbjIsIG1zZywgY2FuY2VsbGFibGUsIE5VTEwp OworIAllbHNlCistCQlzb3VwX3Nlc3Npb25fcXVldWVfbWVzc2FnZSAoc2Vzc2lvbiwgbXNnLCBu ZXR3b3JrX3Byb2Nlc3NfY2FsbGJhY2ssIGpvYik7CistfQorKwkJc3RyZWFtID0gc291cF9zZXNz aW9uX3NlbmQgKHNlc3Npb24sIG1zZywgY2FuY2VsbGFibGUsIE5VTEwpOworIAorLXN0YXRpYyB2 b2lkCistbmV0d29ya19hdXRoZW50aWNhdGUgKAorLQlTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwKKy0J U291cE1lc3NhZ2UgKm1zZywKKy0gICAgICAgIFNvdXBBdXRoICphdXRoLAorLQlnYm9vbGVhbiBy ZXRyeWluZywKKy0JZ3BvaW50ZXIgZGF0YSkKKy17CistCWlmICghcmV0cnlpbmcgJiYgbXNnLT5z dGF0dXNfY29kZSA9PSBTT1VQX1NUQVRVU19QUk9YWV9VTkFVVEhPUklaRUQpIHsKKy0JCXNvdXBf YXV0aF9hdXRoZW50aWNhdGUgKGF1dGgsIGdfc3RyZHVwIChwcm94eXVzZXJuYW1lKSwgZ19zdHJk dXAgKHByb3h5cGFzc3dvcmQpKTsKKy0JfQorLQorLQkvLyBGSVhNRTogSGFuZGxlIEhUVFAgNDAx IHRvbworKwlpZiAoc3RyZWFtKQorKwkJbmV0d29ya19wcm9jZXNzX2NhbGxiYWNrIChzdHJlYW0s IG1zZywgam9iKTsKKyB9CisgCisgc3RhdGljIHZvaWQKKy1uZXR3b3JrX3NldF9zb3VwX3Nlc3Np b25fcHJveHkgKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBQcm94eURldGVjdE1vZGUgbW9kZSwgY29u c3QgZ2NoYXIgKmhvc3QsIGd1aW50IHBvcnQsIGNvbnN0IGdjaGFyICp1c2VyLCBjb25zdCBnY2hh ciAqcGFzc3dvcmQpCisrbmV0d29ya19zZXRfc291cF9zZXNzaW9uX3Byb3h5IChTb3VwU2Vzc2lv biAqc2Vzc2lvbiwgUHJveHlEZXRlY3RNb2RlIG1vZGUpCisgeworLQlTb3VwVVJJICp1cmkgPSBO VUxMOworLQorIAlzd2l0Y2ggKG1vZGUpIHsKKysJCWNhc2UgUFJPWFlfREVURUNUX01PREVfTUFO VUFMOgorKwkJCS8qIE1hbnVhbCBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZSwgc28gd2Ug ZmFsbCB0aHJvdWdoIHRvIEFVVE8gKi8KKyAJCWNhc2UgUFJPWFlfREVURUNUX01PREVfQVVUTzoK Ky0JCQkvKiBTZXRzIHByb3h5LXJlc29sdmVyIHRvIHRoZSBkZWZhdWx0IHJlc29sdmVyLCB0aGlz IHVuc2V0cyBwcm94eS11cmkuICovCistCQkJZ19vYmplY3Rfc2V0IChHX09CSkVDVCAoc2Vzc2lv biksCistCQkJCVNPVVBfU0VTU0lPTl9QUk9YWV9SRVNPTFZFUiwgZ19wcm94eV9yZXNvbHZlcl9n ZXRfZGVmYXVsdCAoKSwKKy0JCQkJTlVMTCk7CisrCQkJZGVidWcwIChERUJVR19DT05GLCAicHJv eHkgYXV0byBkZXRlY3QgaXMgY29uZmlndXJlZCIpOworKwkJCXNvdXBfc2Vzc2lvbl9zZXRfcHJv eHlfcmVzb2x2ZXIgKHNlc3Npb24sIGdfb2JqZWN0X3JlZiAoZ19wcm94eV9yZXNvbHZlcl9nZXRf ZGVmYXVsdCAoKSkpOworIAkJCWJyZWFrOworIAkJY2FzZSBQUk9YWV9ERVRFQ1RfTU9ERV9OT05F OgorLQkJCS8qIFNldHMgcHJveHktcmVzb2x2ZXIgdG8gTlVMTCwgdGhpcyB1bnNldHMgcHJveHkt dXJpLiAqLworLQkJCWdfb2JqZWN0X3NldCAoR19PQkpFQ1QgKHNlc3Npb24pLAorLQkJCQlTT1VQ X1NFU1NJT05fUFJPWFlfUkVTT0xWRVIsIE5VTEwsCistCQkJCU5VTEwpOworLQkJCWJyZWFrOwor LQkJY2FzZSBQUk9YWV9ERVRFQ1RfTU9ERV9NQU5VQUw6CistCQkJdXJpID0gc291cF91cmlfbmV3 IChOVUxMKTsKKy0JCQlzb3VwX3VyaV9zZXRfc2NoZW1lICh1cmksIFNPVVBfVVJJX1NDSEVNRV9I VFRQKTsKKy0JCQlzb3VwX3VyaV9zZXRfaG9zdCAodXJpLCBob3N0KTsKKy0JCQlzb3VwX3VyaV9z ZXRfcG9ydCAodXJpLCBwb3J0KTsKKy0JCQlzb3VwX3VyaV9zZXRfdXNlciAodXJpLCB1c2VyKTsK Ky0JCQlzb3VwX3VyaV9zZXRfcGFzc3dvcmQgKHVyaSwgcGFzc3dvcmQpOworLQkJCXNvdXBfdXJp X3NldF9wYXRoICh1cmksICIvIik7CistCistCQkJaWYgKFNPVVBfVVJJX0lTX1ZBTElEICh1cmkp KSB7CistCQkJCS8qIFNldHMgcHJveHktdXJpLCB0aGlzIHVuc2V0cyBwcm94eS1yZXNvbHZlci4g Ki8KKy0JCQkJZ19vYmplY3Rfc2V0IChHX09CSkVDVCAoc2Vzc2lvbiksCistCQkJCQlTT1VQX1NF U1NJT05fUFJPWFlfVVJJLCB1cmksCistCQkJCQlOVUxMKTsKKy0JCQl9CistCQkJc291cF91cmlf ZnJlZSAodXJpKTsKKysJCQlkZWJ1ZzAgKERFQlVHX0NPTkYsICJwcm94eSBpcyBkaXNhYmxlZCBi eSB1c2VyIik7CisrCQkJc291cF9zZXNzaW9uX3NldF9wcm94eV9yZXNvbHZlciAoc2Vzc2lvbiwg TlVMTCk7CisgCQkJYnJlYWs7CisgCX0KKyB9CitAQCAtMzUwLDYgKzMxOSwxOSBAQCBuZXR3b3Jr X2dldF91c2VyX2FnZW50ICh2b2lkKQorIAlyZXR1cm4gdXNlcmFnZW50OworIH0KKyAKKyt2b2lk CisrbmV0d29ya19kZWluaXQgKHZvaWQpCisreworKwlnX2NhbmNlbGxhYmxlX2NhbmNlbCAoY2Fu Y2VsbGFibGUpOworKwlnX2ZyZWUgKGNhbmNlbGxhYmxlKTsKKysKKysJc291cF9zZXNzaW9uX2Fi b3J0IChzZXNzaW9uKTsKKysJc291cF9zZXNzaW9uX2Fib3J0IChzZXNzaW9uMik7CisrCisrCWdf ZnJlZSAoc2Vzc2lvbik7CisrCWdfZnJlZSAoc2Vzc2lvbjIpOworK30KKysKKyB2b2lkCisgbmV0 d29ya19pbml0ICh2b2lkKQorIHsKK0BAIC0zNTgsNiArMzQwLDggQEAgbmV0d29ya19pbml0ICh2 b2lkKQorIAlnY2hhcgkJKmZpbGVuYW1lOworIAlTb3VwTG9nZ2VyCSpsb2dnZXI7CisgCisrCWNh bmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcgKCk7CisrCisgCXVzZXJhZ2VudCA9IG5ldHdv cmtfZ2V0X3VzZXJfYWdlbnQgKCk7CisgCWRlYnVnMSAoREVCVUdfTkVULCAidXNlci1hZ2VudCBz ZXQgdG8gXCIlc1wiIiwgdXNlcmFnZW50KTsKKyAKK0BAIC0zNjcsOTUgKzM1MSw0OCBAQCBuZXR3 b3JrX2luaXQgKHZvaWQpCisgCWdfZnJlZSAoZmlsZW5hbWUpOworIAorIAkvKiBJbml0aWFsaXpl IGxpYnNvdXAgKi8KKy0Jc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9uZXdfd2l0aF9vcHRpb25zIChT T1VQX1NFU1NJT05fVVNFUl9BR0VOVCwgdXNlcmFnZW50LAorLQkJCQkJCSBTT1VQX1NFU1NJT05f VElNRU9VVCwgMTIwLAorLQkJCQkJCSBTT1VQX1NFU1NJT05fSURMRV9USU1FT1VULCAzMCwKKy0J CQkJCQkgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJFLCBjb29raWVzLAorKwlzZXNzaW9uID0gc291 cF9zZXNzaW9uX25ld193aXRoX29wdGlvbnMgKCJ1c2VyLWFnZW50IiwgdXNlcmFnZW50LAorKwkJ CQkJCSAidGltZW91dCIsIDEyMCwKKysJCQkJCQkgImlkbGUtdGltZW91dCIsIDMwLAorIAkJCQkJ CSBOVUxMKTsKKy0Jc2Vzc2lvbjIgPSBzb3VwX3Nlc3Npb25fbmV3X3dpdGhfb3B0aW9ucyAoU09V UF9TRVNTSU9OX1VTRVJfQUdFTlQsIHVzZXJhZ2VudCwKKy0JCQkJCQkgIFNPVVBfU0VTU0lPTl9U SU1FT1VULCAxMjAsCistCQkJCQkJICBTT1VQX1NFU1NJT05fSURMRV9USU1FT1VULCAzMCwKKy0J CQkJCQkgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRSwgY29va2llcywKKy0JCQkJCQkgIFNPVVBf U0VTU0lPTl9QUk9YWV9VUkksIE5VTEwsCistCQkJCQkJICBTT1VQX1NFU1NJT05fUFJPWFlfUkVT T0xWRVIsIE5VTEwsCisrCXNlc3Npb24yID0gc291cF9zZXNzaW9uX25ld193aXRoX29wdGlvbnMg KCJ1c2VyLWFnZW50IiwgdXNlcmFnZW50LAorKwkJCQkJCSAgInRpbWVvdXQiLCAxMjAsCisrCQkJ CQkJICAiaWRsZS10aW1lb3V0IiwgMzAsCisgCQkJCQkJICBOVUxMKTsKKyAKKy0JLyogT25seSAn c2Vzc2lvbicgZ2V0cyBwcm94eSwgJ3Nlc3Npb24yJyBpcyBmb3Igbm9uLXByb3h5IHJlcXVlc3Rz ICovCistCW5ldHdvcmtfc2V0X3NvdXBfc2Vzc2lvbl9wcm94eSAoc2Vzc2lvbiwgbmV0d29ya19n ZXRfcHJveHlfZGV0ZWN0X21vZGUoKSwKKy0JCW5ldHdvcmtfZ2V0X3Byb3h5X2hvc3QgKCksCist CQluZXR3b3JrX2dldF9wcm94eV9wb3J0ICgpLAorLQkJbmV0d29ya19nZXRfcHJveHlfdXNlcm5h bWUgKCksCistCQluZXR3b3JrX2dldF9wcm94eV9wYXNzd29yZCAoKSk7CisrCXNvdXBfc2Vzc2lv bl9hZGRfZmVhdHVyZSAoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUgKGNvb2tpZXMpKTsK KysJc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlIChzZXNzaW9uMiwgU09VUF9TRVNTSU9OX0ZFQVRV UkUgKGNvb2tpZXMpKTsKKyAKKy0JZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbiwgImF1dGhlbnRp Y2F0ZSIsIEdfQ0FMTEJBQ0sgKG5ldHdvcmtfYXV0aGVudGljYXRlKSwgTlVMTCk7CisrCS8qIE9u bHkgJ3Nlc3Npb24nIGdldHMgcHJveHksICdzZXNzaW9uMicgaXMgZm9yIG5vbi1wcm94eSByZXF1 ZXN0cyAqLworKwlzb3VwX3Nlc3Npb25fc2V0X3Byb3h5X3Jlc29sdmVyIChzZXNzaW9uMiwgTlVM TCk7CisrCW5ldHdvcmtfc2V0X3NvdXBfc2Vzc2lvbl9wcm94eSAoc2Vzc2lvbiwgbmV0d29ya19n ZXRfcHJveHlfZGV0ZWN0X21vZGUoKSk7CisgCisgCS8qIFNvdXAgZGVidWdnaW5nICovCisgCWlm IChkZWJ1Z19sZXZlbCAmIERFQlVHX05FVCkgeworLQkJbG9nZ2VyID0gc291cF9sb2dnZXJfbmV3 IChTT1VQX0xPR0dFUl9MT0dfSEVBREVSUywgLTEpOworKwkJbG9nZ2VyID0gc291cF9sb2dnZXJf bmV3IChTT1VQX0xPR0dFUl9MT0dfSEVBREVSUyk7CisgCQlzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1 cmUgKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFIChsb2dnZXIpKTsKKyAJfQorIAorIAln X2ZyZWUgKHVzZXJhZ2VudCk7CisgfQorIAorLXZvaWQKKy1uZXR3b3JrX2RlaW5pdCAodm9pZCkK Ky17CistCWdfZnJlZSAocHJveHluYW1lKTsKKy0JZ19mcmVlIChwcm94eXVzZXJuYW1lKTsKKy0J Z19mcmVlIChwcm94eXBhc3N3b3JkKTsKKy19CistCisgUHJveHlEZXRlY3RNb2RlCisgbmV0d29y a19nZXRfcHJveHlfZGV0ZWN0X21vZGUgKHZvaWQpCisgeworIAlyZXR1cm4gcHJveHltb2RlOwor IH0KKyAKKy1jb25zdCBnY2hhciAqCistbmV0d29ya19nZXRfcHJveHlfaG9zdCAodm9pZCkKKy17 CistCXJldHVybiBwcm94eW5hbWU7CistfQorLQorLWd1aW50CistbmV0d29ya19nZXRfcHJveHlf cG9ydCAodm9pZCkKKy17CistCXJldHVybiBwcm94eXBvcnQ7CistfQorLQorLWNvbnN0IGdjaGFy ICoKKy1uZXR3b3JrX2dldF9wcm94eV91c2VybmFtZSAodm9pZCkKKy17CistCXJldHVybiBwcm94 eXVzZXJuYW1lOworLX0KKy0KKy1jb25zdCBnY2hhciAqCistbmV0d29ya19nZXRfcHJveHlfcGFz c3dvcmQgKHZvaWQpCisteworLQlyZXR1cm4gcHJveHlwYXNzd29yZDsKKy19CistCisgZXh0ZXJu IHZvaWQgbmV0d29ya19tb25pdG9yX3Byb3h5X2NoYW5nZWQgKHZvaWQpOworIAorIHZvaWQKKy1u ZXR3b3JrX3NldF9wcm94eSAoUHJveHlEZXRlY3RNb2RlIG1vZGUsIGdjaGFyICpob3N0LCBndWlu dCBwb3J0LCBnY2hhciAqdXNlciwgZ2NoYXIgKnBhc3N3b3JkKQorK25ldHdvcmtfc2V0X3Byb3h5 IChQcm94eURldGVjdE1vZGUgbW9kZSkKKyB7CistCWdfZnJlZSAocHJveHluYW1lKTsKKy0JZ19m cmVlIChwcm94eXVzZXJuYW1lKTsKKy0JZ19mcmVlIChwcm94eXBhc3N3b3JkKTsKKyAJcHJveHlt b2RlID0gbW9kZTsKKy0JcHJveHluYW1lID0gaG9zdDsKKy0JcHJveHlwb3J0ID0gcG9ydDsKKy0J cHJveHl1c2VybmFtZSA9IHVzZXI7CistCXByb3h5cGFzc3dvcmQgPSBwYXNzd29yZDsKKyAKKyAJ Lyogc2Vzc2lvbiB3aWxsIGJlIE5VTEwgaWYgd2Ugd2VyZSBjYWxsZWQgZnJvbSBjb25mX2luaXQo KSBhcyB0aGF0J3MgY2FsbGVkCisgCSAqIGJlZm9yZSBuZXRfaW5pdCgpICovCisgCWlmIChzZXNz aW9uKQorLQkJbmV0d29ya19zZXRfc291cF9zZXNzaW9uX3Byb3h5IChzZXNzaW9uLCBtb2RlLCBo b3N0LCBwb3J0LCB1c2VyLCBwYXNzd29yZCk7CistCistCWRlYnVnNCAoREVCVUdfTkVULCAicHJv eHkgc2V0IHRvIGh0dHA6Ly8lczolc0AlczolZCIsIHVzZXIsIHBhc3N3b3JkLCBob3N0LCBwb3J0 KTsKKysJCW5ldHdvcmtfc2V0X3NvdXBfc2Vzc2lvbl9wcm94eSAoc2Vzc2lvbiwgbW9kZSk7Cisg CisgCW5ldHdvcmtfbW9uaXRvcl9wcm94eV9jaGFuZ2VkICgpOworIH0KK0BAIC00NjgsMTEgKzQw NSw2IEBAIG5ldHdvcmtfc3RyZXJyb3IgKGdpbnQgc3RhdHVzKQorIAlzd2l0Y2ggKHN0YXR1cykg eworIAkJLyogU29tZSBsaWJzb3VwIHRyYW5zcG9ydCBlcnJvcnMgKi8KKyAJCWNhc2UgU09VUF9T VEFUVVNfTk9ORToJCQl0bXAgPSBfKCJUaGUgdXBkYXRlIHJlcXVlc3Qgd2FzIGNhbmNlbGxlZCIp OyBicmVhazsKKy0JCWNhc2UgU09VUF9TVEFUVVNfQ0FOVF9SRVNPTFZFOgkJdG1wID0gXygiVW5h YmxlIHRvIHJlc29sdmUgZGVzdGluYXRpb24gaG9zdCBuYW1lIik7IGJyZWFrOworLQkJY2FzZSBT T1VQX1NUQVRVU19DQU5UX1JFU09MVkVfUFJPWFk6CXRtcCA9IF8oIlVuYWJsZSB0byByZXNvbHZl IHByb3h5IGhvc3QgbmFtZSIpOyBicmVhazsKKy0JCWNhc2UgU09VUF9TVEFUVVNfQ0FOVF9DT05O RUNUOgkJdG1wID0gXygiVW5hYmxlIHRvIGNvbm5lY3QgdG8gcmVtb3RlIGhvc3QiKTsgYnJlYWs7 CistCQljYXNlIFNPVVBfU1RBVFVTX0NBTlRfQ09OTkVDVF9QUk9YWToJdG1wID0gXygiVW5hYmxl IHRvIGNvbm5lY3QgdG8gcHJveHkiKTsgYnJlYWs7CistCQljYXNlIFNPVVBfU1RBVFVTX1NTTF9G QUlMRUQ6CQl0bXAgPSBfKCJTU0wvVExTIG5lZ290aWF0aW9uIGZhaWxlZC4gUG9zc2libGUgb3V0 ZGF0ZWQgb3IgdW5zdXBwb3J0ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0uIENoZWNrIHlvdXIgb3Bl cmF0aW5nIHN5c3RlbSBzZXR0aW5ncy4iKTsgYnJlYWs7CisgCisgCQkvKiBodHRwIDN4eCByZWRp cmVjdGlvbiAqLworIAkJY2FzZSBTT1VQX1NUQVRVU19NT1ZFRF9QRVJNQU5FTlRMWToJdG1wID0g XygiVGhlIHJlc291cmNlIG1vdmVkIHBlcm1hbmVudGx5IHRvIGEgbmV3IGxvY2F0aW9uIik7IGJy ZWFrOworQEAgLTQ5OCwxOSArNDMwLDggQEAgbmV0d29ya19zdHJlcnJvciAoZ2ludCBzdGF0dXMp CisgCQljYXNlIFNPVVBfU1RBVFVTX0hUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEOiB0bXAgPSBf KCJIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZCIpOyBicmVhazsKKyAJfQorIAorLQlpZiAoIXRt cCkgeworLQkJaWYgKFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUiAoc3RhdHVzKSkgewor LQkJCXRtcCA9IF8oIlRoZXJlIHdhcyBhbiBpbnRlcm5hbCBlcnJvciBpbiB0aGUgdXBkYXRlIHBy b2Nlc3MiKTsKKy0JCX0gZWxzZSBpZiAoU09VUF9TVEFUVVNfSVNfUkVESVJFQ1RJT04gKHN0YXR1 cykpIHsKKy0JCQl0bXAgPSBfKCJGZWVkIG5vdCBhdmFpbGFibGU6IFNlcnZlciByZXF1ZXN0ZWQg dW5zdXBwb3J0ZWQgcmVkaXJlY3Rpb24hIik7CistCQl9IGVsc2UgaWYgKFNPVVBfU1RBVFVTX0lT X0NMSUVOVF9FUlJPUiAoc3RhdHVzKSkgeworLQkJCXRtcCA9IF8oIkNsaWVudCBFcnJvciIpOwor LQkJfSBlbHNlIGlmIChTT1VQX1NUQVRVU19JU19TRVJWRVJfRVJST1IgKHN0YXR1cykpIHsKKy0J CQl0bXAgPSBfKCJTZXJ2ZXIgRXJyb3IiKTsKKy0JCX0gZWxzZSB7CistCQkJdG1wID0gXygiQW4g dW5rbm93biBuZXR3b3JraW5nIGVycm9yIGhhcHBlbmVkISIpOworLQkJfQorLQl9CisrCWlmICgh dG1wKQorKwkJdG1wID0gXygiQW4gdW5rbm93biBuZXR3b3JraW5nIGVycm9yIGhhcHBlbmVkISIp OworIAorIAlnX2Fzc2VydCAodG1wKTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvbmV0LmggYi9zcmMv bmV0LmgKK2luZGV4IGEwZjA5NTFmZC4uODQ2NTFjMGUxIDEwMDY0NAorLS0tIGEvc3JjL25ldC5o CisrKysgYi9zcmMvbmV0LmgKK0BAIC01NCwxNiArNTQsMTEgQEAgdHlwZWRlZiBlbnVtIHsKKyAK KyAvKioKKyAgKiBDb25maWd1cmVzIHRoZSBuZXR3b3JrIGNsaWVudCB0byB1c2UgdGhlIGdpdmVu IHByb3h5CistICogc2V0dGluZ3MuIElmIHRoZSBob3N0IG5hbWUgaXMgTlVMTCB0aGVuIG5vIHBy b3h5IHdpbGwKKy0gKiBiZSB1c2VkLgorKyAqIHNldHRpbmdzLgorICAqCistICogQHBhcmFtIG1v ZGUJCWluZGljYXRlIHdoZXRoZXIgdG8gdXNlIHRoZSBzeXN0ZW0gc2V0dGluZywgbm8gcHJveHkg b3IgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzLgorLSAqIEBwYXJhbSBob3N0CQl0aGUgbmV3IHBy b3h5IGhvc3QKKy0gKiBAcGFyYW0gcG9ydAkJdGhlIG5ldyBwcm94eSBwb3J0CistICogQHBhcmFt IHVzZXIJCXRoZSBuZXcgcHJveHkgdXNlcm5hbWUgb3IgTlVMTAorLSAqIEBwYXJhbSBwYXNzd29y ZAl0aGUgbmV3IHByb3h5IHBhc3N3b3JkIG9yIE5VTEwKKysgKiBAcGFyYW0gbW9kZQkJaW5kaWNh dGUgd2hldGhlciB0byB1c2UgdGhlIHN5c3RlbSBzZXR0aW5nIG9yIG5vIHByb3h5CisgICovCist dm9pZCBuZXR3b3JrX3NldF9wcm94eSAoUHJveHlEZXRlY3RNb2RlIG1vZGUsIGdjaGFyICpob3N0 LCBndWludCBwb3J0LCBnY2hhciAqdXNlciwgZ2NoYXIgKnBhc3N3b3JkKTsKKyt2b2lkIG5ldHdv cmtfc2V0X3Byb3h5IChQcm94eURldGVjdE1vZGUgbW9kZSk7CisgCisgLyoqCisgICogUmV0dXJu cyB0aGUgcHJveHkgZGV0ZWN0IG1vZGUuCitkaWZmIC0tZ2l0IGEvc3JjL3VpL2xpZmVyZWFfYnJv d3Nlci5jIGIvc3JjL3VpL2xpZmVyZWFfYnJvd3Nlci5jCitpbmRleCA1MWQyYmM3NDEuLjkzYTdj N2FiMyAxMDA2NDQKKy0tLSBhL3NyYy91aS9saWZlcmVhX2Jyb3dzZXIuYworKysrIGIvc3JjL3Vp L2xpZmVyZWFfYnJvd3Nlci5jCitAQCAtMjg5LDEzICsyODksNyBAQCBsaWZlcmVhX2Jyb3dzZXJf b25saW5lX3N0YXR1c19jaGFuZ2VkIChOZXR3b3JrTW9uaXRvciAqbm0sIGdib29sZWFuIG9ubGlu ZSwgZ3BvaQorIHN0YXRpYyB2b2lkCisgbGlmZXJlYV9icm93c2VyX3Byb3h5X2NoYW5nZWQgKE5l dHdvcmtNb25pdG9yICpubSwgZ3BvaW50ZXIgdXNlcmRhdGEpCisgeworLQlsaWZlcmVhX3dlYmtp dF9zZXRfcHJveHkgKAorLQkJbmV0d29ya19nZXRfcHJveHlfZGV0ZWN0X21vZGUgKCksCistCQlu ZXR3b3JrX2dldF9wcm94eV9ob3N0ICgpLAorLQkJbmV0d29ya19nZXRfcHJveHlfcG9ydCAoKSwK Ky0JCW5ldHdvcmtfZ2V0X3Byb3h5X3VzZXJuYW1lICgpLAorLQkJbmV0d29ya19nZXRfcHJveHlf cGFzc3dvcmQgKCkKKy0JKTsKKysJbGlmZXJlYV93ZWJraXRfc2V0X3Byb3h5IChuZXR3b3JrX2dl dF9wcm94eV9kZXRlY3RfbW9kZSAoKSk7CisgfQorIAorIExpZmVyZWFCcm93c2VyICoKK2RpZmYg LS1naXQgYS9zcmMvd2Via2l0L3dlYmtpdC5jIGIvc3JjL3dlYmtpdC93ZWJraXQuYworaW5kZXgg ODkyZGViMjc3Li5iNzdkN2RjZWQgMTAwNjQ0CistLS0gYS9zcmMvd2Via2l0L3dlYmtpdC5jCisr KysgYi9zcmMvd2Via2l0L3dlYmtpdC5jCitAQCAtNjE3LDE0ICs2MTcsMTIgQEAgbGlmZXJlYV93 ZWJraXRfc2Nyb2xsX3BhZ2Vkb3duIChHdGtXaWRnZXQgKndlYnZpZXcpCisgfQorIAorIHZvaWQK Ky1saWZlcmVhX3dlYmtpdF9zZXRfcHJveHkgKFByb3h5RGV0ZWN0TW9kZSBtb2RlLCBjb25zdCBn Y2hhciAqaG9zdCwgZ3VpbnQgcG9ydCwgY29uc3QgZ2NoYXIgKnVzZXIsIGNvbnN0IGdjaGFyICpw d2QpCisrbGlmZXJlYV93ZWJraXRfc2V0X3Byb3h5IChQcm94eURldGVjdE1vZGUgbW9kZSkKKyB7 CisgI2lmIFdFQktJVF9DSEVDS19WRVJTSU9OICgyLCAxNSwgMykKKy0JV2ViS2l0TmV0d29ya1By b3h5U2V0dGluZ3MgKnByb3h5X3NldHRpbmdzID0gTlVMTDsKKy0JZ2NoYXIgKnByb3h5X3VyaSA9 IE5VTEw7CistCWdjaGFyICp1c2VyX3Bhc3MgPSBOVUxMLCAqaG9zdF9wb3J0ID0gTlVMTDsKKy0K KyAJc3dpdGNoIChtb2RlKSB7CisrCQlkZWZhdWx0OgorKwkJY2FzZSBQUk9YWV9ERVRFQ1RfTU9E RV9NQU5VQUw6CisgCQljYXNlIFBST1hZX0RFVEVDVF9NT0RFX0FVVE86CisgCQkJd2Via2l0X3dl YnNpdGVfZGF0YV9tYW5hZ2VyX3NldF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzCisgCQkJICAgICh3 ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyICh3ZWJraXRfd2ViX2Nv bnRleHRfZ2V0X2RlZmF1bHQgKCkpLAorQEAgLTYzNyw0MyArNjM1LDYgQEAgbGlmZXJlYV93ZWJr aXRfc2V0X3Byb3h5IChQcm94eURldGVjdE1vZGUgbW9kZSwgY29uc3QgZ2NoYXIgKmhvc3QsIGd1 aW50IHBvcnQsIGMKKyAJCQkgICAgIFdFQktJVF9ORVRXT1JLX1BST1hZX01PREVfTk9fUFJPWFks CisgCQkJICAgICBOVUxMKTsKKyAJCQlicmVhazsKKy0JCWNhc2UgUFJPWFlfREVURUNUX01PREVf TUFOVUFMOgorLQkJCS8qIENvbnN0cnVjdCB1c2VyOnBhc3N3b3JkIHBhcnQgb2YgdGhlIFVSSSBp ZiBzcGVjaWZpZWQuICovCistCQkJaWYgKHVzZXIpIHsKKy0JCQkJdXNlcl9wYXNzID0gZ191cmlf ZXNjYXBlX3N0cmluZyAodXNlciwgTlVMTCwgVFJVRSk7CistCQkJCWlmIChwd2QpIHsKKy0JCQkJ CWdjaGFyICplbmNfdXNlciA9IHVzZXJfcGFzczsKKy0JCQkJCWdjaGFyICplbmNfcGFzcyA9IGdf dXJpX2VzY2FwZV9zdHJpbmcgKHB3ZCwgTlVMTCwgVFJVRSk7CistCQkJCQl1c2VyX3Bhc3MgPSBn X3N0cmR1cF9wcmludGYgKCIlczolcyIsIGVuY191c2VyLCBlbmNfcGFzcyk7CistCQkJCQlnX2Zy ZWUgKGVuY191c2VyKTsKKy0JCQkJCWdfZnJlZSAoZW5jX3Bhc3MpOworLQkJCQl9CistCQkJfQor LQorLQkJCS8qIENvbnN0cnVjdCB0aGUgaG9zdDpwb3J0IHBhcnQgb2YgdGhlIFVSSS4gKi8KKy0J CQlpZiAocG9ydCkgeworLQkJCQlob3N0X3BvcnQgPSBnX3N0cmR1cF9wcmludGYgKCIlczolZCIs IGhvc3QsIHBvcnQpOworLQkJCX0gZWxzZSB7CistCQkJCWhvc3RfcG9ydCA9IGdfc3RyZHVwICho b3N0KTsKKy0JCQl9CistCistCQkJLyogQ29uc3RydWN0IHByb3h5IFVSSS4gKi8KKy0JCQlpZiAo dXNlcikgeworLQkJCQlwcm94eV91cmkgPSBnX3N0cmR1cF9wcmludGYoImh0dHA6Ly8lc0AlcyIs IHVzZXJfcGFzcywgaG9zdF9wb3J0KTsKKy0JCQl9IGVsc2UgeworLQkJCQlwcm94eV91cmkgPSBn X3N0cmR1cF9wcmludGYoImh0dHA6Ly8lcyIsIGhvc3RfcG9ydCk7CistCQkJfQorLQorLQkJCWdf ZnJlZSAodXNlcl9wYXNzKTsKKy0JCQlnX2ZyZWUgKGhvc3RfcG9ydCk7CistCQkJcHJveHlfc2V0 dGluZ3MgPSB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19uZXcgKHByb3h5X3VyaSwgTlVM TCk7CistCQkJZ19mcmVlIChwcm94eV91cmkpOworLQkJCXdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu YWdlcl9zZXRfbmV0d29ya19wcm94eV9zZXR0aW5ncworLQkJCSAgICAod2Via2l0X3dlYl9jb250 ZXh0X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlciAod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZh dWx0ICgpKSwKKy0JCQkgICAgIFdFQktJVF9ORVRXT1JLX1BST1hZX01PREVfQ1VTVE9NLAorLQkJ CSAgICAgcHJveHlfc2V0dGluZ3MpOworLQkJCXdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRpbmdz X2ZyZWUgKHByb3h5X3NldHRpbmdzKTsKKy0JCQlicmVhazsKKyAJfQorICNlbmRpZgorIH0KK2Rp ZmYgLS1naXQgYS9zcmMvd2Via2l0L3dlYmtpdC5oIGIvc3JjL3dlYmtpdC93ZWJraXQuaAoraW5k ZXggYjkxNjUxYjhmLi5kZmEwOTU0OTcgMTAwNjQ0CistLS0gYS9zcmMvd2Via2l0L3dlYmtpdC5o CisrKysgYi9zcmMvd2Via2l0L3dlYmtpdC5oCitAQCAtOTgsNyArOTgsNyBAQCB2b2lkIGxpZmVy ZWFfd2Via2l0X3Njcm9sbF9wYWdlZG93biAoR3RrV2lkZ2V0ICp3ZWJ2aWV3KTsKKyAvKioKKyAg KiBsaWZlcmVhX3dlYmtpdF9zZXRfcHJveHk6IChza2lwKQorICAqLworLXZvaWQgbGlmZXJlYV93 ZWJraXRfc2V0X3Byb3h5IChQcm94eURldGVjdE1vZGUgbW9kZSwgY29uc3QgZ2NoYXIgKmhvc3Qs IGd1aW50IHBvcnQsIGNvbnN0IGdjaGFyICp1c2VyLCBjb25zdCBnY2hhciAqcHdkKTsKKyt2b2lk IGxpZmVyZWFfd2Via2l0X3NldF9wcm94eSAoUHJveHlEZXRlY3RNb2RlIG1vZGUpOworIAorIC8q KgorICAqIGxpZmVyZWFfd2Via2l0X3JlbG9hZF9zdHlsZToKKworRnJvbSAyZjk5ODkzMGQ0M2Jm Mzk3ZjQyMDljMTM0MTcxNDU0ODIyOGRiOThlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogTGFycyBXaW5kb2xmIDxsYXJzLndpbmRvbGZAZ214LmRlPgorRGF0ZTogRnJpLCAzMSBNYXIg MjAyMyAxMDoxODozOCArMDIwMAorU3ViamVjdDogW1BBVENIIDAyLzIwXSBGaXhlcyB3ZWJraXQy Z3RrLXdlYi1leHRlbnNpb24gdmVyc2lvbgorCistLS0KKyBjb25maWd1cmUuYWMgfCAyICstCisg MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1n aXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDAxNWRkMWNlYi4uNmQzMDkw NTBjIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC01 OSw3ICs1OSw3IEBAIEFDX1NVQlNUKFBBQ0tBR0VfTElCUykKKyAKKyAKKyBQS0dfQ0hFQ0tfTU9E VUxFUyhbV0VCX0VYVEVOU0lPTl0sIFsKKy0gICAgICAgICAgICAgICAgICB3ZWJraXQyZ3RrLXdl Yi1leHRlbnNpb24tNC4wCisrICAgICAgICAgICAgICAgICAgd2Via2l0Mmd0ay13ZWItZXh0ZW5z aW9uLTQuMQorICAgICAgICAgICAgICAgICAgIF0pCisgQUNfU1VCU1QoW1dFQl9FWFRFTlNJT05f Q0ZMQUdTXSkKKyBBQ19TVUJTVChbV0VCX0VYVEVOU0lPTl9MSUJTXSkKKworRnJvbSAzYjI1MzRl YjY4NmEwY2Q0NGJlOThmNTk3ZWQyMWIwYWIyNWE5NGQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTGFycyBXaW5kb2xmIDxsYXJzLndpbmRvbGZAZ214LmRlPgorRGF0ZTogU2F0LCAx IEFwciAyMDIzIDE1OjQyOjE5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTEvMjBdIEZpeCBjcmFz aCBvbiBhdXRvcHRyIGZyZWUKKworLS0tCisgc3JjL25ldC5jIHwgMyArKy0KKyAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zcmMv bmV0LmMgYi9zcmMvbmV0LmMKK2luZGV4IDY0ZThlYjczMi4uODIxMDhhYzljIDEwMDY0NAorLS0t IGEvc3JjL25ldC5jCisrKysgYi9zcmMvbmV0LmMKK0BAIC0xNTEsNiArMTUxLDcgQEAgbmV0d29y a19wcm9jZXNzX2NhbGxiYWNrIChHSW5wdXRTdHJlYW0gKnN0cmVhbSwgU291cE1lc3NhZ2UgKm1z ZywgdXBkYXRlSm9iUHRyIGoKKyAJfQorIAorIAl1cGRhdGVfcHJvY2Vzc19maW5pc2hlZF9qb2Ig KGpvYik7CisrCWdfb2JqZWN0X3VucmVmIChzdHJlYW0pOworIH0KKyAKKyAvKiBEb3dubG9hZHMg YSBVUkwgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0IHN0cnVjdHVyZSwgcmV0dXJucworQEAgLTE2 Myw3ICsxNjQsNyBAQCBuZXR3b3JrX3Byb2Nlc3NfY2FsbGJhY2sgKEdJbnB1dFN0cmVhbSAqc3Ry ZWFtLCBTb3VwTWVzc2FnZSAqbXNnLCB1cGRhdGVKb2JQdHIgagorIHZvaWQKKyBuZXR3b3JrX3By b2Nlc3NfcmVxdWVzdCAoY29uc3QgdXBkYXRlSm9iUHRyIGpvYikKKyB7CistCWdfYXV0b3B0cihH SW5wdXRTdHJlYW0pCXN0cmVhbTsKKysJR0lucHV0U3RyZWFtCQkqc3RyZWFtOworIAlnX2F1dG9w dHIoU291cE1lc3NhZ2UpCW1zZyA9IE5VTEw7CisgCVNvdXBNZXNzYWdlSGVhZGVycwkqcmVxdWVz dF9oZWFkZXJzOworIAlnX2F1dG9wdHIoR1VyaSkJCXNvdXJjZVVyaTsKKworRnJvbSA1ZGY0NDI0 YWM4NzNhNmE3OTQ3NGMwNTM4ODc3MzQxM2FjMjg3NTI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTGFycyBXaW5kb2xmIDxsYXJzLndpbmRvbGZAZ214LmRlPgorRGF0ZTogU2F0LCAx IEFwciAyMDIzIDE1OjQ0OjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTIvMjBdIEJ1bXAgZ2xp YiBkZXBlbmRlbmN5IGZvciBnX21lbWR1cDIoKQorCistLS0KKyBjb25maWd1cmUuYWMgfCAyICst Cisgc3JjL25ldC5jICAgIHwgNSAtLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1 cmUuYWMKK2luZGV4IDZkMzA5MDUwYy4uZWZkM2QwYzI0IDEwMDY0NAorLS0tIGEvY29uZmlndXJl LmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0zMCw3ICszMCw3IEBAIFBLR19QUk9HX1BLR19D T05GSUcoKQorICMgTWFuZGF0b3J5IGxpYnJhcnkgZGVwZW5kZW5jaWVzCisgCisgcGtnX21vZHVs ZXM9IglndGsrLTMuMCA+PSAzLjIyLjAKKy0JCWdsaWItMi4wID49IDIuNTAuMAorKwkJZ2xpYi0y LjAgPj0gMi42OC4wCisgCQlnaW8tMi4wID49IDIuNTAuMAorIAkJcGFuZ28gPj0gMS40LjAgCisg CQlsaWJ4bWwtMi4wID49IDIuNi4yNworZGlmZiAtLWdpdCBhL3NyYy9uZXQuYyBiL3NyYy9uZXQu YworaW5kZXggODIxMDhhYzljLi5lN2E4MmVhZTYgMTAwNjQ0CistLS0gYS9zcmMvbmV0LmMKKysr KyBiL3NyYy9uZXQuYworQEAgLTg3LDEyICs4Nyw3IEBAIG5ldHdvcmtfcHJvY2Vzc19jYWxsYmFj ayAoR0lucHV0U3RyZWFtICpzdHJlYW0sIFNvdXBNZXNzYWdlICptc2csIHVwZGF0ZUpvYlB0ciBq CisgCWRlYnVnMSAoREVCVUdfTkVULCAic291cmNlIGFmdGVyIGRvd25sb2FkOiA+Pj4lczw8PCIs IGpvYi0+cmVzdWx0LT5zb3VyY2UpOworIAorIAlib2R5ID0gZ19pbnB1dF9zdHJlYW1fcmVhZF9i eXRlcyAoc3RyZWFtLCBHX01BWFNTSVpFLCBjYW5jZWxsYWJsZSwgTlVMTCk7CistCistI2lmZGVm IEhBVkVfR19NRU1EVVAyCisgCWpvYi0+cmVzdWx0LT5kYXRhID0gZ19tZW1kdXAyIChnX2J5dGVz X2dldF9kYXRhIChib2R5LCAmam9iLT5yZXN1bHQtPnNpemUpLCBnX2J5dGVzX2dldF9zaXplIChi b2R5KSk7CistI2Vsc2UKKy0Jam9iLT5yZXN1bHQtPmRhdGEgPSBnX21lbWR1cCAoZ19ieXRlc19n ZXRfZGF0YSAoYm9keSwgJmpvYi0+cmVzdWx0LT5zaXplKSwgZ19ieXRlc19nZXRfc2l6ZSAoYm9k eSkpOworLSNlbmRpZgorIAorIAlkZWJ1ZzEgKERFQlVHX05FVCwgIiVkIGJ5dGVzIGRvd25sb2Fk ZWQiLCBqb2ItPnJlc3VsdC0+c2l6ZSk7CisgCisKK0Zyb20gODdjYmEwYmE5YTVkMDNlYzZhNWNj NWY4NjU5MDQyZjEyOWIyOWU3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IExhcnMg V2luZG9sZiA8bGFycy53aW5kb2xmQGdteC5kZT4KK0RhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoy ODozOSArMDIwMAorU3ViamVjdDogW1BBVENIIDEzLzIwXSBNYWtlIGRvd25sb2FkaW5nIHdvcmsu CisKKy0tLQorIHNyYy9uZXQuYyB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygr KSwgMjMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvbmV0LmMgYi9zcmMvbmV0LmMK K2luZGV4IGU3YTgyZWFlNi4uOTVlZDhjNTIyIDEwMDY0NAorLS0tIGEvc3JjL25ldC5jCisrKysg Yi9zcmMvbmV0LmMKK0BAIC01Miw5ICs1Miw5IEBAIG5ldHdvcmtfcHJvY2Vzc19yZWRpcmVjdF9j YWxsYmFjayAoU291cE1lc3NhZ2UgKm1zZywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIAlTb3VwU3Rh dHVzCXN0YXR1cyA9IHNvdXBfbWVzc2FnZV9nZXRfc3RhdHVzIChtc2cpOworIAorIAlpZiAoU09V UF9TVEFUVVNfTU9WRURfUEVSTUFORU5UTFkgPT0gc3RhdHVzIHx8IFNPVVBfU1RBVFVTX1BFUk1B TkVOVF9SRURJUkVDVCA9PSBzdGF0dXMpIHsKKy0JCWlmIChnX3VyaV9pc192YWxpZCAobG9jYXRp b24sIFNPVVBfSFRUUF9VUklfRkxBR1MgfCBHX1VSSV9GTEFHU19QQVJTRV9SRUxBWEVELCBOVUxM KSkgeworKwkJaWYgKGdfdXJpX2lzX3ZhbGlkIChsb2NhdGlvbiwgR19VUklfRkxBR1NfUEFSU0Vf UkVMQVhFRCwgTlVMTCkpIHsKKyAJCQlsb2NhdGlvbiA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dl dF9vbmUgKHNvdXBfbWVzc2FnZV9nZXRfcmVzcG9uc2VfaGVhZGVycyAobXNnKSwgIkxvY2F0aW9u Iik7CistCQkJbmV3dXJpID0gZ191cmlfcGFyc2UgKGxvY2F0aW9uLCBTT1VQX0hUVFBfVVJJX0ZM QUdTIHwgR19VUklfRkxBR1NfUEFSU0VfUkVMQVhFRCwgTlVMTCk7CisrCQkJbmV3dXJpID0gZ191 cmlfcGFyc2UgKGxvY2F0aW9uLCBHX1VSSV9GTEFHU19QQVJTRV9SRUxBWEVELCBOVUxMKTsKKyAK KyAJCQlpZiAoIXNvdXBfdXJpX2VxdWFsIChuZXd1cmksIHNvdXBfbWVzc2FnZV9nZXRfdXJpICht c2cpKSkgeworIAkJCQlqb2ItPnJlc3VsdC0+aHR0cHN0YXR1cyA9IHN0YXR1czsKK0BAIC02Nywy OCArNjcsMzEgQEAgbmV0d29ya19wcm9jZXNzX3JlZGlyZWN0X2NhbGxiYWNrIChTb3VwTWVzc2Fn ZSAqbXNnLCBncG9pbnRlciB1c2VyX2RhdGEpCisgfQorIAorIHN0YXRpYyB2b2lkCistbmV0d29y a19wcm9jZXNzX2NhbGxiYWNrIChHSW5wdXRTdHJlYW0gKnN0cmVhbSwgU291cE1lc3NhZ2UgKm1z ZywgdXBkYXRlSm9iUHRyIGpvYikKKytuZXR3b3JrX3Byb2Nlc3NfY2FsbGJhY2sgKEdPYmplY3Qg Km9iaiwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CistCWdfYXV0 b3B0cihHQnl0ZXMpCWJvZHkgPSBOVUxMOworKwlTb3VwU2Vzc2lvbgkJKnNlc3Npb24gPSBTT1VQ X1NFU1NJT04gKG9iaik7CisrCVNvdXBNZXNzYWdlCQkqbXNnOworKwl1cGRhdGVKb2JQdHIJCWpv YiA9ICh1cGRhdGVKb2JQdHIpdXNlcl9kYXRhOworIAlHRGF0ZVRpbWUJCSpsYXN0X21vZGlmaWVk OworIAljb25zdCBnY2hhcgkJKnRtcCA9IE5VTEw7CisgCUdIYXNoVGFibGUJCSpwYXJhbXM7Cisg CWdib29sZWFuCQlyZXZhbGlkYXRlZCA9IEZBTFNFOworIAlnaW50CQkJbWF4YWdlOworIAlnaW50 CQkJYWdlOworKwlnX2F1dG9wdHIoR0J5dGVzKQlib2R5OworKworKwltc2cgPSBzb3VwX3Nlc3Np b25fZ2V0X2FzeW5jX3Jlc3VsdF9tZXNzYWdlIChzZXNzaW9uLCByZXMpOworKwlib2R5ID0gc291 cF9zZXNzaW9uX3NlbmRfYW5kX3JlYWRfZmluaXNoIChzZXNzaW9uLCByZXMsIE5VTEwpOwkvLyBG SVhNRTogaGFuZGxlIGVycm9ycyEKKyAKKyAJam9iLT5yZXN1bHQtPnNvdXJjZSA9IGdfdXJpX3Rv X3N0cmluZ19wYXJ0aWFsIChzb3VwX21lc3NhZ2VfZ2V0X3VyaSAobXNnKSwgMCk7CisgCWpvYi0+ cmVzdWx0LT5odHRwc3RhdHVzID0gc291cF9tZXNzYWdlX2dldF9zdGF0dXMgKG1zZyk7CisrCWpv Yi0+cmVzdWx0LT5kYXRhID0gZ19tZW1kdXAyIChnX2J5dGVzX2dldF9kYXRhIChib2R5LCAmam9i LT5yZXN1bHQtPnNpemUpLCBnX2J5dGVzX2dldF9zaXplIChib2R5KSk7CisgCisgCS8qIGtlZXAg c29tZSByZXF1ZXN0IGhlYWRlcnMgZm9yIHJldmFsaWRhdGVkIHJlc3BvbnNlcyAqLworIAlyZXZh bGlkYXRlZCA9ICgzMDQgPT0gam9iLT5yZXN1bHQtPmh0dHBzdGF0dXMpOworIAorIAlkZWJ1ZzEg KERFQlVHX05FVCwgImRvd25sb2FkIHN0YXR1cyBjb2RlOiAlZCIsIGpvYi0+cmVzdWx0LT5odHRw c3RhdHVzKTsKKyAJZGVidWcxIChERUJVR19ORVQsICJzb3VyY2UgYWZ0ZXIgZG93bmxvYWQ6ID4+ PiVzPDw8Iiwgam9iLT5yZXN1bHQtPnNvdXJjZSk7CistCistCWJvZHkgPSBnX2lucHV0X3N0cmVh bV9yZWFkX2J5dGVzIChzdHJlYW0sIEdfTUFYU1NJWkUsIGNhbmNlbGxhYmxlLCBOVUxMKTsKKy0J am9iLT5yZXN1bHQtPmRhdGEgPSBnX21lbWR1cDIgKGdfYnl0ZXNfZ2V0X2RhdGEgKGJvZHksICZq b2ItPnJlc3VsdC0+c2l6ZSksIGdfYnl0ZXNfZ2V0X3NpemUgKGJvZHkpKTsKKy0KKyAJZGVidWcx IChERUJVR19ORVQsICIlZCBieXRlcyBkb3dubG9hZGVkIiwgam9iLT5yZXN1bHQtPnNpemUpOwor IAorIAlqb2ItPnJlc3VsdC0+Y29udGVudFR5cGUgPSBnX3N0cmR1cCAoc291cF9tZXNzYWdlX2hl YWRlcnNfZ2V0X2NvbnRlbnRfdHlwZSAoc291cF9tZXNzYWdlX2dldF9yZXNwb25zZV9oZWFkZXJz IChtc2cpLCBOVUxMKSk7CitAQCAtMTA0LDcgKzEwNyw3IEBAIG5ldHdvcmtfcHJvY2Vzc19jYWxs YmFjayAoR0lucHV0U3RyZWFtICpzdHJlYW0sIFNvdXBNZXNzYWdlICptc2csIHVwZGF0ZUpvYlB0 ciBqCisgCQkJbGFzdF9tb2RpZmllZCA9IHNvdXBfZGF0ZV90aW1lX25ld19mcm9tX2h0dHBfc3Ry aW5nICh0bXApOworIAkJCWlmIChsYXN0X21vZGlmaWVkKSB7CisgCQkJCWpvYi0+cmVzdWx0LT51 cGRhdGVTdGF0ZS0+bGFzdE1vZGlmaWVkID0gZ19kYXRlX3RpbWVfdG9fdW5peCAobGFzdF9tb2Rp ZmllZCk7CistCQkJCWdfZnJlZSAobGFzdF9tb2RpZmllZCk7CisrCQkJCWdfZGF0ZV90aW1lX3Vu cmVmIChsYXN0X21vZGlmaWVkKTsKKyAJCQl9CisgCQl9CisgCX0KK0BAIC0xNDYsNyArMTQ5LDcg QEAgbmV0d29ya19wcm9jZXNzX2NhbGxiYWNrIChHSW5wdXRTdHJlYW0gKnN0cmVhbSwgU291cE1l c3NhZ2UgKm1zZywgdXBkYXRlSm9iUHRyIGoKKyAJfQorIAorIAl1cGRhdGVfcHJvY2Vzc19maW5p c2hlZF9qb2IgKGpvYik7CistCWdfb2JqZWN0X3VucmVmIChzdHJlYW0pOworKwlnX2J5dGVzX3Vu cmVmIChib2R5KTsKKyB9CisgCisgLyogRG93bmxvYWRzIGEgVVJMIHNwZWNpZmllZCBpbiB0aGUg cmVxdWVzdCBzdHJ1Y3R1cmUsIHJldHVybnMKK0BAIC0xNTksMzAgKzE2Miw0NiBAQCBuZXR3b3Jr X3Byb2Nlc3NfY2FsbGJhY2sgKEdJbnB1dFN0cmVhbSAqc3RyZWFtLCBTb3VwTWVzc2FnZSAqbXNn LCB1cGRhdGVKb2JQdHIgagorIHZvaWQKKyBuZXR3b3JrX3Byb2Nlc3NfcmVxdWVzdCAoY29uc3Qg dXBkYXRlSm9iUHRyIGpvYikKKyB7CistCUdJbnB1dFN0cmVhbQkJKnN0cmVhbTsKKyAJZ19hdXRv cHRyKFNvdXBNZXNzYWdlKQltc2cgPSBOVUxMOworIAlTb3VwTWVzc2FnZUhlYWRlcnMJKnJlcXVl c3RfaGVhZGVyczsKKyAJZ19hdXRvcHRyKEdVcmkpCQlzb3VyY2VVcmk7CisgCWdib29sZWFuCQlk b19ub3RfdHJhY2sgPSBGQUxTRTsKKysJZ19hdXRvZnJlZSBnY2hhcgkqc2NoZW1lID0gTlVMTCwg KnVzZXIgPSBOVUxMLCAqcGFzc3dvcmQgPSBOVUxMLCAqYXV0aF9wYXJhbXMgPSBOVUxMLCAqaG9z dCA9IE5VTEwsICpwYXRoID0gTlVMTCwgKnF1ZXJ5ID0gTlVMTCwgKmZyYWdtZW50ID0gTlVMTDsK KysJZ2ludAkJCXBvcnQ7CisgCisgCWdfYXNzZXJ0IChOVUxMICE9IGpvYi0+cmVxdWVzdCk7Cisg CWRlYnVnMSAoREVCVUdfTkVULCAiZG93bmxvYWRpbmcgJXMiLCBqb2ItPnJlcXVlc3QtPnNvdXJj ZSk7CisgCWlmIChqb2ItPnJlcXVlc3QtPnBvc3RkYXRhICYmIChkZWJ1Z19sZXZlbCAmIERFQlVH X1ZFUkJPU0UpICYmIChkZWJ1Z19sZXZlbCAmIERFQlVHX05FVCkpCisgCQlkZWJ1ZzEgKERFQlVH X05FVCwgIiAgIHBvc3RkYXRhPT4+PiVzPDw8Iiwgam9iLT5yZXF1ZXN0LT5wb3N0ZGF0YSk7Cisg CisrCWdfdXJpX3NwbGl0X3dpdGhfdXNlciAoam9iLT5yZXF1ZXN0LT5zb3VyY2UsCisrCSAgICAg ICAgICAgICAgICAgICAgICAgR19VUklfRkxBR1NfRU5DT0RFRCwKKysJCQkgICAgICAgJnNjaGVt ZSwKKysJCQkgICAgICAgJnVzZXIsCisrCQkJICAgICAgICZwYXNzd29yZCwKKysJCQkgICAgICAg JmF1dGhfcGFyYW1zLAorKwkJCSAgICAgICAmaG9zdCwKKysJCQkgICAgICAgJnBvcnQsCisrCQkJ ICAgICAgICZwYXRoLAorKwkJCSAgICAgICAmcXVlcnksCisrCQkJICAgICAgICZmcmFnbWVudCwK KysJCQkgICAgICAgTlVMTCk7CisrCisgCS8qIFByZXBhcmUgdGhlIFNvdXBNZXNzYWdlICovCisg CXNvdXJjZVVyaSA9IGdfdXJpX2J1aWxkX3dpdGhfdXNlciAoCisgCQlTT1VQX0hUVFBfVVJJX0ZM QUdTIHwgR19VUklfRkxBR1NfUEFSU0VfUkVMQVhFRCwKKy0JCWdfdXJpX3BlZWtfc2NoZW1lIChq b2ItPnJlcXVlc3QtPnNvdXJjZSksCisrCQlzY2hlbWUsCisrCQkvLyBGSVhNRTogYWxsb3cgcGFz c2luZyB1c2VyL3Bhc3N3b3JkIGZyb20gYWJvdmU/CisgCQkoIWpvYi0+cmVxdWVzdC0+YXV0aFZh bHVlICYmIGpvYi0+cmVxdWVzdC0+b3B0aW9ucyAmJiBqb2ItPnJlcXVlc3QtPm9wdGlvbnMtPnVz ZXJuYW1lKT9qb2ItPnJlcXVlc3QtPm9wdGlvbnMtPnVzZXJuYW1lOk5VTEwsCisgCQkoIWpvYi0+ cmVxdWVzdC0+YXV0aFZhbHVlICYmIGpvYi0+cmVxdWVzdC0+b3B0aW9ucyAmJiBqb2ItPnJlcXVl c3QtPm9wdGlvbnMtPnBhc3N3b3JkKT9qb2ItPnJlcXVlc3QtPm9wdGlvbnMtPnBhc3N3b3JkOk5V TEwsCistCQlOVUxMLAkvKiBhdXRoX3BhcmFtcyAqLworLQkJTlVMTCwJLyogaG9zdCAqLworLQkJ LTEsCS8qIHBvcnQgKi8KKy0JCWpvYi0+cmVxdWVzdC0+c291cmNlLAorLQkJTlVMTCwJLyogcXVl cnkgKi8KKy0JCU5VTEwJLyogZnJhZ21lbnQgKi8KKysJCWF1dGhfcGFyYW1zLAorKwkJaG9zdCwK KysJCXBvcnQsCisrCQlwYXRoLAorKwkJcXVlcnksCisrCQlmcmFnbWVudAorIAkpOworKworIAlp ZiAoc291cmNlVXJpKQorIAkJbXNnID0gc291cF9tZXNzYWdlX25ld19mcm9tX3VyaSAoam9iLT5y ZXF1ZXN0LT5wb3N0ZGF0YT8iUE9TVCI6IkdFVCIsIHNvdXJjZVVyaSk7CisgCWlmICghbXNnKSB7 CitAQCAtMjYzLDEyICsyODIsOSBAQCBuZXR3b3JrX3Byb2Nlc3NfcmVxdWVzdCAoY29uc3QgdXBk YXRlSm9iUHRyIGpvYikKKyAKKyAJLyogSWYgdGhlIGZlZWQgaGFzICJkb250IHVzZSBhIHByb3h5 IiBzZWxlY3RlZCwgdXNlICdzZXNzaW9uMicgd2hpY2ggaXMgbm9uLXByb3h5ICovCisgCWlmIChq b2ItPnJlcXVlc3QtPm9wdGlvbnMgJiYgam9iLT5yZXF1ZXN0LT5vcHRpb25zLT5kb250VXNlUHJv eHkpCistCQlzdHJlYW0gPSBzb3VwX3Nlc3Npb25fc2VuZCAoc2Vzc2lvbjIsIG1zZywgY2FuY2Vs bGFibGUsIE5VTEwpOworKwkJc291cF9zZXNzaW9uX3NlbmRfYW5kX3JlYWRfYXN5bmMgKHNlc3Np b24yLCBtc2csIDAgLyogSU8gcHJpb3JpdHkgKi8sIGNhbmNlbGxhYmxlLCBuZXR3b3JrX3Byb2Nl c3NfY2FsbGJhY2ssIGpvYik7CisgCWVsc2UKKy0JCXN0cmVhbSA9IHNvdXBfc2Vzc2lvbl9zZW5k IChzZXNzaW9uLCBtc2csIGNhbmNlbGxhYmxlLCBOVUxMKTsKKy0KKy0JaWYgKHN0cmVhbSkKKy0J CW5ldHdvcmtfcHJvY2Vzc19jYWxsYmFjayAoc3RyZWFtLCBtc2csIGpvYik7CisrCQlzb3VwX3Nl c3Npb25fc2VuZF9hbmRfcmVhZF9hc3luYyAoc2Vzc2lvbiwgbXNnLCAwIC8qIElPIHByaW9yaXR5 ICovLCBjYW5jZWxsYWJsZSwgbmV0d29ya19wcm9jZXNzX2NhbGxiYWNrLCBqb2IpOworIH0KKyAK KyBzdGF0aWMgdm9pZAorCitGcm9tIDcwMGVjMmY0YmE1YWU1MjVmOTRjNTUyNmY4YzNjY2U5YTY0 ZTk1ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMYXJzIFdpbmRvbGYgPGxhcnMu d2luZG9sZkBnbXguZGU+CitEYXRlOiBGcmksIDE1IFNlcCAyMDIzIDIyOjU0OjE3ICswMjAwCitT dWJqZWN0OiBbUEFUQ0hdIEZpeGVzICMxMjk3OiBhdXRvIGRpc2FibGUgd2Via2l0LXNldHRpbmdz IHBsdWdpbi4KKworLS0tCisgc3JjL3BsdWdpbnNfZW5naW5lLmMgfCAxMzQgKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3NiBpbnNl cnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zX2Vu Z2luZS5jIGIvc3JjL3BsdWdpbnNfZW5naW5lLmMKK2luZGV4IDFhZmQyYjlhYS4uNjM5MTllZjNh IDEwMDY0NAorLS0tIGEvc3JjL3BsdWdpbnNfZW5naW5lLmMKKysrKyBiL3NyYy9wbHVnaW5zX2Vu Z2luZS5jCitAQCAtNDcsNjQgKzQ3LDgyIEBAIExpZmVyZWFQbHVnaW5zRW5naW5lICpkZWZhdWx0 X2VuZ2luZSA9IE5VTEw7Cisgc3RhdGljIHZvaWQKKyBsaWZlcmVhX3BsdWdpbnNfZW5naW5lX2lu aXQgKExpZmVyZWFQbHVnaW5zRW5naW5lICogZW5naW5lKQorIHsKKy0gIGdjaGFyICp0eXBlbGli X2RpcjsKKy0gIEdFcnJvciAqZXJyb3IgPSBOVUxMOworLSAgUGVhc1BsdWdpbkluZm8gKnBsdWdp bl9pbnN0YWxsZXJfcGx1Z2luX2luZm8gPSBOVUxMOworLQorLSAgZW5naW5lLT5wcml2ID0gbGlm ZXJlYV9wbHVnaW5zX2VuZ2luZV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoZW5naW5lKTsKKy0KKy0g IHBlYXNfZW5naW5lX2VuYWJsZV9sb2FkZXIgKFBFQVNfRU5HSU5FIChlbmdpbmUpLCAicHl0aG9u MyIpOworLQorLSAgZW5naW5lLT5wcml2LT5wbHVnaW5fc2V0dGluZ3MgPSBnX3NldHRpbmdzX25l dyAoIm5ldC5zZi5saWZlcmVhLnBsdWdpbnMiKTsKKy0KKy0gIC8qIFJlcXVpcmUgTGlmZXJlYXMn cyB0eXBlbGliLiAqLworLSAgdHlwZWxpYl9kaXIgPSBnX2J1aWxkX2ZpbGVuYW1lIChQQUNLQUdF X0xJQl9ESVIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnaXJlcG9zaXRv cnktMS4wIiwgTlVMTCk7CistCistICBpZiAoIWdfaXJlcG9zaXRvcnlfcmVxdWlyZV9wcml2YXRl IChnX2lyZXBvc2l0b3J5X2dldF9kZWZhdWx0ICgpLAorLQkgIHR5cGVsaWJfZGlyLCAiTGlmZXJl YSIsICIzLjAiLCAwLCAmZXJyb3IpKQorLSAgICB7CistICAgICAgZ193YXJuaW5nICgiQ291bGQg bm90IGxvYWQgTGlmZXJlYSByZXBvc2l0b3J5OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAg ICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKy0gICAgICBlcnJvciA9IE5VTEw7CistICAgIH0KKy0K Ky0gIGdfZnJlZSAodHlwZWxpYl9kaXIpOworLQorLSAgLyogVGhpcyBzaG91bGQgYmUgbW92ZWQg dG8gbGlicGVhcyAqLworLSAgaWYgKCFnX2lyZXBvc2l0b3J5X3JlcXVpcmUgKGdfaXJlcG9zaXRv cnlfZ2V0X2RlZmF1bHQgKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBlYXMi LCAiMS4wIiwgMCwgJmVycm9yKSkKKy0gICAgeworLSAgICAgIGdfd2FybmluZyAoIkNvdWxkIG5v dCBsb2FkIFBlYXMgcmVwb3NpdG9yeTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistICAgICAgZ19l cnJvcl9mcmVlIChlcnJvcik7CistICAgICAgZXJyb3IgPSBOVUxMOworLSAgICB9CistCistICBp ZiAoIWdfaXJlcG9zaXRvcnlfcmVxdWlyZSAoZ19pcmVwb3NpdG9yeV9nZXRfZGVmYXVsdCAoKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGVhc0d0ayIsICIxLjAiLCAwLCAmZXJy b3IpKQorLSAgICB7CistICAgICAgZ193YXJuaW5nICgiQ291bGQgbm90IGxvYWQgUGVhc0d0ayBy ZXBvc2l0b3J5OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICBnX2Vycm9yX2ZyZWUgKGVy cm9yKTsKKy0gICAgICBlcnJvciA9IE5VTEw7CistICAgIH0KKy0KKy0gIHBlYXNfZW5naW5lX2Fk ZF9zZWFyY2hfcGF0aCAoUEVBU19FTkdJTkUgKGVuZ2luZSksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdfYnVpbGRfZmlsZW5hbWUgKGdfZ2V0X3VzZXJfZGF0YV9kaXIgKCksICJs aWZlcmVhIiwgInBsdWdpbnMiLCBOVUxMKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ19idWlsZF9maWxlbmFtZSAoZ19nZXRfdXNlcl9kYXRhX2RpciAoKSwgImxpZmVyZWEiLCAi cGx1Z2lucyIsIE5VTEwpKTsKKy0KKy0gIHBlYXNfZW5naW5lX2FkZF9zZWFyY2hfcGF0aCAoUEVB U19FTkdJTkUgKGVuZ2luZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfYnVp bGRfZmlsZW5hbWUgKFBBQ0tBR0VfTElCX0RJUiwgICJwbHVnaW5zIiwgTlVMTCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdfYnVpbGRfZmlsZW5hbWUgKFBBQ0tBR0VfREFUQV9E SVIsICJwbHVnaW5zIiwgTlVMTCkpOworLQorLSAgZ19zZXR0aW5nc19iaW5kIChlbmdpbmUtPnBy aXYtPnBsdWdpbl9zZXR0aW5ncywKKy0gICAgICAgICAgICAgICAgICAgImFjdGl2ZS1wbHVnaW5z IiwKKy0gICAgICAgICAgICAgICAgICAgZW5naW5lLCAibG9hZGVkLXBsdWdpbnMiLCBHX1NFVFRJ TkdTX0JJTkRfREVGQVVMVCk7CistCistICBwbHVnaW5faW5zdGFsbGVyX3BsdWdpbl9pbmZvID0g cGVhc19lbmdpbmVfZ2V0X3BsdWdpbl9pbmZvIChQRUFTX0VOR0lORSAoZW5naW5lKSwgInBsdWdp bi1pbnN0YWxsZXIiKTsKKy0gIGlmIChwbHVnaW5faW5zdGFsbGVyX3BsdWdpbl9pbmZvKQorLQlw ZWFzX2VuZ2luZV9sb2FkX3BsdWdpbiAoUEVBU19FTkdJTkUgKGVuZ2luZSksIHBsdWdpbl9pbnN0 YWxsZXJfcGx1Z2luX2luZm8pOworLSAgZWxzZQorLQlnX3dhcm5pbmcgKCJUaGUgcGx1Z2luLWlu c3RhbGxlciBwbHVnaW4gd2FzIG5vdCBmb3VuZC4iKTsKKysJZ2NoYXIJKnR5cGVsaWJfZGlyOwor Kwljb25zdCBnY2hhciAqKm5hbWVzOworKwlnc2l6ZQlsZW5ndGg7CisrCUdFcnJvciAqZXJyb3Ig PSBOVUxMOworKwlHVmFyaWFudCAqbGlzdDsKKysJUGVhc1BsdWdpbkluZm8gKnBsdWdpbl9pbnN0 YWxsZXJfcGx1Z2luX2luZm8gPSBOVUxMOworKworKwllbmdpbmUtPnByaXYgPSBsaWZlcmVhX3Bs dWdpbnNfZW5naW5lX2dldF9pbnN0YW5jZV9wcml2YXRlIChlbmdpbmUpOworKworKwlwZWFzX2Vu Z2luZV9lbmFibGVfbG9hZGVyIChQRUFTX0VOR0lORSAoZW5naW5lKSwgInB5dGhvbjMiKTsKKysK KysJZW5naW5lLT5wcml2LT5wbHVnaW5fc2V0dGluZ3MgPSBnX3NldHRpbmdzX25ldyAoIm5ldC5z Zi5saWZlcmVhLnBsdWdpbnMiKTsKKysKKysJLyogRGlzYWJsZSBpbmNvbXBhdGlibGUgd2Via2l0 LXNldHRpbmdzIHBsdWdpbiAqLworKwlsaXN0ID0gZ19zZXR0aW5nc19nZXRfdmFsdWUgKGVuZ2lu ZS0+cHJpdi0+cGx1Z2luX3NldHRpbmdzLCAiYWN0aXZlLXBsdWdpbnMiKTsKKysJbmFtZXMgPSBn X3ZhcmlhbnRfZ2V0X3N0cnYgKGxpc3QsICZsZW5ndGgpOworKwlpZiAoZ19zdHJ2X2NvbnRhaW5z IChuYW1lcywgIndlYmtpdC1zZXR0aW5ncyIpKSB7CisrCQlHVmFyaWFudEJ1aWxkZXIgYjsKKysJ CWd1aW50IGk7CisrCisrCQlnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgmYiwgR19WQVJJQU5UX1RZ UEVfQVJSQVkpOworKwkJZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisrCQkJaWYgKCFn X3N0cl9lcXVhbCAobmFtZXNbaV0sICJ3ZWJraXQtc2V0dGluZ3MiKSkKKysJCQkJZ192YXJpYW50 X2J1aWxkZXJfYWRkX3BhcnNlZCAoJmIsICIlcyIsIG5hbWVzW2ldKTsKKysJCX0KKysJCWdfZnJl ZSAobGlzdCk7CisrCQlsaXN0ID0gZ192YXJpYW50X2J1aWxkZXJfZW5kICgmYik7CisrCQlnX3Nl dHRpbmdzX3NldF92YWx1ZSAoZW5naW5lLT5wcml2LT5wbHVnaW5fc2V0dGluZ3MsICJhY3RpdmUt cGx1Z2lucyIsIGxpc3QpOworKwl9CisrCWdfZnJlZSAobmFtZXMpOworKworKwkvKiBSZXF1aXJl IExpZmVyZWFzJ3MgdHlwZWxpYi4gKi8KKysJdHlwZWxpYl9kaXIgPSBnX2J1aWxkX2ZpbGVuYW1l IChQQUNLQUdFX0xJQl9ESVIsCisrCQkJCQkiZ2lyZXBvc2l0b3J5LTEuMCIsIE5VTEwpOworKwor KwlpZiAoIWdfaXJlcG9zaXRvcnlfcmVxdWlyZV9wcml2YXRlIChnX2lyZXBvc2l0b3J5X2dldF9k ZWZhdWx0ICgpLAorKwkJdHlwZWxpYl9kaXIsICJMaWZlcmVhIiwgIjMuMCIsIDAsICZlcnJvcikp IHsKKysJCWdfd2FybmluZyAoIkNvdWxkIG5vdCBsb2FkIExpZmVyZWEgcmVwb3NpdG9yeTogJXMi LCBlcnJvci0+bWVzc2FnZSk7CisrCQlnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKysJCWVycm9yID0g TlVMTDsKKysJfQorKworKwlnX2ZyZWUgKHR5cGVsaWJfZGlyKTsKKysKKysJLyogVGhpcyBzaG91 bGQgYmUgbW92ZWQgdG8gbGlicGVhcyAqLworKwlpZiAoIWdfaXJlcG9zaXRvcnlfcmVxdWlyZSAo Z19pcmVwb3NpdG9yeV9nZXRfZGVmYXVsdCAoKSwKKysJCQkJIlBlYXMiLCAiMS4wIiwgMCwgJmVy cm9yKSkgeworKwkJZ193YXJuaW5nICgiQ291bGQgbm90IGxvYWQgUGVhcyByZXBvc2l0b3J5OiAl cyIsIGVycm9yLT5tZXNzYWdlKTsKKysJCWdfZXJyb3JfZnJlZSAoZXJyb3IpOworKwkJZXJyb3Ig PSBOVUxMOworKwl9CisrCisrCWlmICghZ19pcmVwb3NpdG9yeV9yZXF1aXJlIChnX2lyZXBvc2l0 b3J5X2dldF9kZWZhdWx0ICgpLAorKwkJCQkiUGVhc0d0ayIsICIxLjAiLCAwLCAmZXJyb3IpKSB7 CisrCQlnX3dhcm5pbmcgKCJDb3VsZCBub3QgbG9hZCBQZWFzR3RrIHJlcG9zaXRvcnk6ICVzIiwg ZXJyb3ItPm1lc3NhZ2UpOworKwkJZ19lcnJvcl9mcmVlIChlcnJvcik7CisrCQllcnJvciA9IE5V TEw7CisrCX0KKysKKysJcGVhc19lbmdpbmVfYWRkX3NlYXJjaF9wYXRoIChQRUFTX0VOR0lORSAo ZW5naW5lKSwKKysJCWdfYnVpbGRfZmlsZW5hbWUgKGdfZ2V0X3VzZXJfZGF0YV9kaXIgKCksICJs aWZlcmVhIiwgInBsdWdpbnMiLCBOVUxMKSwKKysJCWdfYnVpbGRfZmlsZW5hbWUgKGdfZ2V0X3Vz ZXJfZGF0YV9kaXIgKCksICJsaWZlcmVhIiwgInBsdWdpbnMiLCBOVUxMKSk7CisrCisrCXBlYXNf ZW5naW5lX2FkZF9zZWFyY2hfcGF0aCAoUEVBU19FTkdJTkUgKGVuZ2luZSksCisrCQlnX2J1aWxk X2ZpbGVuYW1lIChQQUNLQUdFX0xJQl9ESVIsICAicGx1Z2lucyIsIE5VTEwpLAorKwkJZ19idWls ZF9maWxlbmFtZSAoUEFDS0FHRV9EQVRBX0RJUiwgInBsdWdpbnMiLCBOVUxMKSk7CisrCisrCWdf c2V0dGluZ3NfYmluZCAoZW5naW5lLT5wcml2LT5wbHVnaW5fc2V0dGluZ3MsCisrCQkJImFjdGl2 ZS1wbHVnaW5zIiwKKysJCQllbmdpbmUsICJsb2FkZWQtcGx1Z2lucyIsIEdfU0VUVElOR1NfQklO RF9ERUZBVUxUKTsKKysKKysJcGx1Z2luX2luc3RhbGxlcl9wbHVnaW5faW5mbyA9IHBlYXNfZW5n aW5lX2dldF9wbHVnaW5faW5mbyAoUEVBU19FTkdJTkUgKGVuZ2luZSksICJwbHVnaW4taW5zdGFs bGVyIik7CisrCWlmIChwbHVnaW5faW5zdGFsbGVyX3BsdWdpbl9pbmZvKQorKwkJcGVhc19lbmdp bmVfbG9hZF9wbHVnaW4gKFBFQVNfRU5HSU5FIChlbmdpbmUpLCBwbHVnaW5faW5zdGFsbGVyX3Bs dWdpbl9pbmZvKTsKKysJZWxzZQorKwkJZ193YXJuaW5nICgiVGhlIHBsdWdpbi1pbnN0YWxsZXIg cGx1Z2luIHdhcyBub3QgZm91bmQuIik7CisgfQorIAorIC8qIFByb3ZpZGUgZGVmYXVsdCBzaWdu YWwgaGFuZGxlcnMgKi8KK2RpZmYgLS1naXQgYS9zcmMvcGx1Z2luc19lbmdpbmUuYyBiL3NyYy9w bHVnaW5zX2VuZ2luZS5jCitpbmRleCA2MzkxOWVmM2EuLjEwODNlZWYwMiAxMDA2NDQKKy0tLSBh L3NyYy9wbHVnaW5zX2VuZ2luZS5jCisrKysgYi9zcmMvcGx1Z2luc19lbmdpbmUuYworQEAgLTU1 LDkgKzU1LDYgQEAgbGlmZXJlYV9wbHVnaW5zX2VuZ2luZV9pbml0IChMaWZlcmVhUGx1Z2luc0Vu Z2luZSAqIGVuZ2luZSkKKyAJUGVhc1BsdWdpbkluZm8gKnBsdWdpbl9pbnN0YWxsZXJfcGx1Z2lu X2luZm8gPSBOVUxMOworIAorIAllbmdpbmUtPnByaXYgPSBsaWZlcmVhX3BsdWdpbnNfZW5naW5l X2dldF9pbnN0YW5jZV9wcml2YXRlIChlbmdpbmUpOworLQorLQlwZWFzX2VuZ2luZV9lbmFibGVf bG9hZGVyIChQRUFTX0VOR0lORSAoZW5naW5lKSwgInB5dGhvbjMiKTsKKy0KKyAJZW5naW5lLT5w cml2LT5wbHVnaW5fc2V0dGluZ3MgPSBnX3NldHRpbmdzX25ldyAoIm5ldC5zZi5saWZlcmVhLnBs dWdpbnMiKTsKKyAKKyAJLyogRGlzYWJsZSBpbmNvbXBhdGlibGUgd2Via2l0LXNldHRpbmdzIHBs dWdpbiAqLworQEAgLTc4LDYgKzc1LDggQEAgbGlmZXJlYV9wbHVnaW5zX2VuZ2luZV9pbml0IChM aWZlcmVhUGx1Z2luc0VuZ2luZSAqIGVuZ2luZSkKKyAJfQorIAlnX2ZyZWUgKG5hbWVzKTsKKyAK KysJcGVhc19lbmdpbmVfZW5hYmxlX2xvYWRlciAoUEVBU19FTkdJTkUgKGVuZ2luZSksICJweXRo b24zIik7CisrCisgCS8qIFJlcXVpcmUgTGlmZXJlYXMncyB0eXBlbGliLiAqLworIAl0eXBlbGli X2RpciA9IGdfYnVpbGRfZmlsZW5hbWUgKFBBQ0tBR0VfTElCX0RJUiwKKyAJCQkJCSJnaXJlcG9z aXRvcnktMS4wIiwgTlVMTCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpZmVyZWEvdGVtcGxhdGUg Yi9zcmNwa2dzL2xpZmVyZWEvdGVtcGxhdGUKaW5kZXggNGM0MmZhNDlmZTAzZDcuLmYxYWY4NTE4 MTBiMDEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpZmVyZWEvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9saWZlcmVhL3RlbXBsYXRlCkBAIC0xLDExICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdsaWZlcmVhJwogcGtnbmFtZT1saWZlcmVhCi12ZXJzaW9uPTEuMTQuNQordmVyc2lvbj0xLjE0 LjYKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj1n aXIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBsaWJnbGliLWRldmVsIgot bWFrZWRlcGVuZHM9ImxpYnhzbHQtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJzb3VwLWRldmVs Citob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbAorIGF1dG9t YWtlIGxpYnRvb2wgZ2V0dGV4dC1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJ4c2x0LWRldmVsIGxp YndlYmtpdDJndGs0MS1kZXZlbCBsaWJzb3VwMy1kZXZlbAogIGpzb24tZ2xpYi1kZXZlbCAkKHZv cHRfaWYgZ2lyIGdvYmplY3QtaW50cm9zcGVjdGlvbikKICBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzLWRldmVsIGxpYnBlYXMtZGV2ZWwgcHl0aG9uMy1kZXZlbCBzcWxpdGUtZGV2ZWwiCiBkZXBl bmRzPSJweXRob24zIgpAQCAtMTUsOCArMTYsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL2x6b25lLmRlL2xpZmVyZWEvIgogY2hhbmdlbG9nPSJodHRw czovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbHdpbmRvbGYvbGlmZXJlYS9tYXN0ZXIvQ2hh bmdlTG9nIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbHdpbmRvbGYvbGlmZXJlYS9y ZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmJ6 MiIKLWNoZWNrc3VtPTIyNDRlNzhkOGY2YjZlMjhmNDExYTM1NTRkNjE0OTZhMDEyZDVmZTEzOTJm ZTFiNDc1OTc4ZWNmZDhjNjExNzcKK2NoZWNrc3VtPTM2ZjI4ZTUxZDI2ZWViY2JkMzQ2MGM1M2Vi NWNiMDEyODU1YTVmYzZjY2U2YmNhNTgxMDNkZmMwNjM1M2NjNzIKIGxpYjMyZGlzYWJsZWQ9eWVz CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorCitw cmVfY29uZmlndXJlKCkgeworCWF1dG9yZWNvbmYgLWZpCit9Cg== --===============7266467979995604914==--