From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 988153858D33 for ; Tue, 6 Jun 2023 14:55:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 988153858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.00,221,1681200000"; d="diff'?scan'208";a="8963259" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 06 Jun 2023 06:55:56 -0800 IronPort-SDR: XvMa4Fhb9JvLC6FozvoeTn78PNMJZratV0htUuZQRj3tO0+cyv2zlIw81bhTcpSEQbNzqxJDS+ DHIlnTdFVswGZB8vei6e6zht1nUIqXlID/IJTQfqxuNNR/EmiP+jm/0D2oSX1Upuk0Kvnd1mft M1Y26s+4n5Jc/ZrOKO+sqXu9IpRwHLkuNd0wMqWA62uJbNQH4FWMf6al9i7iHSdEO1ZxKMlj2+ Ax4Una5g8G5Zjm1O1070j3Bll5t8v2wwQusd1KR/e0rycZUWnPFojFi2cDMSPaoP6UHsH4vSxA KOE= Content-Type: multipart/mixed; boundary="------------SYz9PGn9OeQSj0HiDs0LVeP2" Message-ID: <3f692209-a6c2-331a-4219-688791b2ba6e@codesourcery.com> Date: Tue, 6 Jun 2023 16:55:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: [committed] Re: [PATCHv2] openmp: Add support for 'present' modifier Content-Language: en-US From: Tobias Burnus To: Kwok Cheung Yeung , gcc-patches , Jakub Jelinek References: <6eb5d0dd-da2a-6d8e-eaa2-d14bf708cf36@codesourcery.com> <1882e7aa-6e79-25ff-4ee4-8152106a5935@codesourcery.com> In-Reply-To: <1882e7aa-6e79-25ff-4ee4-8152106a5935@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------SYz9PGn9OeQSj0HiDs0LVeP2 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi all, This adds OpenMP 5.1's 'present' modifier to the to/from/map clauses and 'defaultmap(present)'. I have now committed that patch as r14-1579-g4ede915d5dde935a16df2c6640aee5= ab22348d30, or as attached. Or rather: I have done so after revising the patch for the issues I noted b= efore; while doing so and when adding a bunch of additional tests, I found a few a= dditional issues, which have been fixed as well. Somehow, there cannot be too many te= stcases ... Tobias See previously in this thread for my review comments and Kwok's patch remar= ks, i.e. On 28.04.23 19:26, Tobias Burnus wrote: > On 17.02.23 12:45, Kwok Cheung Yeung wrote: >> This is a revised version of the patch for the 'present' modifier for >> OpenMP. ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------SYz9PGn9OeQSj0HiDs0LVeP2 Content-Type: text/x-patch; charset="UTF-8"; name="committed.diff" Content-Disposition: attachment; filename="committed.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDRlZGU5MTVkNWRkZTkzNWExNmRmMmM2NjQwYWVlNWFiMjIzNDhkMzAKQXV0aG9y OiBUb2JpYXMgQnVybnVzIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KRGF0ZTogICBUdWUg SnVuIDYgMTY6NDc6MTYgMjAyMyArMDIwMAoKICAgIG9wZW5tcDogQWRkIHN1cHBvcnQgZm9y IHRoZSAncHJlc2VudCcgbW9kaWZpZXIKICAgIAogICAgVGhpcyBpbXBsZW1lbnRzIHN1cHBv cnQgZm9yIHRoZSBPcGVuTVAgNS4xICdwcmVzZW50JyBtb2RpZmllciwgd2hpY2ggY2FuIGJl CiAgICB1c2VkIGluIG1hcCBjbGF1c2VzIGluIHRoZSAndGFyZ2V0JywgJ3RhcmdldCBkYXRh JywgJ3RhcmdldCBkYXRhIGVudGVyJyBhbmQKICAgICd0YXJnZXQgZGF0YSBleGl0JyBjb25z dHJ1Y3RzLCBhbmQgaW4gdGhlICd0bycgYW5kICdmcm9tJyBjbGF1c2VzIG9mIHRoZQogICAg J3RhcmdldCB1cGRhdGUnIGNvbnN0cnVjdC4gIEl0IGlzIGFsc28gc3VwcG9ydGVkIGluIGRl ZmF1bHRtYXAuCiAgICAKICAgIFRoZSBtb2RpZmllciB0cmlnZ2VycyBhIGZhdGFsIHJ1bnRp bWUgZXJyb3IgaWYgdGhlIGRhdGEgc3BlY2lmaWVkIGJ5IHRoZQogICAgY2xhdXNlIGlzIG5v dCBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHRhcmdldCBkZXZpY2UuICBJdCBjYW4gYWxzbyBi ZSBjb21iaW5lZAogICAgd2l0aCAnYWx3YXlzJyBpbiBtYXAgY2xhdXNlcy4KICAgIAogICAg MjAyMy0wNi0wNiAgS3dvayBDaGV1bmcgWWV1bmcgIDxrY3lAY29kZXNvdXJjZXJ5LmNvbT4K ICAgICAgICAgICAgICAgIFRvYmlhcyBCdXJudXMgIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNv bT4KICAgIAogICAgZ2NjL2MvCiAgICAgICAgICAgICogYy1wYXJzZXIuY2MgKGNfcGFyc2Vy X29tcF9jbGF1c2VfZGVmYXVsdG1hcCwKICAgICAgICAgICAgY19wYXJzZXJfb21wX2NsYXVz ZV9tYXApOiBQYXJzZSAncHJlc2VudCcuCiAgICAgICAgICAgIChjX3BhcnNlcl9vbXBfY2xh dXNlX3RvLCBjX3BhcnNlcl9vbXBfY2xhdXNlX2Zyb20pOiBSZW1vdmUuCiAgICAgICAgICAg IChjX3BhcnNlcl9vbXBfY2xhdXNlX2Zyb21fdG8pOiBOZXc7IHBhcnNlIHRvL2Zyb20gY2xh dXNlcyB3aXRoCiAgICAgICAgICAgIG9wdGlvbmFsIHByZXNlbnQgbW9kaWZlci4KICAgICAg ICAgICAgKGNfcGFyc2VyX29tcF9hbGxfY2xhdXNlcyk6IFVwZGF0ZSBjYWxsLgogICAgICAg ICAgICAoY19wYXJzZXJfb21wX3RhcmdldF9kYXRhLCBjX3BhcnNlcl9vbXBfdGFyZ2V0X2Vu dGVyX2RhdGEsCiAgICAgICAgICAgIGNfcGFyc2VyX29tcF90YXJnZXRfZXhpdF9kYXRhKTog SGFuZGxlIG5ldyBtYXAgZW51bSB2YWx1ZXMKICAgICAgICAgICAgZm9yICdwcmVzZW50JyBt YXBwaW5nLgogICAgCiAgICBnY2MvY3AvCiAgICAgICAgICAgICogcGFyc2VyLmNjIChjcF9w YXJzZXJfb21wX2NsYXVzZV9kZWZhdWx0bWFwLAogICAgICAgICAgICBjcF9wYXJzZXJfb21w X2NsYXVzZV9tYXApOiBQYXJzZSAncHJlc2VudCcuCiAgICAgICAgICAgIChjcF9wYXJzZXJf b21wX2NsYXVzZV9mcm9tX3RvKTogTmV3OyBwYXJzZSB0by9mcm9tCiAgICAgICAgICAgIGNs YXVzZXMgd2l0aCBvcHRpb25hbCAncHJlc2VudCcgbW9kaWZpZXIuCiAgICAgICAgICAgIChj cF9wYXJzZXJfb21wX2FsbF9jbGF1c2VzKTogVXBkYXRlIGNhbGwuCiAgICAgICAgICAgIChj cF9wYXJzZXJfb21wX3RhcmdldF9kYXRhLCBjcF9wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9k YXRhLAogICAgICAgICAgICBjcF9wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEpOiBIYW5k bGUgbmV3IGVudW0gdmFsdWUgZm9yCiAgICAgICAgICAgICdwcmVzZW50JyBtYXBwaW5nLgog ICAgICAgICAgICAqIHNlbWFudGljcy5jYyAoZmluaXNoX29tcF90YXJnZXQpOiBMaWtld2lz ZS4KICAgIAogICAgZ2NjL2ZvcnRyYW4vCiAgICAgICAgICAgICogZHVtcC1wYXJzZS10cmVl LmNjIChzaG93X29tcF9uYW1lbGlzdCk6IERpc3BsYXkgJ3ByZXNlbnQnIG1hcAogICAgICAg ICAgICBtb2RpZmllci4KICAgICAgICAgICAgKHNob3dfb21wX2NsYXVzZXMpOiBEaXNwbGF5 ICdwcmVzZW50JyBtb3Rpb24gbW9kaWZpZXIgZm9yICd0bycKICAgICAgICAgICAgYW5kICdm cm9tJyBjbGF1c2VzLgogICAgCiAgICAgICAgICAgICogZ2ZvcnRyYW4uaCAoZW51bSBnZmNf b21wX21hcF9vcCk6IEFkZCBlbnRyaWVzIHdpdGggJ3ByZXNlbnQnCiAgICAgICAgICAgIG1v ZGlmaWVycy4KICAgICAgICAgICAgKHN0cnVjdCBnZmNfb21wX25hbWVsaXN0KTogQWRkICdw cmVzZW50X21vZGlmZXInLgogICAgICAgICAgICAqIG9wZW5tcC5jYyAoZ2ZjX21hdGNoX21v dGlvbl92YXJfbGlzdCk6IE5ldywgaGFuZGxlcyBvcHRpb25hbAogICAgICAgICAgICAncHJl c2VudCcgbW9kaWZpZXIgZm9yIHRvL2Zyb20gY2xhdXNlcy4KICAgICAgICAgICAgKGdmY19t YXRjaF9vbXBfY2xhdXNlcyk6IENhbGwgaXQgZm9yIHRvL2Zyb20gY2xhdXNlczsgcGFyc2Ug J3ByZXNlbnQnCiAgICAgICAgICAgIGluIGRlZmF1bHRtYXAgYW5kIG1hcCBjbGF1c2VzLgog ICAgICAgICAgICAocmVzb2x2ZV9vbXBfY2xhdXNlcyk6IEFsbG93ICdwcmVzZW50JyBtb2Rp ZmllcnMgb24gJ3RhcmdldCcsCiAgICAgICAgICAgICd0YXJnZXQgZGF0YScsICd0YXJnZXQg ZW50ZXInIGFuZCAndGFyZ2V0IGV4aXQnIGRpcmVjdGl2ZXMuCiAgICAgICAgICAgICogdHJh bnMtb3Blbm1wLmNjIChnZmNfdHJhbnNfb21wX2NsYXVzZXMpOiBBcHBseSAncHJlc2VudCcg bW9kaWZpZXJzCiAgICAgICAgICAgIHRvIHRyZWUgbm9kZSBmb3IgJ21hcCcsICd0bycgYW5k ICdmcm9tJyBjbGF1c2VzLiAgQXBwbHkgJ3ByZXNlbnQnIGZvcgogICAgICAgICAgICBkZWZh dWx0bWFwLgogICAgCiAgICBnY2MvCiAgICAgICAgICAgICogZ2ltcGxpZnkuY2MgKG9tcF9u b3RpY2VfdmFyaWFibGUpOiBBcHBseSBHT1ZEX01BUF9BTExPQ19PTkxZIGZsYWcKICAgICAg ICAgICAgYW5kIGRlZmF1bHRtYXAgZmxhZ3MgaWYgdGhlIGRlZmF1bHRtYXAgaGFzIEdPVkRf TUFQX0ZPUkNFX1BSRVNFTlQgZmxhZwogICAgICAgICAgICBzZXQuCiAgICAgICAgICAgIChv bXBfZ2V0X2F0dGFjaG1lbnQpOiBIYW5kbGUgbWFwIGNsYXVzZXMgd2l0aCAncHJlc2VudCcg bW9kaWZpZXIuCiAgICAgICAgICAgIChvbXBfZ3JvdXBfYmFzZSk6IExpa2V3aXNlLgogICAg ICAgICAgICAoZ2ltcGxpZnlfc2Nhbl9vbXBfY2xhdXNlcyk6IFJlb3JkZXIgcHJlc2VudCBt YXBzIHRvIGNvbWUgZmlyc3QuCiAgICAgICAgICAgIFNldCBHT1ZEIGZsYWdzIGZvciBwcmVz ZW50IGRlZmF1bHRtYXBzLgogICAgICAgICAgICAoZ2ltcGxpZnlfYWRqdXN0X29tcF9jbGF1 c2VzXzEpOiBTZXQgbWFwIGtpbmQgZm9yIHByZXNlbnQgZGVmYXVsdG1hcHMuCiAgICAgICAg ICAgICogb21wLWxvdy5jYyAoc2Nhbl9zaGFyaW5nX2NsYXVzZXMpOiBIYW5kbGUgJ2Fsd2F5 cywgcHJlc2VudCcgbWFwCiAgICAgICAgICAgIGNsYXVzZXMuCiAgICAgICAgICAgIChsb3dl cl9vbXBfdGFyZ2V0KTogSGFuZGxlIG1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG1vZGlm aWVyLgogICAgICAgICAgICBIYW5kbGUgJ3RvJyBhbmQgJ2Zyb20nIGNsYXVzZXMgd2l0aCAn cHJlc2VudCcuCiAgICAgICAgICAgICogdHJlZS1jb3JlLmggKGVudW0gb21wX2NsYXVzZV9k ZWZhdWx0bWFwX2tpbmQpOiBBZGQKICAgICAgICAgICAgT01QX0NMQVVTRV9ERUZBVUxUTUFQ X1BSRVNFTlQgZGVmYXVsdG1hcCBraW5kLgogICAgICAgICAgICAqIHRyZWUtcHJldHR5LXBy aW50LmNjIChkdW1wX29tcF9jbGF1c2UpOiBIYW5kbGUgJ21hcCcsICd0bycgYW5kCiAgICAg ICAgICAgICdmcm9tJyBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG1vZGlmaWVyLiAgSGFuZGxl IHByZXNlbnQgZGVmYXVsdG1hcC4KICAgICAgICAgICAgKiB0cmVlLmggKE9NUF9DTEFVU0Vf TU9USU9OX1BSRVNFTlQpOiBOZXcgI2RlZmluZS4KICAgIAogICAgaW5jbHVkZS8KICAgICAg ICAgICAgKiBnb21wLWNvbnN0YW50cy5oIChHT01QX01BUF9GTEFHX1NQRUNJQUxfNSk6IE5l dy4KICAgICAgICAgICAgKEdPTVBfTUFQX0ZMQUdfRk9SQ0UpOiBSZWRlZmluZS4KICAgICAg ICAgICAgKEdPTVBfTUFQX0ZMQUdfUFJFU0VOVCwgR09NUF9NQVBfRkxBR19BTFdBWVNfUFJF U0VOVCk6IE5ldy4KICAgICAgICAgICAgKGVudW0gZ29tcF9tYXBfa2luZCk6IEFkZCBtYXAg a2luZHMgd2l0aCAncHJlc2VudCcgbW9kaWZpZXJzLgogICAgICAgICAgICAoR09NUF9NQVBf Q09QWV9UT19QLCBHT01QX01BUF9DT1BZX0ZST01fUCk6IEV2YWx1YXRlIHRvIHRydWUgZm9y CiAgICAgICAgICAgIG1hcCB2YXJpYW50cyB3aXRoICdwcmVzZW50JwogICAgICAgICAgICAo R09NUF9NQVBfQUxXQVlTX1RPX1AsIEdPTVBfTUFQX0FMV0FZU19GUk9NX1ApOiBFdmFsdWF0 ZSB0byB0cnVlCiAgICAgICAgICAgIGZvciBtYXAgdmFyaWFudHMgd2l0aCAnYWx3YXlzLCBw cmVzZW50JyBtb2RpZmllcnMuCiAgICAgICAgICAgIChHT01QX01BUF9BTFdBWVMpOiBSZWRl ZmluZS4KICAgICAgICAgICAgKEdPTVBfTUFQX0ZPUkNFX1AsIEdPTVBfTUFQX1BSRVNFTlRf UCk6IE5ldy4KICAgIAogICAgbGliZ29tcC8KICAgICAgICAgICAgKiBsaWJnb21wLnRleGkg KE9wZW5NUCA1LjEgSW1wbC4gc3RhdHVzKTogU2V0ICdwcmVzZW50JyBzdXBwb3J0IGZvcgog ICAgICAgICAgICBkZWZhdWx0bWFwIHRvICdZJywgYWRkICdZJyBlbnRyeSBmb3IgJ3ByZXNl bnQnIG9uIHRvL2Zyb20vbWFwIGNsYXVzZXMuCiAgICAgICAgICAgICogdGFyZ2V0LmMgKGdv bXBfdG9fZGV2aWNlX2tpbmRfcCk6IEFkZCBtYXAga2luZHMgd2l0aCAncHJlc2VudCcKICAg ICAgICAgICAgbW9kaWZpZXIuCiAgICAgICAgICAgIChnb21wX21hcF92YXJzX2V4aXN0aW5n KTogVXNlIG5ldyBHT01QX01BUF9GT1JDRV9QIG1hY3JvLgogICAgICAgICAgICAoZ29tcF9t YXBfdmFyc19pbnRlcm5hbCwgZ29tcF91cGRhdGUsIGdvbXBfdGFyZ2V0X3Jldik6CiAgICAg ICAgICAgIEVtaXQgcnVudGltZSBlcnJvciBpZiBtZW1vcnkgcmVnaW9uIG5vdCBwcmVzZW50 LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQt cHJlc2VudC0xLmM6IE5ldyB0ZXN0LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9saWJnb21w LmMtYysrLWNvbW1vbi90YXJnZXQtcHJlc2VudC0yLmM6IE5ldyB0ZXN0LgogICAgICAgICAg ICAqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtcHJlc2VudC0zLmM6 IE5ldyB0ZXN0LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFy Z2V0LXByZXNlbnQtMS5mOTA6IE5ldyB0ZXN0LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMi5mOTA6IE5ldyB0ZXN0LgogICAgICAg ICAgICAqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMy5mOTA6 IE5ldyB0ZXN0LgogICAgCiAgICBnY2MvdGVzdHN1aXRlLwogICAgCiAgICAgICAgICAgICog Yy1jKystY29tbW9uL2dvbXAvbWFwLTYuYzogVXBkYXRlIGRnLWVycm9yLCBleHRlbmQgdG8g dGVzdCBmb3IKICAgICAgICAgICAgZHVwbGljYXRlZCAncHJlc2VudCcgYW5kIGV4dGVuZCBz Y2FuLWR1bXAgdGVzdHMgZm9yICdwcmVzZW50Jy4KICAgICAgICAgICAgKiBnZm9ydHJhbi5k Zy9nb21wL2RlZmF1bHRtYXAtMS5mOTA6IFVwZGF0ZSBkZy1lcnJvci4KICAgICAgICAgICAg KiBnZm9ydHJhbi5kZy9nb21wL21hcC03LmY5MDogRXh0ZW5kIHBhcnNlIGFuZCBkdW1wIHRl c3QgZm9yCiAgICAgICAgICAgICdwcmVzZW50Jy4KICAgICAgICAgICAgKiBnZm9ydHJhbi5k Zy9nb21wL21hcC04LmY5MDogRXh0ZW5kIGZvciBkdXBsaWNhdGUgJ3ByZXNlbnQnCiAgICAg ICAgICAgIG1vZGlmaWVyIGNoZWNraW5nLgogICAgICAgICAgICAqIGMtYysrLWNvbW1vbi9n b21wL2RlZmF1bHRtYXAtNC5jOiBOZXcgdGVzdC4KICAgICAgICAgICAgKiBjLWMrKy1jb21t b24vZ29tcC9tYXAtOS5jOiBOZXcgdGVzdC4KICAgICAgICAgICAgKiBjLWMrKy1jb21tb24v Z29tcC90YXJnZXQtdXBkYXRlLTEuYzogTmV3IHRlc3QuCiAgICAgICAgICAgICogZ2ZvcnRy YW4uZGcvZ29tcC9kZWZhdWx0bWFwLTguZjkwOiBOZXcgdGVzdC4KICAgICAgICAgICAgKiBn Zm9ydHJhbi5kZy9nb21wL21hcC0xMS5mOTA6IE5ldyB0ZXN0LgogICAgICAgICAgICAqIGdm b3J0cmFuLmRnL2dvbXAvbWFwLTEyLmY5MDogTmV3IHRlc3QuCiAgICAgICAgICAgICogZ2Zv cnRyYW4uZGcvZ29tcC90YXJnZXQtdXBkYXRlLTEuZjkwOiBOZXcgdGVzdC4KLS0tCiBnY2Mv Yy9jLXBhcnNlci5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyMyAr KysrKysrKysrKysrKysrKystLS0KIGdjYy9jcC9wYXJzZXIuY2MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKysrKysrLS0KIGdjYy9jcC9z ZW1hbnRpY3MuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiBn Y2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MgICAgICAgICAgICAgICAgICAgICB8ICAx NCArKysKIGdjYy9mb3J0cmFuL2dmb3J0cmFuLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBnY2MvZm9ydHJhbi9vcGVubXAuY2MgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA5OCArKysrKysrKysrKysrLS0tCiBnY2MvZm9ydHJhbi90cmFucy1v cGVubXAuY2MgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOSArKysrKwogZ2NjL2dpbXBs aWZ5LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjkgKysrKysr KysrKysrCiBnY2Mvb21wLWxvdy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyNiArKysrLQogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9kZWZh dWx0bWFwLTQuYyAgICAgfCAgMjQgKysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v Z29tcC9tYXAtNi5jICAgICAgICAgICAgfCAgNzAgKysrKysrKysrKystCiBnY2MvdGVzdHN1 aXRlL2MtYysrLWNvbW1vbi9nb21wL21hcC05LmMgICAgICAgICAgICB8ICAzMiArKysrKysK IGdjYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LXVwZGF0ZS0xLmMgIHwg IDE1ICsrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRtYXAtMS5m OTAgICAgfCAgIDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWZhdWx0 bWFwLTguZjkwICAgIHwgIDI2ICsrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dv bXAvbWFwLTExLmY5MCAgICAgICAgICB8ICAzNCArKysrKysKIGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9tYXAtMTIuZjkwICAgICAgICAgIHwgIDY3ICsrKysrKysrKysrCiBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbWFwLTcuZjkwICAgICAgICAgICB8ICAz MCArKysrLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL21hcC04LmY5MCAgICAg ICAgICAgfCAgMTEgKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQt dXBkYXRlLTEuZjkwIHwgIDEzICsrKwogZ2NjL3RyZWUtY29yZS5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGdjYy90cmVlLXByZXR0eS1wcmludC5j YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI4ICsrKysrCiBnY2MvdHJlZS5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBpbmNsdWRl L2dvbXAtY29uc3RhbnRzLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NyArKysr KystLQogbGliZ29tcC9saWJnb21wLnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGxpYmdvbXAvdGFyZ2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDY2ICsrKysrKysrKystCiAuLi4vbGliZ29tcC5jLWMrKy1jb21tb24v dGFyZ2V0LXByZXNlbnQtMS5jICAgICAgICB8ICAyNyArKysrKwogLi4uL2xpYmdvbXAuYy1j KystY29tbW9uL3RhcmdldC1wcmVzZW50LTIuYyAgICAgICAgfCAgMjcgKysrKysKIC4uLi9s aWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtcHJlc2VudC0zLmMgICAgICAgIHwgIDI3ICsr KysrCiAuLi4vdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtcHJlc2VudC0xLmY5 MCB8ICAzMCArKysrKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXBy ZXNlbnQtMi5mOTAgfCAgMzAgKysrKysKIC4uLi90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFu L3RhcmdldC1wcmVzZW50LTMuZjkwIHwgIDIyICsrKysKIDMyIGZpbGVzIGNoYW5nZWQsIDEw NjQgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2Mv Yy1wYXJzZXIuY2MgYi9nY2MvYy9jLXBhcnNlci5jYwppbmRleCA1YmFhNTAxZGJlZS4uNzJm NmZiYWU2YTYgMTAwNjQ0Ci0tLSBhL2djYy9jL2MtcGFyc2VyLmNjCisrKyBiL2djYy9jL2Mt cGFyc2VyLmNjCkBAIC0xNDkzOSw2ICsxNDkzOSwxMyBAQCBjX3BhcnNlcl9vbXBfY2xhdXNl X2RlZmF1bHRtYXAgKGNfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkKIAlnb3RvIGludmFs aWRfYmVoYXZpb3I7CiAgICAgICBicmVhazsKIAorICAgIGNhc2UgJ3AnOgorICAgICAgaWYg KHN0cmNtcCAoInByZXNlbnQiLCBwKSA9PSAwKQorCWJlaGF2aW9yID0gT01QX0NMQVVTRV9E RUZBVUxUTUFQX1BSRVNFTlQ7CisgICAgICBlbHNlCisJZ290byBpbnZhbGlkX2JlaGF2aW9y OworICAgICAgYnJlYWs7CisKICAgICBjYXNlICd0JzoKICAgICAgIGlmIChzdHJjbXAgKCJ0 b2Zyb20iLCBwKSA9PSAwKQogCWJlaGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxUTUFQX1RP RlJPTTsKQEAgLTE3MTA5LDYgKzE3MTE2LDcgQEAgY19wYXJzZXJfb21wX2NsYXVzZV9tYXAg KGNfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkKIAogICBpbnQgYWx3YXlzX21vZGlmaWVy ID0gMDsKICAgaW50IGNsb3NlX21vZGlmaWVyID0gMDsKKyAgaW50IHByZXNlbnRfbW9kaWZp ZXIgPSAwOwogICBmb3IgKGludCBwb3MgPSAxOyBwb3MgPCBtYXBfa2luZF9wb3M7ICsrcG9z KQogICAgIHsKICAgICAgIGNfdG9rZW4gKnRvayA9IGNfcGFyc2VyX3BlZWtfdG9rZW4gKHBh cnNlcik7CkBAIC0xNzE0MCwxMSArMTcxNDgsMjEgQEAgY19wYXJzZXJfb21wX2NsYXVzZV9t YXAgKGNfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkKIAkgICAgfQogCSAgY2xvc2VfbW9k aWZpZXIrKzsKIAl9CisgICAgICBlbHNlIGlmIChzdHJjbXAgKCJwcmVzZW50IiwgcCkgPT0g MCkKKwl7CisJICBpZiAocHJlc2VudF9tb2RpZmllcikKKwkgICAgeworCSAgICAgIGNfcGFy c2VyX2Vycm9yIChwYXJzZXIsICJ0b28gbWFueSAlPHByZXNlbnQlPiBtb2RpZmllcnMiKTsK KwkgICAgICBwYXJlbnMuc2tpcF91bnRpbF9mb3VuZF9jbG9zZSAocGFyc2VyKTsKKwkgICAg ICByZXR1cm4gbGlzdDsKKwkgICAgfQorCSAgcHJlc2VudF9tb2RpZmllcisrOworCX0KICAg ICAgIGVsc2UKIAl7CiAJICBjX3BhcnNlcl9lcnJvciAocGFyc2VyLCAiJTwjcHJhZ21hIG9t cCB0YXJnZXQlPiB3aXRoICIKLQkJCQkgICJtb2RpZmllciBvdGhlciB0aGFuICU8YWx3YXlz JT4gb3IgIgotCQkJCSAgIiU8Y2xvc2UlPiBvbiAlPG1hcCU+IGNsYXVzZSIpOworCQkJCSAg Im1vZGlmaWVyIG90aGVyIHRoYW4gJTxhbHdheXMlPiwgJTxjbG9zZSU+ICIKKwkJCQkgICJv ciAlPHByZXNlbnQlPiBvbiAlPG1hcCU+IGNsYXVzZSIpOwogCSAgcGFyZW5zLnNraXBfdW50 aWxfZm91bmRfY2xvc2UgKHBhcnNlcik7CiAJICByZXR1cm4gbGlzdDsKIAl9CkBAIC0xNzE1 NiwxNCArMTcxNzQsMjUgQEAgY19wYXJzZXJfb21wX2NsYXVzZV9tYXAgKGNfcGFyc2VyICpw YXJzZXIsIHRyZWUgbGlzdCkKICAgICAgICYmIGNfcGFyc2VyX3BlZWtfMm5kX3Rva2VuIChw YXJzZXIpLT50eXBlID09IENQUF9DT0xPTikKICAgICB7CiAgICAgICBjb25zdCBjaGFyICpw ID0gSURFTlRJRklFUl9QT0lOVEVSIChjX3BhcnNlcl9wZWVrX3Rva2VuIChwYXJzZXIpLT52 YWx1ZSk7CisgICAgICBpbnQgYWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIgPSBhbHdheXNfbW9k aWZpZXIgJiYgcHJlc2VudF9tb2RpZmllcjsKKwogICAgICAgaWYgKHN0cmNtcCAoImFsbG9j IiwgcCkgPT0gMCkKLQlraW5kID0gR09NUF9NQVBfQUxMT0M7CisJa2luZCA9IHByZXNlbnRf bW9kaWZpZXIgPyBHT01QX01BUF9QUkVTRU5UX0FMTE9DIDogR09NUF9NQVBfQUxMT0M7CiAg ICAgICBlbHNlIGlmIChzdHJjbXAgKCJ0byIsIHApID09IDApCi0Ja2luZCA9IGFsd2F5c19t b2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19UTyA6IEdPTVBfTUFQX1RPOworCWtpbmQgPSAo YWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTwor CQk6IHByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9QUkVTRU5UX1RPCisJCTogYWx3YXlz X21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1RPCisJCTogR09NUF9NQVBfVE8pOwogICAg ICAgZWxzZSBpZiAoc3RyY21wICgiZnJvbSIsIHApID09IDApCi0Ja2luZCA9IGFsd2F5c19t b2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19GUk9NIDogR09NUF9NQVBfRlJPTTsKKwlraW5k ID0gKGFsd2F5c19wcmVzZW50X21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf RlJPTQorCQk6IHByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9QUkVTRU5UX0ZST00KKwkJ OiBhbHdheXNfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfRlJPTQorCQk6IEdPTVBfTUFQ X0ZST00pOwogICAgICAgZWxzZSBpZiAoc3RyY21wICgidG9mcm9tIiwgcCkgPT0gMCkKLQlr aW5kID0gYWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1RPRlJPTSA6IEdPTVBf TUFQX1RPRlJPTTsKKwlraW5kID0gKGFsd2F5c19wcmVzZW50X21vZGlmaWVyID8gR09NUF9N QVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NCisJCTogcHJlc2VudF9tb2RpZmllciA/IEdPTVBf TUFQX1BSRVNFTlRfVE9GUk9NCisJCTogYWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxX QVlTX1RPRlJPTQorCQk6IEdPTVBfTUFQX1RPRlJPTSk7CiAgICAgICBlbHNlIGlmIChzdHJj bXAgKCJyZWxlYXNlIiwgcCkgPT0gMCkKIAlraW5kID0gR09NUF9NQVBfUkVMRUFTRTsKICAg ICAgIGVsc2UgaWYgKHN0cmNtcCAoImRlbGV0ZSIsIHApID09IDApCkBAIC0xNzQxOSwyMSAr MTc0NDgsNDIgQEAgY19wYXJzZXJfb21wX2NsYXVzZV9kZXZpY2VfdHlwZSAoY19wYXJzZXIg KnBhcnNlciwgdHJlZSBsaXN0KQogfQogCiAvKiBPcGVuTVAgNC4wOgotICAgdG8gKCB2YXJp YWJsZS1saXN0ICkgKi8KKyAgIGZyb20gKCB2YXJpYWJsZS1saXN0ICkKKyAgIHRvICggdmFy aWFibGUtbGlzdCApCisKKyAgIE9wZW5NUCA1LjE6CisgICBmcm9tICggW3ByZXNlbnQgOl0g dmFyaWFibGUtbGlzdCApCisgICB0byAoIFtwcmVzZW50IDpdIHZhcmlhYmxlLWxpc3QgKSAq LwogCiBzdGF0aWMgdHJlZQotY19wYXJzZXJfb21wX2NsYXVzZV90byAoY19wYXJzZXIgKnBh cnNlciwgdHJlZSBsaXN0KQorY19wYXJzZXJfb21wX2NsYXVzZV9mcm9tX3RvIChjX3BhcnNl ciAqcGFyc2VyLCBlbnVtIG9tcF9jbGF1c2VfY29kZSBraW5kLAorCQkJICAgICB0cmVlIGxp c3QpCiB7Ci0gIHJldHVybiBjX3BhcnNlcl9vbXBfdmFyX2xpc3RfcGFyZW5zIChwYXJzZXIs IE9NUF9DTEFVU0VfVE8sIGxpc3QsIHRydWUpOwotfQorICBsb2NhdGlvbl90IGxvYyA9IGNf cGFyc2VyX3BlZWtfdG9rZW4gKHBhcnNlciktPmxvY2F0aW9uOworICBtYXRjaGluZ19wYXJl bnMgcGFyZW5zOworICBpZiAoIXBhcmVucy5yZXF1aXJlX29wZW4gKHBhcnNlcikpCisgICAg cmV0dXJuIGxpc3Q7CiAKLS8qIE9wZW5NUCA0LjA6Ci0gICBmcm9tICggdmFyaWFibGUtbGlz dCApICovCisgIGJvb2wgcHJlc2VudCA9IGZhbHNlOworICBjX3Rva2VuICp0b2tlbiA9IGNf cGFyc2VyX3BlZWtfdG9rZW4gKHBhcnNlcik7CiAKLXN0YXRpYyB0cmVlCi1jX3BhcnNlcl9v bXBfY2xhdXNlX2Zyb20gKGNfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkKLXsKLSAgcmV0 dXJuIGNfcGFyc2VyX29tcF92YXJfbGlzdF9wYXJlbnMgKHBhcnNlciwgT01QX0NMQVVTRV9G Uk9NLCBsaXN0LCB0cnVlKTsKKyAgaWYgKHRva2VuLT50eXBlID09IENQUF9OQU1FCisgICAg ICAmJiBzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAodG9rZW4tPnZhbHVlKSwgInByZXNl bnQiKSA9PSAwCisgICAgICAmJiBjX3BhcnNlcl9wZWVrXzJuZF90b2tlbiAocGFyc2VyKS0+ dHlwZSA9PSBDUFBfQ09MT04pCisgICAgeworICAgICAgcHJlc2VudCA9IHRydWU7CisgICAg ICBjX3BhcnNlcl9jb25zdW1lX3Rva2VuIChwYXJzZXIpOworICAgICAgY19wYXJzZXJfY29u c3VtZV90b2tlbiAocGFyc2VyKTsKKyAgICB9CisKKyAgdHJlZSBubCA9IGNfcGFyc2VyX29t cF92YXJpYWJsZV9saXN0IChwYXJzZXIsIGxvYywga2luZCwgbGlzdCk7CisgIHBhcmVucy5z a2lwX3VudGlsX2ZvdW5kX2Nsb3NlIChwYXJzZXIpOworCisgIGlmIChwcmVzZW50KQorICAg IGZvciAodHJlZSBjID0gbmw7IGMgIT0gbGlzdDsgYyA9IE9NUF9DTEFVU0VfQ0hBSU4gKGMp KQorICAgICAgT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCAoYykgPSAxOworCisgIHJldHVy biBubDsKIH0KIAogLyogT3Blbk1QIDQuMDoKQEAgLTE3OTQwLDExICsxNzk5MCwxMyBAQCBj X3BhcnNlcl9vbXBfYWxsX2NsYXVzZXMgKGNfcGFyc2VyICpwYXJzZXIsIG9tcF9jbGF1c2Vf bWFzayBtYXNrLAogCSAgICAgIGNsYXVzZXMgPSBubDsKIAkgICAgfQogCSAgZWxzZQotCSAg ICBjbGF1c2VzID0gY19wYXJzZXJfb21wX2NsYXVzZV90byAocGFyc2VyLCBjbGF1c2VzKTsK KwkgICAgY2xhdXNlcyA9IGNfcGFyc2VyX29tcF9jbGF1c2VfZnJvbV90byAocGFyc2VyLCBP TVBfQ0xBVVNFX1RPLAorCQkJCQkJICAgY2xhdXNlcyk7CiAJICBjX25hbWUgPSAidG8iOwog CSAgYnJlYWs7CiAJY2FzZSBQUkFHTUFfT01QX0NMQVVTRV9GUk9NOgotCSAgY2xhdXNlcyA9 IGNfcGFyc2VyX29tcF9jbGF1c2VfZnJvbSAocGFyc2VyLCBjbGF1c2VzKTsKKwkgIGNsYXVz ZXMgPSBjX3BhcnNlcl9vbXBfY2xhdXNlX2Zyb21fdG8gKHBhcnNlciwgT01QX0NMQVVTRV9G Uk9NLAorCQkJCQkJIGNsYXVzZXMpOwogCSAgY19uYW1lID0gImZyb20iOwogCSAgYnJlYWs7 CiAJY2FzZSBQUkFHTUFfT01QX0NMQVVTRV9VTklGT1JNOgpAQCAtMjE3NjgsMTEgKzIxODIw LDE4IEBAIGNfcGFyc2VyX29tcF90YXJnZXRfZGF0YSAobG9jYXRpb25fdCBsb2MsIGNfcGFy c2VyICpwYXJzZXIsIGJvb2wgKmlmX3ApCiAJICB7CiAJICBjYXNlIEdPTVBfTUFQX1RPOgog CSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE86CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRf VE86CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgogCSAgY2FzZSBHT01Q X01BUF9GUk9NOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfRlJPTToKKwkgIGNhc2UgR09N UF9NQVBfUFJFU0VOVF9GUk9NOgorCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9G Uk9NOgogCSAgY2FzZSBHT01QX01BUF9UT0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZ U19UT0ZST006CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCSAgY2FzZSBH T01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMTE9D OgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgogCSAgICBtYXBfc2VlbiA9IDM7 CiAJICAgIGJyZWFrOwogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUE9JTlRFUjoK QEAgLTIxOTE4LDcgKzIxOTc3LDEwIEBAIGNfcGFyc2VyX29tcF90YXJnZXRfZW50ZXJfZGF0 YSAobG9jYXRpb25fdCBsb2MsIGNfcGFyc2VyICpwYXJzZXIsCiAJICB7CiAJICBjYXNlIEdP TVBfTUFQX1RPOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE86CisJICBjYXNlIEdPTVBf TUFQX1BSRVNFTlRfVE86CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgog CSAgY2FzZSBHT01QX01BUF9BTExPQzoKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9BTExP QzoKIAkgICAgbWFwX3NlZW4gPSAzOwogCSAgICBicmVhazsKIAkgIGNhc2UgR09NUF9NQVBf VE9GUk9NOgpAQCAtMjE5MjksNiArMjE5OTEsMTQgQEAgY19wYXJzZXJfb21wX3RhcmdldF9l bnRlcl9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwKIAkgICAgT01Q X0NMQVVTRV9TRVRfTUFQX0tJTkQgKCpwYywgR09NUF9NQVBfQUxXQVlTX1RPKTsKIAkgICAg bWFwX3NlZW4gPSAzOwogCSAgICBicmVhazsKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9U T0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQX1BS RVNFTlRfVE8pOworCSAgICBtYXBfc2VlbiA9IDM7CisJICAgIGJyZWFrOworCSAgY2FzZSBH T01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01B UF9LSU5EICgqcGMsIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPKTsKKwkgICAgbWFwX3Nl ZW4gPSAzOworCSAgICBicmVhazsKIAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1BP SU5URVI6CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QT0lOVEVSOgogCSAgY2FzZSBHT01Q X01BUF9BVFRBQ0hfREVUQUNIOgpAQCAtMjIwMTYsNiArMjIwODYsOCBAQCBjX3BhcnNlcl9v bXBfdGFyZ2V0X2V4aXRfZGF0YSAobG9jYXRpb25fdCBsb2MsIGNfcGFyc2VyICpwYXJzZXIs CiAJICB7CiAJICBjYXNlIEdPTVBfTUFQX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZ U19GUk9NOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdPTVBf TUFQX0FMV0FZU19QUkVTRU5UX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX1JFTEVBU0U6CiAJ ICBjYXNlIEdPTVBfTUFQX0RFTEVURToKIAkgICAgbWFwX3NlZW4gPSAzOwpAQCAtMjIwMjgs NiArMjIxMDAsMTQgQEAgY19wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEgKGxvY2F0aW9u X3QgbG9jLCBjX3BhcnNlciAqcGFyc2VyLAogCSAgICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lO RCAoKnBjLCBHT01QX01BUF9BTFdBWVNfRlJPTSk7CiAJICAgIG1hcF9zZWVuID0gMzsKIAkg ICAgYnJlYWs7CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCSAgICBPTVBf Q0xBVVNFX1NFVF9NQVBfS0lORCAoKnBjLCBHT01QX01BUF9QUkVTRU5UX0ZST00pOworCSAg ICBtYXBfc2VlbiA9IDM7CisJICAgIGJyZWFrOworCSAgY2FzZSBHT01QX01BUF9BTFdBWVNf UFJFU0VOVF9UT0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdP TVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST00pOworCSAgICBtYXBfc2VlbiA9IDM7CisJICAg IGJyZWFrOwogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUE9JTlRFUjoKIAkgIGNh c2UgR09NUF9NQVBfQUxXQVlTX1BPSU5URVI6CiAJICBjYXNlIEdPTVBfTUFQX0FUVEFDSF9E RVRBQ0g6CkBAIC0yMjI3MywxMSArMjIzNTMsMTggQEAgY2hlY2tfY2xhdXNlczoKIAkgIHsK IAkgIGNhc2UgR09NUF9NQVBfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKKwkg IGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BS RVNFTlRfVE86CiAJICBjYXNlIEdPTVBfTUFQX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FM V0FZU19GUk9NOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdP TVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX1RPRlJPTToK IAkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfUFJF U0VOVF9UT0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToK IAkgIGNhc2UgR09NUF9NQVBfQUxMT0M6CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxM T0M6CiAJICBjYXNlIEdPTVBfTUFQX0ZJUlNUUFJJVkFURV9QT0lOVEVSOgogCSAgY2FzZSBH T01QX01BUF9BTFdBWVNfUE9JTlRFUjoKIAkgIGNhc2UgR09NUF9NQVBfQVRUQUNIX0RFVEFD SDoKZGlmZiAtLWdpdCBhL2djYy9jcC9wYXJzZXIuY2MgYi9nY2MvY3AvcGFyc2VyLmNjCmlu ZGV4IDFjOWFhNjcxODUxLi5kNzdmYmQyMGU1NiAxMDA2NDQKLS0tIGEvZ2NjL2NwL3BhcnNl ci5jYworKysgYi9nY2MvY3AvcGFyc2VyLmNjCkBAIC0zODc3OSw2ICszODc3OSwxMyBAQCBj cF9wYXJzZXJfb21wX2NsYXVzZV9kZWZhdWx0bWFwIChjcF9wYXJzZXIgKnBhcnNlciwgdHJl ZSBsaXN0LAogCWdvdG8gaW52YWxpZF9iZWhhdmlvcjsKICAgICAgIGJyZWFrOwogCisgICAg Y2FzZSAncCc6CisgICAgICBpZiAoc3RyY21wICgicHJlc2VudCIsIHApID09IDApCisJYmVo YXZpb3IgPSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfUFJFU0VOVDsKKyAgICAgIGVsc2UKKwln b3RvIGludmFsaWRfYmVoYXZpb3I7CisgICAgICBicmVhazsKKwogICAgIGNhc2UgJ3QnOgog ICAgICAgaWYgKHN0cmNtcCAoInRvZnJvbSIsIHApID09IDApCiAJYmVoYXZpb3IgPSBPTVBf Q0xBVVNFX0RFRkFVTFRNQVBfVE9GUk9NOwpAQCAtNDA0ODYsNiArNDA0OTMsNDEgQEAgY3Bf cGFyc2VyX29tcF9jbGF1c2VfZG9hY3Jvc3MgKGNwX3BhcnNlciAqcGFyc2VyLCB0cmVlIGxp c3QsIGxvY2F0aW9uX3QgbG9jKQogICByZXR1cm4gbmxpc3Q7CiB9CiAKKy8qIE9wZW5NUCA0 LjA6CisgICBmcm9tICggdmFyaWFibGUtbGlzdCApCisgICB0byAoIHZhcmlhYmxlLWxpc3Qg KQorCisgICBPcGVuTVAgNS4xOgorICAgZnJvbSAoIFtwcmVzZW50IDpdIHZhcmlhYmxlLWxp c3QgKQorICAgdG8gKCBbcHJlc2VudCA6XSB2YXJpYWJsZS1saXN0ICkgKi8KKworc3RhdGlj IHRyZWUKK2NwX3BhcnNlcl9vbXBfY2xhdXNlX2Zyb21fdG8gKGNwX3BhcnNlciAqcGFyc2Vy LCBlbnVtIG9tcF9jbGF1c2VfY29kZSBraW5kLAorCQkJICAgICAgdHJlZSBsaXN0KQorewor ICBpZiAoIWNwX3BhcnNlcl9yZXF1aXJlIChwYXJzZXIsIENQUF9PUEVOX1BBUkVOLCBSVF9P UEVOX1BBUkVOKSkKKyAgICByZXR1cm4gbGlzdDsKKworICBib29sIHByZXNlbnQgPSBmYWxz ZTsKKyAgY3BfdG9rZW4gKnRva2VuID0gY3BfbGV4ZXJfcGVla190b2tlbiAocGFyc2VyLT5s ZXhlcik7CisKKyAgaWYgKHRva2VuLT50eXBlID09IENQUF9OQU1FCisgICAgICAmJiBzdHJj bXAgKElERU5USUZJRVJfUE9JTlRFUiAodG9rZW4tPnUudmFsdWUpLCAicHJlc2VudCIpID09 IDAKKyAgICAgICYmIGNwX2xleGVyX250aF90b2tlbl9pcyAocGFyc2VyLT5sZXhlciwgMiwg Q1BQX0NPTE9OKSkKKyAgICB7CisgICAgICBwcmVzZW50ID0gdHJ1ZTsKKyAgICAgIGNwX2xl eGVyX2NvbnN1bWVfdG9rZW4gKHBhcnNlci0+bGV4ZXIpOworICAgICAgY3BfbGV4ZXJfY29u c3VtZV90b2tlbiAocGFyc2VyLT5sZXhlcik7CisgICAgfQorCisgIHRyZWUgbmwgPSBjcF9w YXJzZXJfb21wX3Zhcl9saXN0X25vX29wZW4gKHBhcnNlciwga2luZCwgbGlzdCwgTlVMTCwg dHJ1ZSk7CisgIGlmIChwcmVzZW50KQorICAgIGZvciAodHJlZSBjID0gbmw7IGMgIT0gbGlz dDsgYyA9IE9NUF9DTEFVU0VfQ0hBSU4gKGMpKQorICAgICAgT01QX0NMQVVTRV9NT1RJT05f UFJFU0VOVCAoYykgPSAxOworCisgIHJldHVybiBubDsKK30KKwogLyogT3Blbk1QIDQuMDoK ICAgIG1hcCAoIG1hcC1raW5kIDogdmFyaWFibGUtbGlzdCApCiAgICBtYXAgKCB2YXJpYWJs ZS1saXN0ICkKQEAgLTQwNTMyLDYgKzQwNTc0LDcgQEAgY3BfcGFyc2VyX29tcF9jbGF1c2Vf bWFwIChjcF9wYXJzZXIgKnBhcnNlciwgdHJlZSBsaXN0KQogCiAgIGJvb2wgYWx3YXlzX21v ZGlmaWVyID0gZmFsc2U7CiAgIGJvb2wgY2xvc2VfbW9kaWZpZXIgPSBmYWxzZTsKKyAgYm9v bCBwcmVzZW50X21vZGlmaWVyID0gZmFsc2U7CiAgIGZvciAoaW50IHBvcyA9IDE7IHBvcyA8 IG1hcF9raW5kX3BvczsgKytwb3MpCiAgICAgewogICAgICAgY3BfdG9rZW4gKnRvayA9IGNw X2xleGVyX3BlZWtfdG9rZW4gKHBhcnNlci0+bGV4ZXIpOwpAQCAtNDA1NjgsMTEgKzQwNjEx LDI0IEBAIGNwX3BhcnNlcl9vbXBfY2xhdXNlX21hcCAoY3BfcGFyc2VyICpwYXJzZXIsIHRy ZWUgbGlzdCkKIAkgICAgfQogCSAgY2xvc2VfbW9kaWZpZXIgPSB0cnVlOwogCX0KKyAgICAg IGVsc2UgaWYgKHN0cmNtcCAoInByZXNlbnQiLCBwKSA9PSAwKQorCXsKKwkgIGlmIChwcmVz ZW50X21vZGlmaWVyKQorCSAgICB7CisJICAgICAgY3BfcGFyc2VyX2Vycm9yIChwYXJzZXIs ICJ0b28gbWFueSAlPHByZXNlbnQlPiBtb2RpZmllcnMiKTsKKwkgICAgICBjcF9wYXJzZXJf c2tpcF90b19jbG9zaW5nX3BhcmVudGhlc2lzIChwYXJzZXIsCisJCQkJCQkgICAgIC8qcmVj b3ZlcmluZz0qL3RydWUsCisJCQkJCQkgICAgIC8qb3JfY29tbWE9Ki9mYWxzZSwKKwkJCQkJ CSAgICAgLypjb25zdW1lX3BhcmVuPSovdHJ1ZSk7CisJICAgICAgcmV0dXJuIGxpc3Q7CisJ ICAgIH0KKwkgIHByZXNlbnRfbW9kaWZpZXIgPSB0cnVlOworICAgICAgIH0KICAgICAgIGVs c2UKIAl7CiAJICBjcF9wYXJzZXJfZXJyb3IgKHBhcnNlciwgIiU8I3ByYWdtYSBvbXAgdGFy Z2V0JT4gd2l0aCAiCi0JCQkJICAgIm1vZGlmaWVyIG90aGVyIHRoYW4gJTxhbHdheXMlPiBv ciAiCi0JCQkJICAgIiU8Y2xvc2UlPiBvbiAlPG1hcCU+IGNsYXVzZSIpOworCQkJCSAgICJt b2RpZmllciBvdGhlciB0aGFuICU8YWx3YXlzJT4sICU8Y2xvc2UlPiAiCisJCQkJICAgIm9y ICU8cHJlc2VudCU+IG9uICU8bWFwJT4gY2xhdXNlIik7CiAJICBjcF9wYXJzZXJfc2tpcF90 b19jbG9zaW5nX3BhcmVudGhlc2lzIChwYXJzZXIsCiAJCQkJCQkgLypyZWNvdmVyaW5nPSov dHJ1ZSwKIAkJCQkJCSAvKm9yX2NvbW1hPSovZmFsc2UsCkBAIC00MDU4OCwxNSArNDA2NDQs MjUgQEAgY3BfcGFyc2VyX29tcF9jbGF1c2VfbWFwIChjcF9wYXJzZXIgKnBhcnNlciwgdHJl ZSBsaXN0KQogICAgIHsKICAgICAgIHRyZWUgaWQgPSBjcF9sZXhlcl9wZWVrX3Rva2VuIChw YXJzZXItPmxleGVyKS0+dS52YWx1ZTsKICAgICAgIGNvbnN0IGNoYXIgKnAgPSBJREVOVElG SUVSX1BPSU5URVIgKGlkKTsKKyAgICAgIGludCBhbHdheXNfcHJlc2VudF9tb2RpZmllciA9 IGFsd2F5c19tb2RpZmllciAmJiBwcmVzZW50X21vZGlmaWVyOwogCiAgICAgICBpZiAoc3Ry Y21wICgiYWxsb2MiLCBwKSA9PSAwKQotCWtpbmQgPSBHT01QX01BUF9BTExPQzsKKwlraW5k ID0gcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNFTlRfQUxMT0MgOiBHT01QX01B UF9BTExPQzsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInRvIiwgcCkgPT0gMCkKLQlraW5k ID0gYWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1RPIDogR09NUF9NQVBfVE87 CisJa2luZCA9IChhbHdheXNfcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19Q UkVTRU5UX1RPCisJCTogcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNFTlRfVE8K KwkJOiBhbHdheXNfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfVE8KKwkJOiBHT01QX01B UF9UTyk7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKCJmcm9tIiwgcCkgPT0gMCkKLQlraW5k ID0gYWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX0ZST00gOiBHT01QX01BUF9G Uk9NOworCWtpbmQgPSAoYWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdB WVNfUFJFU0VOVF9GUk9NCisJCTogcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNF TlRfRlJPTQorCQk6IGFsd2F5c19tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19GUk9NCisJ CTogR09NUF9NQVBfRlJPTSk7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKCJ0b2Zyb20iLCBw KSA9PSAwKQotCWtpbmQgPSBhbHdheXNfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfVE9G Uk9NIDogR09NUF9NQVBfVE9GUk9NOworCWtpbmQgPSAoYWx3YXlzX3ByZXNlbnRfbW9kaWZp ZXIgPyBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST00KKwkJOiBwcmVzZW50X21vZGlm aWVyID8gR09NUF9NQVBfUFJFU0VOVF9UT0ZST00KKwkJOiBhbHdheXNfbW9kaWZpZXIgPyBH T01QX01BUF9BTFdBWVNfVE9GUk9NCisJCTogR09NUF9NQVBfVE9GUk9NKTsKICAgICAgIGVs c2UgaWYgKHN0cmNtcCAoInJlbGVhc2UiLCBwKSA9PSAwKQogCWtpbmQgPSBHT01QX01BUF9S RUxFQVNFOwogICAgICAgZWxzZQpAQCAtNDEzNzMsMTMgKzQxNDM5LDEzIEBAIGNwX3BhcnNl cl9vbXBfYWxsX2NsYXVzZXMgKGNwX3BhcnNlciAqcGFyc2VyLCBvbXBfY2xhdXNlX21hc2sg bWFzaywKIAkgICAgICBjbGF1c2VzID0gbmw7CiAJICAgIH0KIAkgIGVsc2UKLQkgICAgY2xh dXNlcyA9IGNwX3BhcnNlcl9vbXBfdmFyX2xpc3QgKHBhcnNlciwgT01QX0NMQVVTRV9UTywg Y2xhdXNlcywKLQkJCQkJICAgICAgdHJ1ZSk7CisJICAgIGNsYXVzZXMgPSBjcF9wYXJzZXJf b21wX2NsYXVzZV9mcm9tX3RvIChwYXJzZXIsIE9NUF9DTEFVU0VfVE8sCisJCQkJCQkgICAg Y2xhdXNlcyk7CiAJICBjX25hbWUgPSAidG8iOwogCSAgYnJlYWs7CiAJY2FzZSBQUkFHTUFf T01QX0NMQVVTRV9GUk9NOgotCSAgY2xhdXNlcyA9IGNwX3BhcnNlcl9vbXBfdmFyX2xpc3Qg KHBhcnNlciwgT01QX0NMQVVTRV9GUk9NLCBjbGF1c2VzLAotCQkJCQkgICAgdHJ1ZSk7CisJ ICBjbGF1c2VzID0gY3BfcGFyc2VyX29tcF9jbGF1c2VfZnJvbV90byAocGFyc2VyLCBPTVBf Q0xBVVNFX0ZST00sCisJCQkJCQkgIGNsYXVzZXMpOwogCSAgY19uYW1lID0gImZyb20iOwog CSAgYnJlYWs7CiAJY2FzZSBQUkFHTUFfT01QX0NMQVVTRV9VTklGT1JNOgpAQCAtNDUyMzEs MTEgKzQ1Mjk3LDE4IEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0X2RhdGEgKGNwX3BhcnNlciAq cGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywgYm9vbCAqaWZfcCkKIAkgIHsKIAkgIGNh c2UgR09NUF9NQVBfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKKwkgIGNhc2Ug R09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf VE86CiAJICBjYXNlIEdPTVBfTUFQX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19G Uk9NOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdPTVBfTUFQ X0FMV0FZU19QUkVTRU5UX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX1RPRlJPTToKIAkgIGNh c2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9U T0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkgIGNh c2UgR09NUF9NQVBfQUxMT0M6CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CiAJ ICAgIG1hcF9zZWVuID0gMzsKIAkgICAgYnJlYWs7CiAJICBjYXNlIEdPTVBfTUFQX0ZJUlNU UFJJVkFURV9QT0lOVEVSOgpAQCAtNDUzMzgsNyArNDU0MTEsMTAgQEAgY3BfcGFyc2VyX29t cF90YXJnZXRfZW50ZXJfZGF0YSAoY3BfcGFyc2VyICpwYXJzZXIsIGNwX3Rva2VuICpwcmFn bWFfdG9rLAogCSAgewogCSAgY2FzZSBHT01QX01BUF9UTzoKIAkgIGNhc2UgR09NUF9NQVBf QUxXQVlTX1RPOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPOgorCSAgY2FzZSBHT01Q X01BUF9BTFdBWVNfUFJFU0VOVF9UTzoKIAkgIGNhc2UgR09NUF9NQVBfQUxMT0M6CisJICBj YXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CiAJICAgIG1hcF9zZWVuID0gMzsKIAkgICAg YnJlYWs7CiAJICBjYXNlIEdPTVBfTUFQX1RPRlJPTToKQEAgLTQ1MzQ5LDYgKzQ1NDI1LDE0 IEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0X2VudGVyX2RhdGEgKGNwX3BhcnNlciAqcGFyc2Vy LCBjcF90b2tlbiAqcHJhZ21hX3RvaywKIAkgICAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQg KCpwYywgR09NUF9NQVBfQUxXQVlTX1RPKTsKIAkgICAgbWFwX3NlZW4gPSAzOwogCSAgICBi cmVhazsKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICAgIE9NUF9DTEFV U0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQX1BSRVNFTlRfVE8pOworCSAgICBtYXBf c2VlbiA9IDM7CisJICAgIGJyZWFrOworCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9UT0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQ X0FMV0FZU19QUkVTRU5UX1RPKTsKKwkgICAgbWFwX3NlZW4gPSAzOworCSAgICBicmVhazsK IAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1BPSU5URVI6CiAJICBjYXNlIEdPTVBf TUFQX0ZJUlNUUFJJVkFURV9SRUZFUkVOQ0U6CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19Q T0lOVEVSOgpAQCAtNDU0NDEsNiArNDU1MjUsOCBAQCBjcF9wYXJzZXJfb21wX3RhcmdldF9l eGl0X2RhdGEgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywKIAkg IHsKIAkgIGNhc2UgR09NUF9NQVBfRlJPTToKIAkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX0ZS T006CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkgIGNhc2UgR09NUF9NQVBf QUxXQVlTX1BSRVNFTlRfRlJPTToKIAkgIGNhc2UgR09NUF9NQVBfUkVMRUFTRToKIAkgIGNh c2UgR09NUF9NQVBfREVMRVRFOgogCSAgICBtYXBfc2VlbiA9IDM7CkBAIC00NTQ1Myw2ICs0 NTUzOSwxNCBAQCBjcF9wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEgKGNwX3BhcnNlciAq cGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywKIAkgICAgT01QX0NMQVVTRV9TRVRfTUFQ X0tJTkQgKCpwYywgR09NUF9NQVBfQUxXQVlTX0ZST00pOwogCSAgICBtYXBfc2VlbiA9IDM7 CiAJICAgIGJyZWFrOworCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkgICAg T01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKCpwYywgR09NUF9NQVBfUFJFU0VOVF9GUk9NKTsK KwkgICAgbWFwX3NlZW4gPSAzOworCSAgICBicmVhazsKKwkgIGNhc2UgR09NUF9NQVBfQUxX QVlTX1BSRVNFTlRfVE9GUk9NOgorCSAgICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lORCAoKnBj LCBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NKTsKKwkgICAgbWFwX3NlZW4gPSAzOwor CSAgICBicmVhazsKIAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1BPSU5URVI6CiAJ ICBjYXNlIEdPTVBfTUFQX0ZJUlNUUFJJVkFURV9SRUZFUkVOQ0U6CiAJICBjYXNlIEdPTVBf TUFQX0FMV0FZU19QT0lOVEVSOgpkaWZmIC0tZ2l0IGEvZ2NjL2NwL3NlbWFudGljcy5jYyBi L2djYy9jcC9zZW1hbnRpY3MuY2MKaW5kZXggMDg0M2I1ZWFlNzMuLmMwNDUxNDY3OWYwIDEw MDY0NAotLS0gYS9nY2MvY3Avc2VtYW50aWNzLmNjCisrKyBiL2djYy9jcC9zZW1hbnRpY3Mu Y2MKQEAgLTEwMDMwLDExICsxMDAzMCwxOCBAQCBmaW5pc2hfb21wX3RhcmdldCAobG9jYXRp b25fdCBsb2MsIHRyZWUgY2xhdXNlcywgdHJlZSBib2R5LCBib29sIGNvbWJpbmVkX3ApCiAJ ICB7CiAJICBjYXNlIEdPTVBfTUFQX1RPOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE86 CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE86CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZ U19QUkVTRU5UX1RPOgogCSAgY2FzZSBHT01QX01BUF9GUk9NOgogCSAgY2FzZSBHT01QX01B UF9BTFdBWVNfRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9GUk9NOgorCSAgY2Fz ZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NOgogCSAgY2FzZSBHT01QX01BUF9UT0ZS T006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UT0ZST006CisJICBjYXNlIEdPTVBfTUFQ X1BSRVNFTlRfVE9GUk9NOgorCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZS T006CiAJICBjYXNlIEdPTVBfTUFQX0FMTE9DOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5U X0FMTE9DOgogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUE9JTlRFUjoKIAkgIGNh c2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1JFRkVSRU5DRToKIAkgIGNhc2UgR09NUF9NQVBf QUxXQVlTX1BPSU5URVI6CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRy ZWUuY2MgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MKaW5kZXggNmQ3NWNjMjlm NjAuLjk5YzhiZGFhZGNlIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRy ZWUuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjCkBAIC0xNDY4LDkg KzE0NjgsMjAgQEAgc2hvd19vbXBfbmFtZWxpc3QgKGludCBsaXN0X3R5cGUsIGdmY19vbXBf bmFtZWxpc3QgKm4pCiAJICBjYXNlIE9NUF9NQVBfVE86IGZwdXRzICgidG86IiwgZHVtcGZp bGUpOyBicmVhazsKIAkgIGNhc2UgT01QX01BUF9GUk9NOiBmcHV0cyAoImZyb206IiwgZHVt cGZpbGUpOyBicmVhazsKIAkgIGNhc2UgT01QX01BUF9UT0ZST006IGZwdXRzICgidG9mcm9t OiIsIGR1bXBmaWxlKTsgYnJlYWs7CisJICBjYXNlIE9NUF9NQVBfUFJFU0VOVF9BTExPQzog ZnB1dHMgKCJwcmVzZW50LGFsbG9jOiIsIGR1bXBmaWxlKTsgYnJlYWs7CisJICBjYXNlIE9N UF9NQVBfUFJFU0VOVF9UTzogZnB1dHMgKCJwcmVzZW50LHRvOiIsIGR1bXBmaWxlKTsgYnJl YWs7CisJICBjYXNlIE9NUF9NQVBfUFJFU0VOVF9GUk9NOiBmcHV0cyAoInByZXNlbnQsZnJv bToiLCBkdW1wZmlsZSk7IGJyZWFrOworCSAgY2FzZSBPTVBfTUFQX1BSRVNFTlRfVE9GUk9N OgorCSAgICBmcHV0cyAoInByZXNlbnQsdG9mcm9tOiIsIGR1bXBmaWxlKTsgYnJlYWs7CiAJ ICBjYXNlIE9NUF9NQVBfQUxXQVlTX1RPOiBmcHV0cyAoImFsd2F5cyx0bzoiLCBkdW1wZmls ZSk7IGJyZWFrOwogCSAgY2FzZSBPTVBfTUFQX0FMV0FZU19GUk9NOiBmcHV0cyAoImFsd2F5 cyxmcm9tOiIsIGR1bXBmaWxlKTsgYnJlYWs7CiAJICBjYXNlIE9NUF9NQVBfQUxXQVlTX1RP RlJPTTogZnB1dHMgKCJhbHdheXMsdG9mcm9tOiIsIGR1bXBmaWxlKTsgYnJlYWs7CisJICBj YXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CisJICAgIGZwdXRzICgiYWx3YXlzLHBy ZXNlbnQsdG86IiwgZHVtcGZpbGUpOyBicmVhazsKKwkgIGNhc2UgT01QX01BUF9BTFdBWVNf UFJFU0VOVF9GUk9NOgorCSAgICBmcHV0cyAoImFsd2F5cyxwcmVzZW50LGZyb206IiwgZHVt cGZpbGUpOyBicmVhazsKKwkgIGNhc2UgT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006 CisJICAgIGZwdXRzICgiYWx3YXlzLHByZXNlbnQsdG9mcm9tOiIsIGR1bXBmaWxlKTsgYnJl YWs7CiAJICBjYXNlIE9NUF9NQVBfREVMRVRFOiBmcHV0cyAoImRlbGV0ZToiLCBkdW1wZmls ZSk7IGJyZWFrOwogCSAgY2FzZSBPTVBfTUFQX1JFTEVBU0U6IGZwdXRzICgicmVsZWFzZToi LCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgZGVmYXVsdDogYnJlYWs7CkBAIC0xNzkzLDYgKzE4 MDQsOSBAQCBzaG93X29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2Vz KQogCSAgZnB1dHMgKCJpbnNjYW4sICIsIGR1bXBmaWxlKTsKIAlpZiAobGlzdF90eXBlID09 IE9NUF9MSVNUX1JFRFVDVElPTl9UQVNLKQogCSAgZnB1dHMgKCJ0YXNrLCAiLCBkdW1wZmls ZSk7CisJaWYgKChsaXN0X3R5cGUgPT0gT01QX0xJU1RfVE8gfHwgbGlzdF90eXBlID09IE9N UF9MSVNUX0ZST00pCisJICAgICYmIG9tcF9jbGF1c2VzLT5saXN0c1tsaXN0X3R5cGVdLT51 LnByZXNlbnRfbW9kaWZpZXIpCisJICBmcHV0cyAoInByZXNlbnQ6IiwgZHVtcGZpbGUpOwog CXNob3dfb21wX25hbWVsaXN0IChsaXN0X3R5cGUsIG9tcF9jbGF1c2VzLT5saXN0c1tsaXN0 X3R5cGVdKTsKIAlmcHV0YyAoJyknLCBkdW1wZmlsZSk7CiAgICAgICB9CmRpZmYgLS1naXQg YS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAppbmRl eCAzZTVmOTQyZDdmZC4uMzNjYTQ5ODZmNjkgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dm b3J0cmFuLmgKKysrIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaApAQCAtMTMwOCw3ICsxMzA4 LDE0IEBAIGVudW0gZ2ZjX29tcF9tYXBfb3AKICAgT01QX01BUF9SRUxFQVNFLAogICBPTVBf TUFQX0FMV0FZU19UTywKICAgT01QX01BUF9BTFdBWVNfRlJPTSwKLSAgT01QX01BUF9BTFdB WVNfVE9GUk9NCisgIE9NUF9NQVBfQUxXQVlTX1RPRlJPTSwKKyAgT01QX01BUF9QUkVTRU5U X0FMTE9DLAorICBPTVBfTUFQX1BSRVNFTlRfVE8sCisgIE9NUF9NQVBfUFJFU0VOVF9GUk9N LAorICBPTVBfTUFQX1BSRVNFTlRfVE9GUk9NLAorICBPTVBfTUFQX0FMV0FZU19QUkVTRU5U X1RPLAorICBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST00sCisgIE9NUF9NQVBfQUxXQVlT X1BSRVNFTlRfVE9GUk9NCiB9OwogCiBlbnVtIGdmY19vbXBfZGVmYXVsdG1hcApAQCAtMTM2 Miw2ICsxMzY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2ZjX29tcF9uYW1lbGlzdAogCX0gbGlu ZWFyOwogICAgICAgc3RydWN0IGdmY19jb21tb25faGVhZCAqY29tbW9uOwogICAgICAgYm9v bCBsYXN0cHJpdmF0ZV9jb25kaXRpb25hbDsKKyAgICAgIGJvb2wgcHJlc2VudF9tb2RpZmll cjsKICAgICB9IHU7CiAgIHVuaW9uCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v b3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDRjMzA1NDg1NjdmLi44 ZWZjNGIzZWNmYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCisrKyBiL2dj Yy9mb3J0cmFuL29wZW5tcC5jYwpAQCAtMTMzNiw2ICsxMzM2LDMwIEBAIGZhaWxlZDoKICAg cmV0dXJuIE1BVENIX05POwogfQogCisvKiBNYXRjaCB0YXJnZXQgdXBkYXRlJ3MgdG8vZnJv bSggW3ByZXNlbnQ6XSB2YXItbGlzdCkuICAqLworCitzdGF0aWMgbWF0Y2gKK2dmY19tYXRj aF9tb3Rpb25fdmFyX2xpc3QgKGNvbnN0IGNoYXIgKnN0ciwgZ2ZjX29tcF9uYW1lbGlzdCAq Kmxpc3QsCisJCQkgICBnZmNfb21wX25hbWVsaXN0ICoqKmhlYWRwKQoreworICBtYXRjaCBt ID0gZ2ZjX21hdGNoIChzdHIpOworICBpZiAobSAhPSBNQVRDSF9ZRVMpCisgICAgcmV0dXJu IG07CisKKyAgbWF0Y2ggbV9wcmVzZW50ID0gZ2ZjX21hdGNoICgiIHByZXNlbnQgOiAiKTsK KworICBtID0gZ2ZjX21hdGNoX29tcF92YXJpYWJsZV9saXN0ICgiIiwgbGlzdCwgZmFsc2Us IE5VTEwsIGhlYWRwLCB0cnVlLCB0cnVlKTsKKyAgaWYgKG0gIT0gTUFUQ0hfWUVTKQorICAg IHJldHVybiBtOworICBpZiAobV9wcmVzZW50ID09IE1BVENIX1lFUykKKyAgICB7CisgICAg ICBnZmNfb21wX25hbWVsaXN0ICpuOworICAgICAgZm9yIChuID0gKipoZWFkcDsgbjsgbiA9 IG4tPm5leHQpCisJbi0+dS5wcmVzZW50X21vZGlmaWVyID0gdHJ1ZTsKKyAgICB9CisgIHJl dHVybiBNQVRDSF9ZRVM7Cit9CisKIC8qIHJlZHVjdGlvbiAoIHJlZHVjdGlvbi1tb2RpZmll ciwgcmVkdWN0aW9uLW9wZXJhdG9yIDogdmFyaWFibGUtbGlzdCApCiAgICBpbl9yZWR1Y3Rp b24gKCByZWR1Y3Rpb24tb3BlcmF0b3IgOiB2YXJpYWJsZS1saXN0ICkKICAgIHRhc2tfcmVk dWN0aW9uICggcmVkdWN0aW9uLW9wZXJhdG9yIDogdmFyaWFibGUtbGlzdCApICAqLwpAQCAt MjA5OCw2ICsyMTIyLDggQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVz ZXMgKipjcCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkJYmVoYXZpb3IgPSBPTVBfREVGQVVM VE1BUF9GUk9NOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoImZpcnN0cHJpdmF0ZSAi KSA9PSBNQVRDSF9ZRVMpCiAJCWJlaGF2aW9yID0gT01QX0RFRkFVTFRNQVBfRklSU1RQUklW QVRFOworCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoInByZXNlbnQgIikgPT0gTUFUQ0hf WUVTKQorCQliZWhhdmlvciA9IE9NUF9ERUZBVUxUTUFQX1BSRVNFTlQ7CiAJICAgICAgZWxz ZSBpZiAoZ2ZjX21hdGNoICgibm9uZSAiKSA9PSBNQVRDSF9ZRVMpCiAJCWJlaGF2aW9yID0g T01QX0RFRkFVTFRNQVBfTk9ORTsKIAkgICAgICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJkZWZh dWx0ICIpID09IE1BVENIX1lFUykKQEAgLTIxMDUsNyArMjEzMSw3IEBAIGdmY19tYXRjaF9v bXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1hc2ss CiAJICAgICAgZWxzZQogCQl7CiAJCSAgZ2ZjX2Vycm9yICgiRXhwZWN0ZWQgQUxMT0MsIFRP LCBGUk9NLCBUT0ZST00sIEZJUlNUUFJJVkFURSwgIgotCQkJICAgIk5PTkUgb3IgREVGQVVM VCBhdCAlQyIpOworCQkJICAgICAiUFJFU0VOVCwgTk9ORSBvciBERUZBVUxUIGF0ICVDIik7 CiAJCSAgYnJlYWs7CiAJCX0KIAkgICAgICBpZiAoJyknID09IGdmY19wZWVrX2FzY2lpX2No YXIgKCkpCkBAIC0yNTI5LDEwICsyNTU1LDggQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChn ZmNfb21wX2NsYXVzZXMgKipjcCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkJCQkJICAgICAg dHJ1ZSkgPT0gTUFUQ0hfWUVTKQogCSAgICBjb250aW51ZTsKIAkgIGlmICgobWFzayAmIE9N UF9DTEFVU0VfRlJPTSkKLQkgICAgICAmJiAoZ2ZjX21hdGNoX29tcF92YXJpYWJsZV9saXN0 ICgiZnJvbSAoIiwKLQkJCQkJICAgICAgJmMtPmxpc3RzW09NUF9MSVNUX0ZST01dLCBmYWxz ZSwKLQkJCQkJICAgICAgTlVMTCwgJmhlYWQsIHRydWUsIHRydWUpCi0JCSAgPT0gTUFUQ0hf WUVTKSkKKwkgICAgICAmJiBnZmNfbWF0Y2hfbW90aW9uX3Zhcl9saXN0ICgiZnJvbSAoIiwg JmMtPmxpc3RzW09NUF9MSVNUX0ZST01dLAorCQkJCQkgICAgICZoZWFkKSA9PSBNQVRDSF9Z RVMpCiAJICAgIGNvbnRpbnVlOwogCSAgYnJlYWs7CiAJY2FzZSAnZyc6CkBAIC0yODg4LDgg KzI5MTIsMTAgQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVzZXMgKipj cCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkgICAgICBsb2N1cyBvbGRfbG9jMiA9IGdmY19j dXJyZW50X2xvY3VzOwogCSAgICAgIGludCBhbHdheXNfbW9kaWZpZXIgPSAwOwogCSAgICAg IGludCBjbG9zZV9tb2RpZmllciA9IDA7CisJICAgICAgaW50IHByZXNlbnRfbW9kaWZpZXIg PSAwOwogCSAgICAgIGxvY3VzIHNlY29uZF9hbHdheXNfbG9jdXMgPSBvbGRfbG9jMjsKIAkg ICAgICBsb2N1cyBzZWNvbmRfY2xvc2VfbG9jdXMgPSBvbGRfbG9jMjsKKwkgICAgICBsb2N1 cyBzZWNvbmRfcHJlc2VudF9sb2N1cyA9IG9sZF9sb2MyOwogCiAJICAgICAgZm9yICg7OykK IAkJewpAQCAtMjkwNCwyMCArMjkzMCwzOCBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdm Y19vbXBfY2xhdXNlcyAqKmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCQkgICAgICBpZiAo Y2xvc2VfbW9kaWZpZXIrKyA9PSAxKQogCQkJc2Vjb25kX2Nsb3NlX2xvY3VzID0gY3VycmVu dF9sb2N1czsKIAkJICAgIH0KKwkJICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJwcmVzZW50ICIp ID09IE1BVENIX1lFUykKKwkJICAgIHsKKwkJICAgICAgaWYgKHByZXNlbnRfbW9kaWZpZXIr KyA9PSAxKQorCQkJc2Vjb25kX3ByZXNlbnRfbG9jdXMgPSBjdXJyZW50X2xvY3VzOworCQkg ICAgfQogCQkgIGVsc2UKIAkJICAgIGJyZWFrOwogCQkgIGdmY19tYXRjaCAoIiwgIik7CiAJ CX0KIAogCSAgICAgIGdmY19vbXBfbWFwX29wIG1hcF9vcCA9IE9NUF9NQVBfVE9GUk9NOwor CSAgICAgIGludCBhbHdheXNfcHJlc2VudF9tb2RpZmllcgorCQk9IGFsd2F5c19tb2RpZmll ciAmJiBwcmVzZW50X21vZGlmaWVyOworCiAJICAgICAgaWYgKGdmY19tYXRjaCAoImFsbG9j IDogIikgPT0gTUFUQ0hfWUVTKQotCQltYXBfb3AgPSBPTVBfTUFQX0FMTE9DOworCQltYXBf b3AgPSAocHJlc2VudF9tb2RpZmllciA/IE9NUF9NQVBfUFJFU0VOVF9BTExPQworCQkJICA6 IE9NUF9NQVBfQUxMT0MpOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoInRvZnJvbSA6 ICIpID09IE1BVENIX1lFUykKLQkJbWFwX29wID0gYWx3YXlzX21vZGlmaWVyID8gT01QX01B UF9BTFdBWVNfVE9GUk9NIDogT01QX01BUF9UT0ZST007CisJCW1hcF9vcCA9IChhbHdheXNf cHJlc2VudF9tb2RpZmllciA/IE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NCisJCQkg IDogcHJlc2VudF9tb2RpZmllciA/IE9NUF9NQVBfUFJFU0VOVF9UT0ZST00KKwkJCSAgOiBh bHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FMV0FZU19UT0ZST00KKwkJCSAgOiBPTVBfTUFQ X1RPRlJPTSk7CiAJICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgidG8gOiAiKSA9PSBNQVRD SF9ZRVMpCi0JCW1hcF9vcCA9IGFsd2F5c19tb2RpZmllciA/IE9NUF9NQVBfQUxXQVlTX1RP IDogT01QX01BUF9UTzsKKwkJbWFwX29wID0gKGFsd2F5c19wcmVzZW50X21vZGlmaWVyID8g T01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTworCQkJICA6IHByZXNlbnRfbW9kaWZpZXIgPyBP TVBfTUFQX1BSRVNFTlRfVE8KKwkJCSAgOiBhbHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FM V0FZU19UTworCQkJICA6IE9NUF9NQVBfVE8pOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRj aCAoImZyb20gOiAiKSA9PSBNQVRDSF9ZRVMpCi0JCW1hcF9vcCA9IGFsd2F5c19tb2RpZmll ciA/IE9NUF9NQVBfQUxXQVlTX0ZST00gOiBPTVBfTUFQX0ZST007CisJCW1hcF9vcCA9IChh bHdheXNfcHJlc2VudF9tb2RpZmllciA/IE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTQor CQkJICA6IHByZXNlbnRfbW9kaWZpZXIgPyBPTVBfTUFQX1BSRVNFTlRfRlJPTQorCQkJICA6 IGFsd2F5c19tb2RpZmllciA/IE9NUF9NQVBfQUxXQVlTX0ZST00KKwkJCSAgOiBPTVBfTUFQ X0ZST00pOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoInJlbGVhc2UgOiAiKSA9PSBN QVRDSF9ZRVMpCiAJCW1hcF9vcCA9IE9NUF9NQVBfUkVMRUFTRTsKIAkgICAgICBlbHNlIGlm IChnZmNfbWF0Y2ggKCJkZWxldGUgOiAiKSA9PSBNQVRDSF9ZRVMpCkBAIC0yOTQxLDYgKzI5 ODUsMTIgQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVzZXMgKipjcCwg Y29uc3Qgb21wX21hc2sgbWFzaywKIAkJCSAgICAgJnNlY29uZF9jbG9zZV9sb2N1cyk7CiAJ CSAgYnJlYWs7CiAJCX0KKwkgICAgICBpZiAocHJlc2VudF9tb2RpZmllciA+IDEpCisJCXsK KwkJICBnZmNfZXJyb3IgKCJ0b28gbWFueSAlPHByZXNlbnQlPiBtb2RpZmllcnMgYXQgJUwi LAorCQkJICAgICAmc2Vjb25kX3ByZXNlbnRfbG9jdXMpOworCQkgIGJyZWFrOworCQl9CiAK IAkgICAgICBoZWFkID0gTlVMTDsKIAkgICAgICBpZiAoZ2ZjX21hdGNoX29tcF92YXJpYWJs ZV9saXN0ICgiIiwgJmMtPmxpc3RzW09NUF9MSVNUX01BUF0sCkBAIC0zNDY3LDEwICszNTE3 LDggQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVzZXMgKipjcCwgY29u c3Qgb21wX21hc2sgbWFzaywKIAkJY29udGludWU7CiAJICAgIH0KIAkgIGVsc2UgaWYgKCht YXNrICYgT01QX0NMQVVTRV9UTykKLQkgICAgICAmJiAoZ2ZjX21hdGNoX29tcF92YXJpYWJs ZV9saXN0ICgidG8gKCIsCi0JCQkJCSAgICAgICZjLT5saXN0c1tPTVBfTElTVF9UT10sIGZh bHNlLAotCQkJCQkgICAgICBOVUxMLCAmaGVhZCwgdHJ1ZSwgdHJ1ZSkKLQkJICA9PSBNQVRD SF9ZRVMpKQorCQkgICAmJiBnZmNfbWF0Y2hfbW90aW9uX3Zhcl9saXN0ICgidG8gKCIsICZj LT5saXN0c1tPTVBfTElTVF9UT10sCisJCQkJCQkgJmhlYWQpID09IE1BVENIX1lFUykKIAkg ICAgY29udGludWU7CiAJICBicmVhazsKIAljYXNlICd1JzoKQEAgLTgwOTIsMTEgKzgxNDAs MTggQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xh dXNlcyAqb21wX2NsYXVzZXMsCiAJCQl7CiAJCQljYXNlIE9NUF9NQVBfVE86CiAJCQljYXNl IE9NUF9NQVBfQUxXQVlTX1RPOgorCQkJY2FzZSBPTVBfTUFQX1BSRVNFTlRfVE86CisJCQlj YXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CiAJCQljYXNlIE9NUF9NQVBfRlJPTToK IAkJCWNhc2UgT01QX01BUF9BTFdBWVNfRlJPTToKKwkJCWNhc2UgT01QX01BUF9QUkVTRU5U X0ZST006CisJCQljYXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKIAkJCWNhc2Ug T01QX01BUF9UT0ZST006CiAJCQljYXNlIE9NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkJCWNh c2UgT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkJCWNhc2UgT01QX01BUF9BTFdBWVNfUFJF U0VOVF9UT0ZST006CiAJCQljYXNlIE9NUF9NQVBfQUxMT0M6CisJCQljYXNlIE9NUF9NQVBf UFJFU0VOVF9BTExPQzoKIAkJCSAgYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJICBnZmNfZXJy b3IgKCJUQVJHRVQlcyB3aXRoIG1hcC10eXBlIG90aGVyIHRoYW4gVE8sICIKQEAgLTgxMTIs NyArODE2NywxMCBAQCByZXNvbHZlX29tcF9jbGF1c2VzIChnZmNfY29kZSAqY29kZSwgZ2Zj X29tcF9jbGF1c2VzICpvbXBfY2xhdXNlcywKIAkJCXsKIAkJCWNhc2UgT01QX01BUF9UTzoK IAkJCWNhc2UgT01QX01BUF9BTFdBWVNfVE86CisJCQljYXNlIE9NUF9NQVBfUFJFU0VOVF9U TzoKKwkJCWNhc2UgT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTzoKIAkJCWNhc2UgT01QX01B UF9BTExPQzoKKwkJCWNhc2UgT01QX01BUF9QUkVTRU5UX0FMTE9DOgogCQkJICBicmVhazsK IAkJCWNhc2UgT01QX01BUF9UT0ZST006CiAJCQkgIG4tPnUubWFwX29wID0gT01QX01BUF9U TzsKQEAgLTgxMjAsNiArODE3OCwxMiBAQCByZXNvbHZlX29tcF9jbGF1c2VzIChnZmNfY29k ZSAqY29kZSwgZ2ZjX29tcF9jbGF1c2VzICpvbXBfY2xhdXNlcywKIAkJCWNhc2UgT01QX01B UF9BTFdBWVNfVE9GUk9NOgogCQkJICBuLT51Lm1hcF9vcCA9IE9NUF9NQVBfQUxXQVlTX1RP OwogCQkJICBicmVhazsKKwkJCWNhc2UgT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkJCSAg bi0+dS5tYXBfb3AgPSBPTVBfTUFQX1BSRVNFTlRfVE87CisJCQkgIGJyZWFrOworCQkJY2Fz ZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkJCSAgbi0+dS5tYXBfb3AgPSBP TVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOworCQkJICBicmVhazsKIAkJCWRlZmF1bHQ6CiAJ CQkgIGdmY19lcnJvciAoIlRBUkdFVCBFTlRFUiBEQVRBIHdpdGggbWFwLXR5cGUgb3RoZXIg IgogCQkJCSAgICAgInRoYW4gVE8sIFRPRlJPTSBvciBBTExPQyBvbiBNQVAgY2xhdXNlICIK QEAgLTgxMzIsNiArODE5Niw4IEBAIHJlc29sdmVfb21wX2NsYXVzZXMgKGdmY19jb2RlICpj b2RlLCBnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzLAogCQkJewogCQkJY2FzZSBPTVBf TUFQX0ZST006CiAJCQljYXNlIE9NUF9NQVBfQUxXQVlTX0ZST006CisJCQljYXNlIE9NUF9N QVBfUFJFU0VOVF9GUk9NOgorCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CiAJCQljYXNlIE9NUF9NQVBfUkVMRUFTRToKIAkJCWNhc2UgT01QX01BUF9ERUxFVEU6CiAJ CQkgIGJyZWFrOwpAQCAtODE0MSw2ICs4MjA3LDEyIEBAIHJlc29sdmVfb21wX2NsYXVzZXMg KGdmY19jb2RlICpjb2RlLCBnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzLAogCQkJY2Fz ZSBPTVBfTUFQX0FMV0FZU19UT0ZST006CiAJCQkgIG4tPnUubWFwX29wID0gT01QX01BUF9B TFdBWVNfRlJPTTsKIAkJCSAgYnJlYWs7CisJCQljYXNlIE9NUF9NQVBfUFJFU0VOVF9UT0ZS T006CisJCQkgIG4tPnUubWFwX29wID0gT01QX01BUF9QUkVTRU5UX0ZST007CisJCQkgIGJy ZWFrOworCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkJCSAgbi0+ dS5tYXBfb3AgPSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST007CisJCQkgIGJyZWFrOwog CQkJZGVmYXVsdDoKIAkJCSAgZ2ZjX2Vycm9yICgiVEFSR0VUIEVYSVQgREFUQSB3aXRoIG1h cC10eXBlIG90aGVyICIKIAkJCQkgICAgICJ0aGFuIEZST00sIFRPRlJPTSwgUkVMRUFTRSwg b3IgREVMRVRFIG9uICIKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5j YyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwppbmRleCA0MmI2MDhmM2QzNi4uNGFh MTZmYTg4ZGEgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYworKysg Yi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKQEAgLTMwOTksNiArMzA5OSwzMCBAQCBn ZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9jaywgZ2ZjX29tcF9jbGF1 c2VzICpjbGF1c2VzLAogCQkgIGFsd2F5c19tb2RpZmllciA9IHRydWU7CiAJCSAgT01QX0NM QVVTRV9TRVRfTUFQX0tJTkQgKG5vZGUsIEdPTVBfTUFQX0FMV0FZU19UT0ZST00pOwogCQkg IGJyZWFrOworCQljYXNlIE9NUF9NQVBfUFJFU0VOVF9BTExPQzoKKwkJICBPTVBfQ0xBVVNF X1NFVF9NQVBfS0lORCAobm9kZSwgR09NUF9NQVBfUFJFU0VOVF9BTExPQyk7CisJCSAgYnJl YWs7CisJCWNhc2UgT01QX01BUF9QUkVTRU5UX1RPOgorCQkgIE9NUF9DTEFVU0VfU0VUX01B UF9LSU5EIChub2RlLCBHT01QX01BUF9QUkVTRU5UX1RPKTsKKwkJICBicmVhazsKKwkJY2Fz ZSBPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkJICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lORCAo bm9kZSwgR09NUF9NQVBfUFJFU0VOVF9GUk9NKTsKKwkJICBicmVhazsKKwkJY2FzZSBPTVBf TUFQX1BSRVNFTlRfVE9GUk9NOgorCQkgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EIChub2Rl LCBHT01QX01BUF9QUkVTRU5UX1RPRlJPTSk7CisJCSAgYnJlYWs7CisJCWNhc2UgT01QX01B UF9BTFdBWVNfUFJFU0VOVF9UTzoKKwkJICBhbHdheXNfbW9kaWZpZXIgPSB0cnVlOworCQkg IE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EIChub2RlLCBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9UTyk7CisJCSAgYnJlYWs7CisJCWNhc2UgT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9N OgorCQkgIGFsd2F5c19tb2RpZmllciA9IHRydWU7CisJCSAgT01QX0NMQVVTRV9TRVRfTUFQ X0tJTkQgKG5vZGUsIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST00pOworCQkgIGJyZWFr OworCQljYXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgorCQkgIGFsd2F5c19t b2RpZmllciA9IHRydWU7CisJCSAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKG5vZGUsIEdP TVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTSk7CisJCSAgYnJlYWs7CiAJCWNhc2UgT01Q X01BUF9SRUxFQVNFOgogCQkgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EIChub2RlLCBHT01Q X01BUF9SRUxFQVNFKTsKIAkJICBicmVhazsKQEAgLTM4OTQsNiArMzkxOCw4IEBAIGdmY190 cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJsb2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVzZXMg KmNsYXVzZXMsCiAJCSAgZ2NjX2Fzc2VydCAoUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAo cHRyKSkpOwogCQkgIE9NUF9DTEFVU0VfREVDTCAobm9kZSkgPSBidWlsZF9mb2xkX2luZGly ZWN0X3JlZiAocHRyKTsKIAkJfQorCSAgICAgIGlmIChuLT51LnByZXNlbnRfbW9kaWZpZXIp CisJCU9NUF9DTEFVU0VfTU9USU9OX1BSRVNFTlQgKG5vZGUpID0gMTsKIAkgICAgICBvbXBf Y2xhdXNlcyA9IGdmY190cmFuc19hZGRfY2xhdXNlIChub2RlLCBvbXBfY2xhdXNlcyk7CiAJ ICAgIH0KIAkgIGJyZWFrOwpAQCAtNDQzNSw2ICs0NDYxLDkgQEAgZ2ZjX3RyYW5zX29tcF9j bGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcywK IAljYXNlIE9NUF9ERUZBVUxUTUFQX0ZJUlNUUFJJVkFURToKIAkgIGJlaGF2aW9yID0gT01Q X0NMQVVTRV9ERUZBVUxUTUFQX0ZJUlNUUFJJVkFURTsKIAkgIGJyZWFrOworCWNhc2UgT01Q X0RFRkFVTFRNQVBfUFJFU0VOVDoKKwkgIGJlaGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxU TUFQX1BSRVNFTlQ7CisJICBicmVhazsKIAljYXNlIE9NUF9ERUZBVUxUTUFQX05PTkU6IGJl aGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxUTUFQX05PTkU7IGJyZWFrOwogCWNhc2UgT01Q X0RFRkFVTFRNQVBfREVGQVVMVDoKIAkgIGJlaGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxU TUFQX0RFRkFVTFQ7CmRpZmYgLS1naXQgYS9nY2MvZ2ltcGxpZnkuY2MgYi9nY2MvZ2ltcGxp ZnkuY2MKaW5kZXggNGFhNjIyOWZjNzQuLjkxNjQwZGVlY2VhIDEwMDY0NAotLS0gYS9nY2Mv Z2ltcGxpZnkuY2MKKysrIGIvZ2NjL2dpbXBsaWZ5LmNjCkBAIC03OTI2LDYgKzc5MjYsMTEg QEAgb21wX25vdGljZV92YXJpYWJsZSAoc3RydWN0IGdpbXBsaWZ5X29tcF9jdHggKmN0eCwg dHJlZSBkZWNsLCBib29sIGluX2NvZGUpCiAJCSAgZWxzZSBpZiAoY3R4LT5kZWZhdWx0bWFw W2dkbWtdCiAJCQkgICAmIChHT1ZEX01BUF8wTEVOX0FSUkFZIHwgR09WRF9GSVJTVFBSSVZB VEUpKQogCQkgICAgbmZsYWdzIHw9IGN0eC0+ZGVmYXVsdG1hcFtnZG1rXTsKKwkJICBlbHNl IGlmIChjdHgtPmRlZmF1bHRtYXBbZ2Rta10gJiBHT1ZEX01BUF9GT1JDRV9QUkVTRU5UKQor CQkgICAgeworCQkgICAgICBnY2NfYXNzZXJ0IChjdHgtPmRlZmF1bHRtYXBbZ2Rta10gJiBH T1ZEX01BUCk7CisJCSAgICAgIG5mbGFncyB8PSBjdHgtPmRlZmF1bHRtYXBbZ2Rta10gfCBH T1ZEX01BUF9BTExPQ19PTkxZOworCQkgICAgfQogCQkgIGVsc2UKIAkJICAgIHsKIAkJICAg ICAgZ2NjX2Fzc2VydCAoY3R4LT5kZWZhdWx0bWFwW2dkbWtdICYgR09WRF9NQVApOwpAQCAt OTEwMCw2ICs5MTA1LDEzIEBAIG9tcF9nZXRfYXR0YWNobWVudCAob21wX21hcHBpbmdfZ3Jv dXAgKmdycCkKICAgICBjYXNlIEdPTVBfTUFQX0ZPUkNFX1RPOgogICAgIGNhc2UgR09NUF9N QVBfRk9SQ0VfVE9GUk9NOgogICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfUFJFU0VOVDoKKyAg ICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CisgICAgY2FzZSBHT01QX01BUF9QUkVT RU5UX0ZST006CisgICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPOgorICAgIGNhc2UgR09N UF9NQVBfUFJFU0VOVF9UT0ZST006CisgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9GUk9NOgorICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CisgICAgY2Fz ZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006CiAgICAgY2FzZSBHT01QX01BUF9B TExPQzoKICAgICBjYXNlIEdPTVBfTUFQX1JFTEVBU0U6CiAgICAgY2FzZSBHT01QX01BUF9E RUxFVEU6CkBAIC05MzMxLDYgKzkzNDMsMTMgQEAgb21wX2dyb3VwX2Jhc2UgKG9tcF9tYXBw aW5nX2dyb3VwICpncnAsIHVuc2lnbmVkIGludCAqY2hhaW5lZCwKICAgICBjYXNlIEdPTVBf TUFQX0ZPUkNFX1RPOgogICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfVE9GUk9NOgogICAgIGNh c2UgR09NUF9NQVBfRk9SQ0VfUFJFU0VOVDoKKyAgICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRf QUxMT0M6CisgICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisgICAgY2FzZSBHT01Q X01BUF9QUkVTRU5UX1RPOgorICAgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006Cisg ICAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NOgorICAgIGNhc2UgR09NUF9N QVBfQUxXQVlTX1BSRVNFTlRfVE86CisgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9UT0ZST006CiAgICAgY2FzZSBHT01QX01BUF9BTExPQzoKICAgICBjYXNlIEdPTVBfTUFQ X1JFTEVBU0U6CiAgICAgY2FzZSBHT01QX01BUF9ERUxFVEU6CkBAIC0xMDgxMiw2ICsxMDgz MSw1MCBAQCBnaW1wbGlmeV9zY2FuX29tcF9jbGF1c2VzICh0cmVlICpsaXN0X3AsIGdpbXBs ZV9zZXEgKnByZV9wLAogCSAgZGVsZXRlIGdycG1hcDsKIAkgIGRlbGV0ZSBncm91cHM7CiAJ fQorCisgICAgICAvKiBPcGVuTVAgbWFwIGNsYXVzZXMgd2l0aCAncHJlc2VudCcgbmVlZCB0 byBnbyBpbiBmcm9udCBvZiB0aG9zZQorCSB3aXRob3V0LiAgKi8KKyAgICAgIHRyZWUgcHJl c2VudF9tYXBfaGVhZCA9IE5VTEw7CisgICAgICB0cmVlICpwcmVzZW50X21hcF90YWlsX3Ag PSAmcHJlc2VudF9tYXBfaGVhZDsKKyAgICAgIHRyZWUgKmZpcnN0X21hcF9jbGF1c2VfcCA9 IE5VTEw7CisKKyAgICAgIGZvciAodHJlZSAqY19wID0gbGlzdF9wOyAqY19wOyApCisJewor CSAgdHJlZSBjID0gKmNfcDsKKwkgIHRyZWUgKm5leHRfY19wID0gJk9NUF9DTEFVU0VfQ0hB SU4gKGMpOworCisJICBpZiAoT01QX0NMQVVTRV9DT0RFIChjKSA9PSBPTVBfQ0xBVVNFX01B UCkKKwkgICAgeworCSAgICAgIGlmICghZmlyc3RfbWFwX2NsYXVzZV9wKQorCQlmaXJzdF9t YXBfY2xhdXNlX3AgPSBjX3A7CisJICAgICAgc3dpdGNoIChPTVBfQ0xBVVNFX01BUF9LSU5E IChjKSkKKwkJeworCQljYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CisJCWNhc2UgR09N UF9NQVBfUFJFU0VOVF9GUk9NOgorCQljYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE86CisJCWNh c2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJCSAgbmV4dF9jX3AgPSBjX3A7CisJCSAg KmNfcCA9IE9NUF9DTEFVU0VfQ0hBSU4gKGMpOworCisJCSAgT01QX0NMQVVTRV9DSEFJTiAo YykgPSBOVUxMOworCQkgICpwcmVzZW50X21hcF90YWlsX3AgPSBjOworCQkgIHByZXNlbnRf bWFwX3RhaWxfcCA9ICZPTVBfQ0xBVVNFX0NIQUlOIChjKTsKKworCQkgIGJyZWFrOworCisJ CWRlZmF1bHQ6CisJCSAgYnJlYWs7CisJCX0KKwkgICAgfQorCisJICBjX3AgPSBuZXh0X2Nf cDsKKwl9CisgICAgICBpZiAoZmlyc3RfbWFwX2NsYXVzZV9wICYmIHByZXNlbnRfbWFwX2hl YWQpCisJeworCSAgdHJlZSBuZXh0ID0gKmZpcnN0X21hcF9jbGF1c2VfcDsKKwkgICpmaXJz dF9tYXBfY2xhdXNlX3AgPSBwcmVzZW50X21hcF9oZWFkOworCSAgKnByZXNlbnRfbWFwX3Rh aWxfcCA9IG5leHQ7CisJfQogICAgIH0KICAgZWxzZSBpZiAocmVnaW9uX3R5cGUgJiBPUlRf QUNDKQogICAgIHsKQEAgLTExOTY4LDYgKzEyMDMxLDkgQEAgZ2ltcGxpZnlfc2Nhbl9vbXBf Y2xhdXNlcyAodHJlZSAqbGlzdF9wLCBnaW1wbGVfc2VxICpwcmVfcCwKIAkgICAgICBjYXNl IE9NUF9DTEFVU0VfREVGQVVMVE1BUF9OT05FOgogCQljdHgtPmRlZmF1bHRtYXBbZ2Rta10g PSAwOwogCQlicmVhazsKKwkgICAgICBjYXNlIE9NUF9DTEFVU0VfREVGQVVMVE1BUF9QUkVT RU5UOgorCQljdHgtPmRlZmF1bHRtYXBbZ2Rta10gPSBHT1ZEX01BUCB8IEdPVkRfTUFQX0ZP UkNFX1BSRVNFTlQ7CisJCWJyZWFrOwogCSAgICAgIGNhc2UgT01QX0NMQVVTRV9ERUZBVUxU TUFQX0RFRkFVTFQ6CiAJCXN3aXRjaCAoZ2RtaykKIAkJICB7CkBAIC0xMjQxMiw2ICsxMjQ3 OCw5IEBAIGdpbXBsaWZ5X2FkanVzdF9vbXBfY2xhdXNlc18xIChzcGxheV90cmVlX25vZGUg biwgdm9pZCAqZGF0YSkKIAljYXNlIEdPVkRfTUFQX0ZPUkNFX1BSRVNFTlQ6CiAJICBraW5k ID0gR09NUF9NQVBfRk9SQ0VfUFJFU0VOVDsKIAkgIGJyZWFrOworCWNhc2UgR09WRF9NQVBf Rk9SQ0VfUFJFU0VOVCB8IEdPVkRfTUFQX0FMTE9DX09OTFk6CisJICBraW5kID0gR09NUF9N QVBfUFJFU0VOVF9BTExPQzsKKwkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBnY2NfdW5yZWFj aGFibGUgKCk7CiAJfQpkaWZmIC0tZ2l0IGEvZ2NjL29tcC1sb3cuY2MgYi9nY2Mvb21wLWxv dy5jYwppbmRleCA5ZGIzM2QyYTQ4Yi4uMTg1N2I1Yjk2MGYgMTAwNjQ0Ci0tLSBhL2djYy9v bXAtbG93LmNjCisrKyBiL2djYy9vbXAtbG93LmNjCkBAIC0xNTc2LDYgKzE1NzYsOSBAQCBz Y2FuX3NoYXJpbmdfY2xhdXNlcyAodHJlZSBjbGF1c2VzLCBvbXBfY29udGV4dCAqY3R4KQog CSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpICE9IEdPTVBfTUFQX0FMV0FZU19U TwogCSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpICE9IEdPTVBfTUFQX0FMV0FZ U19GUk9NCiAJICAgICAgJiYgT01QX0NMQVVTRV9NQVBfS0lORCAoYykgIT0gR09NUF9NQVBf QUxXQVlTX1RPRlJPTQorCSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpICE9IEdP TVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPCisJICAgICAgJiYgT01QX0NMQVVTRV9NQVBfS0lO RCAoYykgIT0gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTQorCSAgICAgICYmIE9NUF9D TEFVU0VfTUFQX0tJTkQgKGMpICE9IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTQog CSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpICE9IEdPTVBfTUFQX1RPX1BTRVQK IAkgICAgICAmJiBpc19nbG9iYWxfdmFyIChtYXliZV9sb29rdXBfZGVjbF9pbl9vdXRlcl9j dHggKGRlY2wsIGN0eCkpCiAJICAgICAgJiYgdmFycG9vbF9ub2RlOjpnZXRfY3JlYXRlIChk ZWNsKS0+b2ZmbG9hZGFibGUKQEAgLTEyNzk3LDYgKzEyODAwLDE0IEBAIGxvd2VyX29tcF90 YXJnZXQgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRleHQgKmN0eCkK IAkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNf RlJPTToKIAkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgIGNhc2UgR09NUF9N QVBfUFJFU0VOVF9BTExPQzoKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9GUk9NOgorCSAg Y2FzZSBHT01QX01BUF9QUkVTRU5UX1RPOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RP RlJPTToKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKKwkgIGNhc2Ug R09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19Q UkVTRU5UX1RPRlJPTToKKwogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUE9JTlRF UjoKIAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1JFRkVSRU5DRToKIAkgIGNhc2Ug R09NUF9NQVBfU1RSVUNUOgpAQCAtMTMzMzgsNiArMTMzNDksMTMgQEAgbG93ZXJfb21wX3Rh cmdldCAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wLCBvbXBfY29udGV4dCAqY3R4KQog CQkgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE86CiAJCSAgICBjYXNlIEdPTVBfTUFQX0FM V0FZU19GUk9NOgogCQkgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE9GUk9NOgorCQkgICAg Y2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgorCQkgICAgY2FzZSBHT01QX01BUF9QUkVT RU5UX1RPOgorCQkgICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJCSAgICBjYXNl IEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCQkgICAgY2FzZSBHT01QX01BUF9BTFdBWVNf UFJFU0VOVF9UTzoKKwkJICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToK KwkJICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgogCQkgICAgY2Fz ZSBHT01QX01BUF9SRUxFQVNFOgogCQkgICAgY2FzZSBHT01QX01BUF9GT1JDRV9UTzoKIAkJ ICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfRlJPTToKQEAgLTEzMzc3LDExICsxMzM5NSwxNSBA QCBsb3dlcl9vbXBfdGFyZ2V0IChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpX3AsIG9tcF9j b250ZXh0ICpjdHgpCiAJCXRraW5kX3plcm8gPSB0a2luZDsKIAkJYnJlYWs7CiAJICAgICAg Y2FzZSBPTVBfQ0xBVVNFX1RPOgotCQl0a2luZCA9IEdPTVBfTUFQX1RPOworCQl0a2luZAor CQkgID0gKE9NUF9DTEFVU0VfTU9USU9OX1BSRVNFTlQgKGMpCisJCSAgICAgPyBHT01QX01B UF9QUkVTRU5UX1RPIDogR09NUF9NQVBfVE8pOwogCQl0a2luZF96ZXJvID0gdGtpbmQ7CiAJ CWJyZWFrOwogCSAgICAgIGNhc2UgT01QX0NMQVVTRV9GUk9NOgotCQl0a2luZCA9IEdPTVBf TUFQX0ZST007CisJCXRraW5kCisJCSAgPSAoT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCAo YykKKwkJICAgICA/IEdPTVBfTUFQX1BSRVNFTlRfRlJPTSA6IEdPTVBfTUFQX0ZST00pOwog CQl0a2luZF96ZXJvID0gdGtpbmQ7CiAJCWJyZWFrOwogCSAgICAgIGRlZmF1bHQ6CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL2RlZmF1bHRtYXAtNC5j IGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9kZWZhdWx0bWFwLTQuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWFmZmY3ZWEzOGYKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL2RlZmF1bHRt YXAtNC5jCkBAIC0wLDAgKzEsMjQgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtZ2ltcGxlIiB9ICovCisKKyNk ZWZpbmUgTiAxMDAwCisKK3ZvaWQKK2ZvbyAodm9pZCkKK3sKKyAgaW50IGFbTl0sIGJbTl0s IGNbTl07CisKKyAgLyogU2hvdWxkIGdlbmVyYXRlIGltcGxpY2l0ICdtYXAocHJlc2VudCwg YWxsb2MpJyBjbGF1c2VzLiAgKi8KKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRlZmF1bHRtYXAg KHByZXNlbnQ6IGFnZ3JlZ2F0ZSkKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykK KyAgICAgIGNbaV0gPSBhW2ldICsgYltpXTsKKworICAvKiBTaG91bGQgZ2VuZXJhdGUgaW1w bGljaXQgJ21hcChwcmVzZW50LCBhbGxvYyknIGNsYXVzZXMsCisgICAgIGFuZCB0aGV5IHNo b3VsZCBnbyBiZWZvcmUgb3RoZXIgbm9uLXByZXNlbnQgY2xhdXNlcy4gICovCisgICNwcmFn bWEgb21wIHRhcmdldCBtYXAoZnJvbTogYykgZGVmYXVsdG1hcCAocHJlc2VudDogYWdncmVn YXRlKQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQorICAgICAgY1tpXSA9IGFb aV0gKyBiW2ldOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInByYWdt YSBvbXAgdGFyZ2V0LipkZWZhdWx0bWFwXFwocHJlc2VudDphZ2dyZWdhdGVcXCkgbWFwXFwo cHJlc2VudCxhbGxvYzpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcXFtpbXBsaWNpdFxcXF1c XCkgbWFwXFwocHJlc2VudCxhbGxvYzpiIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcXFtpbXBs aWNpdFxcXF1cXCkgbWFwXFwocHJlc2VudCxhbGxvYzphIFxcXFtsZW46IFxbMC05XF0rXFxc XVxcXFtpbXBsaWNpdFxcXF1cXCkiICJnaW1wbGUiIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldC4qZGVmYXVsdG1hcFxcKHByZXNl bnQ6YWdncmVnYXRlXFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YiBcXFxbbGVuOiBcWzAtOVxd K1xcXF1cXFxbaW1wbGljaXRcXFxdXFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YSBcXFxbbGVu OiBcWzAtOVxdK1xcXF1cXFxbaW1wbGljaXRcXFxdXFwpIG1hcFxcKGZyb206YyBcXFxbbGVu OiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9tYXAtNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vZ29tcC9tYXAtNi5jCmluZGV4IDZlZTU5NzE0ODQ3Li44YzViN2Y3Y2NhMSAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9tYXAtNi5jCisr KyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvbWFwLTYuYwpAQCAtMTMsMTAg KzEzLDEwIEBAIGZvbyAodm9pZCkKICAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAodG86YSkK ICAgOwogCi0gICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGEgdG86IGIpIC8qIHsgZGctZXJy b3IgIicjcHJhZ21hIG9tcCB0YXJnZXQnIHdpdGggbW9kaWZpZXIgb3RoZXIgdGhhbiAnYWx3 YXlzJyBvciAnY2xvc2UnIiB9ICovCisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGEgdG86 IGIpIC8qIHsgZGctZXJyb3IgIicjcHJhZ21hIG9tcCB0YXJnZXQnIHdpdGggbW9kaWZpZXIg b3RoZXIgdGhhbiAnYWx3YXlzJywgJ2Nsb3NlJyBvciAncHJlc2VudCciIH0gKi8KICAgOwog Ci0gICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGNsb3NlLCBhIHRvOiBiKSAvKiB7IGRnLWVy cm9yICInI3ByYWdtYSBvbXAgdGFyZ2V0JyB3aXRoIG1vZGlmaWVyIG90aGVyIHRoYW4gJ2Fs d2F5cycgb3IgJ2Nsb3NlJyIgfSAqLworICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChjbG9z ZSwgYSB0bzogYikgLyogeyBkZy1lcnJvciAiJyNwcmFnbWEgb21wIHRhcmdldCcgd2l0aCBt b2RpZmllciBvdGhlciB0aGFuICdhbHdheXMnLCAnY2xvc2UnIG9yICdwcmVzZW50JyIgfSAq LwogICA7CiAKICAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAoY2xvc2UgYSkgLyogeyBkZy1l cnJvciAiJ2Nsb3NlJyB1bmRlY2xhcmVkIiAiIiB7IHRhcmdldCBjIH0gfSAqLyAKQEAgLTgw LDkgKzgwLDU2IEBAIGZvbyAodm9pZCkKICAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAoY2xv c2UgY2xvc2UgdG86YSkgLyogeyBkZy1lcnJvciAidG9vIG1hbnkgJ2Nsb3NlJyBtb2RpZmll cnMiIH0gKi8KICAgOwogCi0gICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGFsd2F5cyB0byA6 IGEpIG1hcCAoY2xvc2UgdG8gOiBiKQorICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChwcmVz ZW50ICwgcHJlc2VudCAsIHRvOmEpIC8qIHsgZGctZXJyb3IgInRvbyBtYW55ICdwcmVzZW50 JyBtb2RpZmllcnMiIH0gKi8KICAgOwogCisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKHBy ZXNlbnQgIHByZXNlbnQgLCB0bzphKSAvKiB7IGRnLWVycm9yICJ0b28gbWFueSAncHJlc2Vu dCcgbW9kaWZpZXJzIiB9ICovCisgIDsKKworICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChw cmVzZW50ICwgcHJlc2VudCAgdG86YSkgLyogeyBkZy1lcnJvciAidG9vIG1hbnkgJ3ByZXNl bnQnIG1vZGlmaWVycyIgfSAqLworICA7CisKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAo cHJlc2VudCAgcHJlc2VudCAgdG86YSkgLyogeyBkZy1lcnJvciAidG9vIG1hbnkgJ3ByZXNl bnQnIG1vZGlmaWVycyIgfSAqLworICA7CisKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAo YWx3YXlzIHRvIDogYSkgbWFwIChjbG9zZSB0byA6IGIpIG1hcCAocHJlc2VudCx0b2Zyb20g OiBiMSkgbWFwKGFsd2F5cyxwcmVzZW50LGFsbG9jIDogYjIpIG1hcChjbG9zZSwgZnJvbTog YjMpCisgIDsKKworICAjcHJhZ21hIG9tcCB0YXJnZXQgZGF0YSBtYXAodG9mcm9tOmIxKQor ICA7CisgICNwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcChjbG9zZSx0b2Zyb206YjEpCisg IDsKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwKGNsb3NlIGFsd2F5cyx0b2Zyb206 YjEpCisgIDsKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwKGNsb3NlIGFsd2F5cyx0 b2Zyb206YjEpCisgIDsKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwKGNsb3NlIHBy ZXNlbnQsdG9mcm9tOmIxKQorICA7CisgICNwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcChj bG9zZSBwcmVzZW50LHRvZnJvbTpiMSkKKyAgOworICAjcHJhZ21hIG9tcCB0YXJnZXQgZGF0 YSBtYXAoYWx3YXlzIGNsb3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICA7CisgICNwcmFnbWEg b21wIHRhcmdldCBkYXRhIG1hcChhbHdheXMgY2xvc2UgcHJlc2VudCx0b2Zyb206YjEpCisg IDsKKworICAjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAoYWxsb2M6IGEpIG1h cCh0bzpiKSBtYXAodG9mcm9tOmIxKQorICAjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0 YSBtYXAoY2xvc2UsIGFsbG9jOiBhKSBtYXAoY2xvc2UsdG86YikgbWFwKGNsb3NlLHRvZnJv bTpiMSkKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKGFsd2F5cyxhbGxv YzogYSkgbWFwKGFsd2F5cyx0bzpiKSBtYXAoY2xvc2UgYWx3YXlzLHRvZnJvbTpiMSkKKyAg I3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKGFsd2F5cyxjbG9zZSxhbGxvYzog YSkgbWFwKGNsb3NlLGFsd2F5cyx0bzpiKSBtYXAoY2xvc2UgYWx3YXlzLHRvZnJvbTpiMSkK KyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKHByZXNlbnQsYWxsb2M6IGEp IG1hcChwcmVzZW50LHRvOmIpIG1hcChjbG9zZSBwcmVzZW50LHRvZnJvbTpiMSkKKyAgI3By YWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKHByZXNlbnQsY2xvc2UsYWxsb2M6IGEp IG1hcChjbG9zZSxwcmVzZW50LHRvOmIpIG1hcChjbG9zZSBwcmVzZW50LHRvZnJvbTpiMSkK KyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKHByZXNlbnQsYWx3YXlzLGFs bG9jOiBhKSBtYXAoYWx3YXlzLHByZXNlbnQsdG86YikgbWFwKGFsd2F5cyBjbG9zZSBwcmVz ZW50LHRvZnJvbTpiMSkKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKHBy ZXNlbnQsYWx3YXlzLGNsb3NlLGFsbG9jOiBhKSBtYXAoY2xvc2UscHJlc2VudCxhbHdheXMs dG86YikgbWFwKGFsd2F5cyBjbG9zZSBwcmVzZW50LHRvZnJvbTpiMSkKKworICAjcHJhZ21h IG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChkZWxldGU6IGEpIG1hcChyZWxlYXNlOmIpIG1h cChmcm9tOmIxKQorICAjcHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChjbG9zZSxk ZWxldGU6IGEpIG1hcChjbG9zZSxyZWxlYXNlOmIpIG1hcChjbG9zZSxmcm9tOmIxKQorICAj cHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChhbHdheXMsZGVsZXRlOiBhKSBtYXAo YWx3YXlzLHJlbGVhc2U6YikgbWFwKGNsb3NlIGFsd2F5cyxmcm9tOmIxKQorICAjcHJhZ21h IG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChhbHdheXMsY2xvc2UsZGVsZXRlOiBhKSBtYXAo Y2xvc2UsYWx3YXlzLHJlbGVhc2U6YikgbWFwKGNsb3NlIGFsd2F5cyxmcm9tOmIxKQorICAj cHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChwcmVzZW50LGRlbGV0ZTogYSkgbWFw KHByZXNlbnQscmVsZWFzZTpiKSBtYXAoY2xvc2UgcHJlc2VudCxmcm9tOmIxKQorICAjcHJh Z21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChwcmVzZW50LGNsb3NlLGRlbGV0ZTogYSkg bWFwKGNsb3NlLHByZXNlbnQscmVsZWFzZTpiKSBtYXAoY2xvc2UgcHJlc2VudCxmcm9tOmIx KQorICAjcHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcChwcmVzZW50LGFsd2F5cyxk ZWxldGU6IGEpIG1hcChhbHdheXMscHJlc2VudCxyZWxlYXNlOmIpIG1hcChhbHdheXMgY2xv c2UgcHJlc2VudCxmcm9tOmIxKQorICAjcHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1h cChwcmVzZW50LGFsd2F5cyxjbG9zZSxkZWxldGU6IGEpIG1hcChjbG9zZSxwcmVzZW50LGFs d2F5cyxyZWxlYXNlOmIpIG1hcChhbHdheXMgY2xvc2UgcHJlc2VudCxmcm9tOmIxKQorCiAg IGludCBjbG9zZSA9IDA7CiAgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGNsb3NlKSAKICAg OwpAQCAtMTMzLDMgKzE4MCwyMCBAQCBmb28gKHZvaWQpCiAvKiB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAgInByYWdtYSBvbXAgdGFyZ2V0IG1hcFxcKGFsd2F5cyx0bzpiNSIgIm9y aWdpbmFsIiB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21h IG9tcCB0YXJnZXQgbWFwXFwoYWx3YXlzLHRvOmI2IiAib3JpZ2luYWwiIH0gfSAqLwogLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldCBtYXBcXChh bHdheXMsdG86YjdcXCkgbWFwXFwoYWx3YXlzLHRvOmNsb3NlXFwpIG1hcFxcKGFsd2F5cyx0 bzphbHdheXNcXCkiICJvcmlnaW5hbCIgfSB9ICovCisKKy8qIE5vdGU6ICdhbHdheXMsYWxs b2MnIGlzIHRoZSBzYW1lIGFzICdhbGxvYyc7IGhlbmNlLCB0aGVyZSBpcyBubyAnYWx3YXlz JyBmb3IgJ2InLiBBZGRpdGlvbmFsbHksICdjbG9zZScgaXMgaWdub3JlZC4gKi8KKworLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICIjcHJhZ21hIG9tcCB0YXJnZXQgbWFwXFwo ZnJvbTpiM1xcKSBtYXBcXChwcmVzZW50LGFsbG9jOmIyXFwpIG1hcFxcKHByZXNlbnQsdG9m cm9tOmIxXFwpIG1hcFxcKHRvOmJcXCkgbWFwXFwoYWx3YXlzLHRvOmFcXCkiICJvcmlnaW5h bCIgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3By YWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwodG9mcm9tOmIxXFwpXFtcclxuXF0iIDIgIm9y aWdpbmFsIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi I3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwoYWx3YXlzLHRvZnJvbTpiMVxcKVxbXHJc blxdIiAyICJvcmlnaW5hbCIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcFxcKHByZXNlbnQsdG9mcm9t OmIxXFwpXFtcclxuXF0iIDIgIm9yaWdpbmFsIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwoYWx3 YXlzLHByZXNlbnQsdG9mcm9tOmIxXFwpXFtcclxuXF0iIDIgIm9yaWdpbmFsIiB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFy Z2V0IGVudGVyIGRhdGEgbWFwXFwodG86YjFcXCkgbWFwXFwodG86YlxcKSBtYXBcXChhbGxv YzphXFwpXFtcclxuXF0iIDIgIm9yaWdpbmFsIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFw XFwoYWx3YXlzLHRvOmIxXFwpIG1hcFxcKGFsd2F5cyx0bzpiXFwpIG1hcFxcKGFsbG9jOmFc XClcW1xyXG5cXSIgMiAib3JpZ2luYWwiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXBcXChw cmVzZW50LHRvOmIxXFwpIG1hcFxcKHByZXNlbnQsdG86YlxcKSBtYXBcXChwcmVzZW50LGFs bG9jOmFcXClcW1xyXG5cXSIgMiAib3JpZ2luYWwiIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBt YXBcXChhbHdheXMscHJlc2VudCx0bzpiMVxcKSBtYXBcXChhbHdheXMscHJlc2VudCx0bzpi XFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YVxcKVxbXHJcblxdIiAyICJvcmlnaW5hbCIgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21w IHRhcmdldCBleGl0IGRhdGEgbWFwXFwoZnJvbTpiMVxcKSBtYXBcXChyZWxlYXNlOmJcXCkg bWFwXFwoZGVsZXRlOmFcXClcW1xyXG5cXSIgMiAib3JpZ2luYWwiIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZXhp dCBkYXRhIG1hcFxcKGFsd2F5cyxmcm9tOmIxXFwpIG1hcFxcKHJlbGVhc2U6YlxcKSBtYXBc XChkZWxldGU6YVxcKVxbXHJcblxdIiAyICJvcmlnaW5hbCIgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBleGl0IGRh dGEgbWFwXFwocHJlc2VudCxmcm9tOmIxXFwpIG1hcFxcKHJlbGVhc2U6YlxcKSBtYXBcXChk ZWxldGU6YVxcKVxbXHJcblxdIiAyICJvcmlnaW5hbCIgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBleGl0IGRhdGEg bWFwXFwoYWx3YXlzLHByZXNlbnQsZnJvbTpiMVxcKSBtYXBcXChyZWxlYXNlOmJcXCkgbWFw XFwoZGVsZXRlOmFcXClcW1xyXG5cXSIgMiAib3JpZ2luYWwiIH0gfSAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9tYXAtOS5jIGIvZ2NjL3Rlc3Rz dWl0ZS9jLWMrKy1jb21tb24vZ29tcC9tYXAtOS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40YjRiZDZkMmFhMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvbWFwLTkuYwpAQCAtMCwwICsxLDMyIEBACisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1m ZHVtcC10cmVlLWdpbXBsZSIgfSAqLworCisjZGVmaW5lIE4gMTAwMAorCit2b2lkCitmb28g KHZvaWQpCit7CisgIGludCBhW05dLCBiW05dLCBjW05dOworCisgIC8qIFNob3VsZCBiZSBh YmxlIHRvIHBhcnNlICdwcmVzZW50JyBtYXAgbW9kaWZpZXIuICAqLworICAjcHJhZ21hIG9t cCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKHByZXNlbnQsIHRvOiBhLCBiKQorCisgICNwcmFn bWEgb21wIHRhcmdldCBkYXRhIG1hcCAocHJlc2VudCwgdG86IGEsIGIpIG1hcCAoYWx3YXlz LCBwcmVzZW50LCBmcm9tOiBjKQorCisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKHByZXNl bnQsIHRvOiBhLCBiKSBtYXAgKHByZXNlbnQsIGZyb206IGMpCisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBOOyBpKyspCisgICAgICBjW2ldID0gYVtpXSArIGJbaV07CisKKyAgI3ByYWdt YSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXAgKGFsd2F5cywgcHJlc2VudCwgZnJvbTogYykK KworICAvKiBNYXAgY2xhdXNlcyB3aXRoICdwcmVzZW50JyBtb2RpZmllciBzaG91bGQgZ28g YWhlYWQgb2YgdGhvc2Ugd2l0aG91dC4gICovCisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAg KHRvOiBhKSBtYXAgKHByZXNlbnQsIHRvOiBiKSBtYXAgKGZyb206IGMpCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBOOyBpKyspCisgICAgICBjW2ldID0gYVtpXSArIGJbaV07Cit9CisK Ky8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQgZW50 ZXIgZGF0YSBtYXBcXChwcmVzZW50LHRvOmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1h cFxcKHByZXNlbnQsdG86YSBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdl dCBkYXRhIG1hcFxcKHByZXNlbnQsdG86YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFw XFwocHJlc2VudCx0bzphIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXChhbHdheXMs cHJlc2VudCxmcm9tOmMgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIiAiZ2ltcGxlIiB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQu Km1hcFxcKHByZXNlbnQsZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXChw cmVzZW50LHRvOmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxcKHByZXNlbnQsdG86 YSBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldCBleGl0IGRhdGEgbWFw XFwoYWx3YXlzLHByZXNlbnQsZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdp bXBsZSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInByYWdtYSBv bXAgdGFyZ2V0LiptYXBcXChwcmVzZW50LHRvOmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwp IG1hcFxcKGZyb206YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFwXFwodG86YSBcXFxb bGVuOiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtdXBkYXRlLTEuYyBiL2djYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LXVwZGF0ZS0xLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ0MDhhYjc1MjU1Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtdXBkYXRl LTEuYwpAQCAtMCwwICsxLDE1IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBk Zy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mZHVtcC10cmVlLWdpbXBsZSIgfSAqLworCisjZGVm aW5lIE4gMTAwMAorCit2b2lkCitmb28gKHZvaWQpCit7CisgIGludCBhW05dLCBiW05dLCBj LCBkLCBlOworCisgIC8qIFNob3VsZCBiZSBhYmxlIHRvIHBhcnNlIHByZXNlbnQgaW4gdG8v ZnJvbSBjbGF1c2VzIG9mICd0YXJnZXQgdXBkYXRlJy4gICovCisgICNwcmFnbWEgb21wIHRh cmdldCB1cGRhdGUgdG8oYykgdG8ocHJlc2VudDogYSkgZnJvbShkKSBmcm9tKHByZXNlbnQ6 IGIpIHRvKGUpCit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiI3ByYWdt YSBvbXAgdGFyZ2V0IHVwZGF0ZSB0b1xcKGUgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIGZy b21cXChwcmVzZW50OmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIGZyb21cXChkIFxcXFts ZW46IFxbMC05XF0rXFxcXVxcKSB0b1xcKHByZXNlbnQ6YSBcXFxbbGVuOiBcWzAtOVxdK1xc XF1cXCkgdG9cXChjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVmYXVsdG1h cC0xLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWZhdWx0bWFwLTEu ZjkwCmluZGV4IDI5OWQ5NzFmMjNjLi4xZjFiODUyOGFlZiAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRtYXAtMS5mOTAKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRtYXAtMS5mOTAKQEAgLTIsNyArMiw3 IEBACiAKIGltcGxpY2l0IG5vbmUKIAotISRvbXAgdGFyZ2V0IGRlZmF1bHRtYXAoYmFyKSAg ISB7IGRnLWVycm9yICIyNTogRXhwZWN0ZWQgQUxMT0MsIFRPLCBGUk9NLCBUT0ZST00sIEZJ UlNUUFJJVkFURSwgTk9ORSBvciBERUZBVUxUIiB9CishJG9tcCB0YXJnZXQgZGVmYXVsdG1h cChiYXIpICAhIHsgZGctZXJyb3IgIjI1OiBFeHBlY3RlZCBBTExPQywgVE8sIEZST00sIFRP RlJPTSwgRklSU1RQUklWQVRFLCBQUkVTRU5ULCBOT05FIG9yIERFRkFVTFQiIH0KIAogISRv bXAgdGFyZ2V0IGRlZmF1bHRtYXAgKCBhbGxvYzogZm9vKSAgISB7IGRnLWVycm9yICIzNDog RXhwZWN0ZWQgU0NBTEFSLCBBR0dSRUdBVEUsIEFMTE9DQVRBQkxFIG9yIFBPSU5URVIiIH0K IApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRt YXAtOC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVmYXVsdG1hcC04 LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjY5YTYyM2Y3 NDYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAv ZGVmYXVsdG1hcC04LmY5MApAQCAtMCwwICsxLDI2IEBACishIHsgZGctZG8gY29tcGlsZSB9 CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1naW1wbGUiIH0KKwor cHJvZ3JhbSBtYWluCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6 IE4gPSAxMDAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgYyhOKSwgaQorICAKKyAgISBT aG91bGQgZ2VuZXJhdGUgaW1wbGljaXQgJ21hcChwcmVzZW50LCBhbGxvYyknIGNsYXVzZXMu CisgICEkb21wIHRhcmdldCBkZWZhdWx0bWFwIChwcmVzZW50OiBhZ2dyZWdhdGUpCisgICAg ZG8gaSA9IDEsIE4KKyAgICAgIGMoaSkgPSBhKGkpICsgYihpKQorICAgIGVuZCBkbworICAh JG9tcCBlbmQgdGFyZ2V0CisKKyAgISBTaG91bGQgZ2VuZXJhdGUgaW1wbGljaXQgJ21hcChw cmVzZW50LCBhbGxvYyknIGNsYXVzZXMsCisgICEgYW5kIHRoZXkgc2hvdWxkIGdvIGJlZm9y ZSBvdGhlciBub24tcHJlc2VudCBjbGF1c2VzLgorICAhJG9tcCB0YXJnZXQgbWFwKGZyb206 IGMpIGRlZmF1bHRtYXAgKHByZXNlbnQ6IGFnZ3JlZ2F0ZSkKKyAgICBkbyBpID0gMSwgTgor ICAgICAgYyhpKSA9IGEoaSkgKyBiKGkpCisgICAgZW5kIGRvCisgICEkb21wIGVuZCB0YXJn ZXQKK2VuZCBwcm9ncmFtCisgIAorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInBy YWdtYSBvbXAgdGFyZ2V0LipkZWZhdWx0bWFwXFwocHJlc2VudDphZ2dyZWdhdGVcXCkuKm1h cFxcKHByZXNlbnQsYWxsb2M6YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1wbGljaXRc XFxdXFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxb aW1wbGljaXRcXFxdXFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YSBcXFxbbGVuOiBcWzAtOVxd K1xcXF1cXFxbaW1wbGljaXRcXFxdXFwpIiAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldC4qbWFwXFwocHJlc2VudCxhbGxv YzpiIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcXFtpbXBsaWNpdFxcXF1cXCkgbWFwXFwocHJl c2VudCxhbGxvYzphIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcXFtpbXBsaWNpdFxcXF1cXCkg bWFwXFwoZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBkZWZhdWx0bWFwXFwocHJl c2VudDphZ2dyZWdhdGVcXCkiICJnaW1wbGUiIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL21hcC0xMS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvbWFwLTExLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uOWViOTU2ZjFhYTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvbWFwLTExLmY5MApAQCAtMCwwICsxLDM0IEBACishIHsgZGct ZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1n aW1wbGUiIH0KKworcHJvZ3JhbSBtYWluCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwg cGFyYW1ldGVyIDo6IE4gPSAxMDAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgYyhOKSwg aQorCisgICEgU2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgJ3ByZXNlbnQnIG1hcCBtb2RpZmll ci4KKyAgISRvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwIChwcmVzZW50LCB0bzogYSwgYikK KworICAhJG9tcCB0YXJnZXQgZGF0YSBtYXAgKHByZXNlbnQsIHRvOiBhLCBiKSBtYXAgKGFs d2F5cywgcHJlc2VudCwgZnJvbTogYykKKyAgICAhJG9tcCB0YXJnZXQgbWFwIChwcmVzZW50 LCB0bzogYSwgYikgbWFwIChwcmVzZW50LCBmcm9tOiBjKQorICAgICAgZG8gaSA9IDEsIE4K KyAgICAgICAgYyhpKSA9IGEoaSkgKyBiKGkpCisgICAgICBlbmQgZG8KKyAgICAhJG9tcCBl bmQgdGFyZ2V0CisgICEkb21wIGVuZCB0YXJnZXQgZGF0YQorCisgICEkb21wIHRhcmdldCBl eGl0IGRhdGEgbWFwIChhbHdheXMsIHByZXNlbnQsIGZyb206IGMpCisKKyAgISBNYXAgY2xh dXNlcyB3aXRoICdwcmVzZW50JyBtb2RpZmllciBzaG91bGQgZ28gYWhlYWQgb2YgdGhvc2Ug d2l0aG91dC4KKyAgISRvbXAgdGFyZ2V0IG1hcCAodG86IGEpIG1hcCAocHJlc2VudCwgdG86 IGIpIG1hcCAoZnJvbTogYykKKyAgICBkbyBpID0gMSwgTgorICAgICAgYyhpKSA9IGEoaSkg KyBiKGkpCisgICAgZW5kIGRvCisgICEkb21wIGVuZCB0YXJnZXQKK2VuZCBwcm9ncmFtCisK KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldCBlbnRl ciBkYXRhIG1hcFxcKHByZXNlbnQsdG86YSBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFw XFwocHJlc2VudCx0bzpiIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9 CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQgZGF0 YSBtYXBcXChwcmVzZW50LHRvOmEgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxcKHBy ZXNlbnQsdG86YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFwXFwoYWx3YXlzLHByZXNl bnQsZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQuKm1hcFxcKHBy ZXNlbnQsdG86YSBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFwXFwocHJlc2VudCx0bzpi IFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXChwcmVzZW50LGZyb206YyBcXFxbbGVu OiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAgInByYWdtYSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXBcXChhbHdheXMscHJl c2VudCxmcm9tOmMgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIiAiZ2ltcGxlIiB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldC4qbWFwXFwo cHJlc2VudCx0bzpiIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXCh0bzphIFxcXFts ZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXChmcm9tOmMgXFxcW2xlbjogXFswLTlcXStcXFxd XFwpIiAiZ2ltcGxlIiB9IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9tYXAtMTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL21h cC0xMi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0YmQw MWY1ZjVhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL21hcC0xMi5mOTAKQEAgLTAsMCArMSw2NyBAQAorISB7IGRnLWFkZGl0aW9uYWwtb3B0 aW9ucyAiLWZkdW1wLXRyZWUtb21wbG93ZXIiIH0KKworc3Vicm91dGluZSBmb28KKyAgaW1w bGljaXQgbm9uZQorICBpbnRlZ2VyIDo6IGEsIGIsIGIxCisKKyAgISRvbXAgdGFyZ2V0IGRh dGEgbWFwKHRvZnJvbTpiMSkKKyAgICBibG9jazsgZW5kIGJsb2NrCisgICEkb21wIHRhcmdl dCBkYXRhIG1hcChjbG9zZSx0b2Zyb206YjEpCisgICAgYmxvY2s7IGVuZCBibG9jaworICAh JG9tcCB0YXJnZXQgZGF0YSBtYXAoY2xvc2UgYWx3YXlzLHRvZnJvbTpiMSkKKyAgICBibG9j azsgZW5kIGJsb2NrCisgICEkb21wIHRhcmdldCBkYXRhIG1hcChjbG9zZSBhbHdheXMsdG9m cm9tOmIxKQorICAgIGJsb2NrOyBlbmQgYmxvY2sKKyAgISRvbXAgdGFyZ2V0IGRhdGEgbWFw KGNsb3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICAgIGJsb2NrOyBlbmQgYmxvY2sKKyAgISRv bXAgdGFyZ2V0IGRhdGEgbWFwKGNsb3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICAgIGJsb2Nr OyBlbmQgYmxvY2sKKyAgISRvbXAgdGFyZ2V0IGRhdGEgbWFwKGFsd2F5cyBjbG9zZSBwcmVz ZW50LHRvZnJvbTpiMSkKKyAgICBibG9jazsgZW5kIGJsb2NrCisgICEkb21wIHRhcmdldCBk YXRhIG1hcChhbHdheXMgY2xvc2UgcHJlc2VudCx0b2Zyb206YjEpCisgICAgYmxvY2s7IGVu ZCBibG9jaworCisgICEkb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcChhbGxvYzogYSkgbWFw KHRvOmIpIG1hcCh0b2Zyb206YjEpCisgICEkb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcChj bG9zZSwgYWxsb2M6IGEpIG1hcChjbG9zZSx0bzpiKSBtYXAoY2xvc2UsdG9mcm9tOmIxKQor ICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAoYWx3YXlzLGFsbG9jOiBhKSBtYXAoYWx3 YXlzLHRvOmIpIG1hcChjbG9zZSBhbHdheXMsdG9mcm9tOmIxKQorICAhJG9tcCB0YXJnZXQg ZW50ZXIgZGF0YSBtYXAoYWx3YXlzLGNsb3NlLGFsbG9jOiBhKSBtYXAoY2xvc2UsYWx3YXlz LHRvOmIpIG1hcChjbG9zZSBhbHdheXMsdG9mcm9tOmIxKQorICAhJG9tcCB0YXJnZXQgZW50 ZXIgZGF0YSBtYXAocHJlc2VudCxhbGxvYzogYSkgbWFwKHByZXNlbnQsdG86YikgbWFwKGNs b3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAo cHJlc2VudCxjbG9zZSxhbGxvYzogYSkgbWFwKGNsb3NlLHByZXNlbnQsdG86YikgbWFwKGNs b3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAo cHJlc2VudCxhbHdheXMsYWxsb2M6IGEpIG1hcChhbHdheXMscHJlc2VudCx0bzpiKSBtYXAo YWx3YXlzIGNsb3NlIHByZXNlbnQsdG9mcm9tOmIxKQorICAhJG9tcCB0YXJnZXQgZW50ZXIg ZGF0YSBtYXAocHJlc2VudCxhbHdheXMsY2xvc2UsYWxsb2M6IGEpIG1hcChjbG9zZSxwcmVz ZW50LGFsd2F5cyx0bzpiKSBtYXAoYWx3YXlzIGNsb3NlIHByZXNlbnQsdG9mcm9tOmIxKQor CisgICEkb21wIHRhcmdldCBleGl0IGRhdGEgbWFwKGRlbGV0ZTogYSkgbWFwKHJlbGVhc2U6 YikgbWFwKGZyb206YjEpCisgICEkb21wIHRhcmdldCBleGl0IGRhdGEgbWFwKGNsb3NlLGRl bGV0ZTogYSkgbWFwKGNsb3NlLHJlbGVhc2U6YikgbWFwKGNsb3NlLGZyb206YjEpCisgICEk b21wIHRhcmdldCBleGl0IGRhdGEgbWFwKGFsd2F5cyxkZWxldGU6IGEpIG1hcChhbHdheXMs cmVsZWFzZTpiKSBtYXAoY2xvc2UgYWx3YXlzLGZyb206YjEpCisgICEkb21wIHRhcmdldCBl eGl0IGRhdGEgbWFwKGFsd2F5cyxjbG9zZSxkZWxldGU6IGEpIG1hcChjbG9zZSxhbHdheXMs cmVsZWFzZTpiKSBtYXAoY2xvc2UgYWx3YXlzLGZyb206YjEpCisgICEkb21wIHRhcmdldCBl eGl0IGRhdGEgbWFwKHByZXNlbnQsZGVsZXRlOiBhKSBtYXAocHJlc2VudCxyZWxlYXNlOmIp IG1hcChjbG9zZSBwcmVzZW50LGZyb206YjEpCisgICEkb21wIHRhcmdldCBleGl0IGRhdGEg bWFwKHByZXNlbnQsY2xvc2UsZGVsZXRlOiBhKSBtYXAoY2xvc2UscHJlc2VudCxyZWxlYXNl OmIpIG1hcChjbG9zZSBwcmVzZW50LGZyb206YjEpCisgICEkb21wIHRhcmdldCBleGl0IGRh dGEgbWFwKHByZXNlbnQsYWx3YXlzLGRlbGV0ZTogYSkgbWFwKGFsd2F5cyxwcmVzZW50LHJl bGVhc2U6YikgbWFwKGFsd2F5cyBjbG9zZSBwcmVzZW50LGZyb206YjEpCisgICEkb21wIHRh cmdldCBleGl0IGRhdGEgbWFwKHByZXNlbnQsYWx3YXlzLGNsb3NlLGRlbGV0ZTogYSkgbWFw KGNsb3NlLHByZXNlbnQsYWx3YXlzLHJlbGVhc2U6YikgbWFwKGFsd2F5cyBjbG9zZSBwcmVz ZW50LGZyb206YjEpCitlbmQgc3Vicm91dGluZQorCisKKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZGF0YSBtYXBcXCh0b2Zyb206 YjEgXFxcW2xlbjogNFxcXF1cXClcW1xyXG5cXSIgMiAib21wbG93ZXIiIH0gfQorISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBkYXRh IG1hcFxcKHRvZnJvbTpiMSBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dl ciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBv bXAgdGFyZ2V0IGRhdGEgbWFwXFwoYWx3YXlzLHRvZnJvbTpiMSBcXFxbbGVuOiA0XFxcXVxc KVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwoYWx3YXlzLHRvZnJv bTpiMSBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGRh dGEgbWFwXFwocHJlc2VudCx0b2Zyb206YjEgXFxcW2xlbjogNFxcXF1cXClcW1xyXG5cXSIg MiAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg IiNwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcFxcKHByZXNlbnQsdG9mcm9tOmIxIFxcXFts ZW46IDRcXFxdXFwpXFtcclxuXF0iIDIgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZGF0YSBtYXBcXChh bHdheXMscHJlc2VudCx0b2Zyb206YjEgXFxcW2xlbjogNFxcXF1cXClcW1xyXG5cXSIgMiAi b21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNw cmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcFxcKGFsd2F5cyxwcmVzZW50LHRvZnJvbTpiMSBc XFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRh dGEgbWFwXFwodG86YiBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXCh0bzpiMSBcXFxbbGVuOiA0 XFxcXVxcKSBtYXBcXChhbGxvYzphIFxcXFtsZW46IDRcXFxdXFwpXFtcclxuXF0iIDIgIm9t cGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJh Z21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXBcXCh0bzpiIFxcXFtsZW46IDRcXFxdXFwp IG1hcFxcKHRvOmIxIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGFsbG9jOmEgXFxcW2xlbjog NFxcXF1cXClcW1xyXG5cXSIgMiAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcFxc KGFsd2F5cyx0bzpiIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGFsd2F5cyx0bzpiMSBcXFxb bGVuOiA0XFxcXVxcKSBtYXBcXChhbGxvYzphIFxcXFtsZW46IDRcXFxdXFwpXFtcclxuXF0i IDIgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICIjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXBcXChhbHdheXMsdG86YiBcXFxb bGVuOiA0XFxcXVxcKSBtYXBcXChhbHdheXMsdG86YjEgXFxcW2xlbjogNFxcXF1cXCkgbWFw XFwoYWxsb2M6YSBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9 CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFy Z2V0IGVudGVyIGRhdGEgbWFwXFwocHJlc2VudCxhbGxvYzphIFxcXFtsZW46IDRcXFxdXFwp IG1hcFxcKHByZXNlbnQsdG86YiBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXChwcmVzZW50LHRv OmIxIFxcXFtsZW46IDRcXFxdXFwpXFtcclxuXF0iIDIgIm9tcGxvd2VyIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZW50 ZXIgZGF0YSBtYXBcXChwcmVzZW50LGFsbG9jOmEgXFxcW2xlbjogNFxcXF1cXCkgbWFwXFwo cHJlc2VudCx0bzpiIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKHByZXNlbnQsdG86YjEgXFxc W2xlbjogNFxcXF1cXClcW1xyXG5cXSIgMiAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBlbnRlciBkYXRh IG1hcFxcKHByZXNlbnQsYWxsb2M6YSBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXChhbHdheXMs cHJlc2VudCx0bzpiIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGFsd2F5cyxwcmVzZW50LHRv OmIxIFxcXFtsZW46IDRcXFxdXFwpXFtcclxuXF0iIDIgIm9tcGxvd2VyIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZW50 ZXIgZGF0YSBtYXBcXChwcmVzZW50LGFsbG9jOmEgXFxcW2xlbjogNFxcXF1cXCkgbWFwXFwo YWx3YXlzLHByZXNlbnQsdG86YiBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXChhbHdheXMscHJl c2VudCx0bzpiMSBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9 CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFy Z2V0IGV4aXQgZGF0YSBtYXBcXChmcm9tOmIxIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGRl bGV0ZTphIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKHJlbGVhc2U6YiBcXFxbbGVuOiA0XFxc XVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXBcXChmcm9t OmIxIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGRlbGV0ZTphIFxcXFtsZW46IDRcXFxdXFwp IG1hcFxcKHJlbGVhc2U6YiBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dl ciIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBv bXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXBcXChhbHdheXMsZnJvbTpiMSBcXFxbbGVuOiA0XFxc XVxcKSBtYXBcXChkZWxldGU6YSBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXChyZWxlYXNlOmIg XFxcW2xlbjogNFxcXF1cXClcW1xyXG5cXSIgMiAib21wbG93ZXIiIH0gfQorISB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBleGl0IGRh dGEgbWFwXFwoYWx3YXlzLGZyb206YjEgXFxcW2xlbjogNFxcXF1cXCkgbWFwXFwoZGVsZXRl OmEgXFxcW2xlbjogNFxcXF1cXCkgbWFwXFwocmVsZWFzZTpiIFxcXFtsZW46IDRcXFxdXFwp XFtcclxuXF0iIDIgIm9tcGxvd2VyIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcFxcKHByZXNlbnQs ZnJvbTpiMSBcXFxbbGVuOiA0XFxcXVxcKSBtYXBcXChkZWxldGU6YSBcXFxbbGVuOiA0XFxc XVxcKSBtYXBcXChyZWxlYXNlOmIgXFxcW2xlbjogNFxcXF1cXClcW1xyXG5cXSIgMiAib21w bG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHRhcmdldCBleGl0IGRhdGEgbWFwXFwocHJlc2VudCxmcm9tOmIxIFxcXFtsZW46 IDRcXFxdXFwpIG1hcFxcKGRlbGV0ZTphIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKHJlbGVh c2U6YiBcXFxbbGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGV4 aXQgZGF0YSBtYXBcXChhbHdheXMscHJlc2VudCxmcm9tOmIxIFxcXFtsZW46IDRcXFxdXFwp IG1hcFxcKGRlbGV0ZTphIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKHJlbGVhc2U6YiBcXFxb bGVuOiA0XFxcXVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CishIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBt YXBcXChhbHdheXMscHJlc2VudCxmcm9tOmIxIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKGRl bGV0ZTphIFxcXFtsZW46IDRcXFxdXFwpIG1hcFxcKHJlbGVhc2U6YiBcXFxbbGVuOiA0XFxc XVxcKVxbXHJcblxdIiAyICJvbXBsb3dlciIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvbWFwLTcuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL21hcC03LmY5MAppbmRleCAwMDljNmQ0OTU0Ny4uMzE3MDkwYWNiNTAgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9tYXAtNy5mOTAKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL21hcC03LmY5MApAQCAtMiw3ICsy LDcgQEAKIAogaW1wbGljaXQgbm9uZQogCi1pbnRlZ2VyIDo6IGEsIGIsIGNsb3NlLCBhbHdh eXMsIHRvCitpbnRlZ2VyIDo6IGEsIGIsIGNsb3NlLCBhbHdheXMsIHRvLCBwcmVzZW50CiAK ICEkb21wIHRhcmdldCBtYXAoY2xvc2UpCiAhJG9tcCBlbmQgdGFyZ2V0CkBAIC0xMCwxNyAr MTAsNDMgQEAgaW50ZWdlciA6OiBhLCBiLCBjbG9zZSwgYWx3YXlzLCB0bwogISRvbXAgdGFy Z2V0IG1hcChhbHdheXMpCiAhJG9tcCBlbmQgdGFyZ2V0CiAKKyEkb21wIHRhcmdldCBtYXAo cHJlc2VudCkKKyEkb21wIGVuZCB0YXJnZXQKKwogISRvbXAgdGFyZ2V0IG1hcChhbHdheXMs IGNsb3NlKQogISRvbXAgZW5kIHRhcmdldAogCishJG9tcCB0YXJnZXQgbWFwKGFsd2F5cywg Y2xvc2UsIHByZXNlbnQpCishJG9tcCBlbmQgdGFyZ2V0CisKICEkb21wIHRhcmdldCBtYXAo YWx3YXlzLCBjbG9zZSwgdG8gOiBhbHdheXMsIGNsb3NlLCBhKQogISRvbXAgZW5kIHRhcmdl dAogCishJG9tcCB0YXJnZXQgbWFwKGFsd2F5cywgY2xvc2UsIHByZXNlbnQsIHRvIDogYWx3 YXlzLCBjbG9zZSwgcHJlc2VudCwgYSkKKyEkb21wIGVuZCB0YXJnZXQKKworCiAhJG9tcCB0 YXJnZXQgbWFwKHRvLCBhbHdheXMsIGNsb3NlKQogISRvbXAgZW5kIHRhcmdldAogCishJG9t cCB0YXJnZXQgbWFwKHByZXNlbnQsIHRvLCBhbHdheXMsIGNsb3NlKQorISRvbXAgZW5kIHRh cmdldAorCishJG9tcCB0YXJnZXQgbWFwICggcHJlc2VudCAsIGZyb20gOiBwcmVzZW50KSBt YXAoY2xvc2UgLCBhbGxvYyA6IGNsb3NlKSAsIG1hcCAoIGFsd2F5cywgdG9mcm9tOiBhbHdh eXMgKQorISRvbXAgZW5kIHRhcmdldAorCiBlbmQKIAogISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtbm90ICJtYXBcXChcW15cblxyKV0qY2xvc2VcW15cblxyKV0qdG86IiAib3Jp Z2luYWwiIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIiNwcmFnbWEgb21w IHRhcmdldCBtYXBcXChhbHdheXMsdG86YWx3YXlzXFwpIG1hcFxcKGFsd2F5cyx0bzpjbG9z ZVxcKSBtYXBcXChhbHdheXMsdG86YVxcKSIgIm9yaWdpbmFsIiB9IH0KICEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAibWFwXFwoXFteXG5ccildKmNsb3NlXFteXG5ccild KnRvOiIgIm9yaWdpbmFsIiB9IH0KKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBtYXBcXCh0b2Zyb206Y2xvc2VcXClcW1xuXHJd IiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcFxcKHRvZnJvbTphbHdheXNcXClcW1xuXHJdIiAx ICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi I3ByYWdtYSBvbXAgdGFyZ2V0IG1hcFxcKHRvZnJvbTpwcmVzZW50XFwpXFtcblxyXSIgMSAi b3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNw cmFnbWEgb21wIHRhcmdldCBtYXBcXCh0b2Zyb206YWx3YXlzXFwpIG1hcFxcKHRvZnJvbTpj bG9zZVxcKVxbXG5ccl0iIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgbWFwXFwodG9mcm9tOmFsd2F5 c1xcKSBtYXBcXCh0b2Zyb206Y2xvc2VcXCkgbWFwXFwodG9mcm9tOnByZXNlbnRcXClcW1xu XHJdIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcFxcKGFsd2F5cyx0bzphbHdheXNcXCkgbWFw XFwoYWx3YXlzLHRvOmNsb3NlXFwpIG1hcFxcKGFsd2F5cyx0bzphXFwpXFtcblxyXSIgMSAi b3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNw cmFnbWEgb21wIHRhcmdldCBtYXBcXChhbHdheXMscHJlc2VudCx0bzphbHdheXNcXCkgbWFw XFwoYWx3YXlzLHByZXNlbnQsdG86Y2xvc2VcXCkgbWFwXFwoYWx3YXlzLHByZXNlbnQsdG86 cHJlc2VudFxcKSBtYXBcXChhbHdheXMscHJlc2VudCx0bzphXFwpXFtcblxyXSIgMSAib3Jp Z2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHRhcmdldCBtYXBcXCh0b2Zyb206dG9cXCkgbWFwXFwodG9mcm9tOmFsd2F5c1xc KSBtYXBcXCh0b2Zyb206Y2xvc2VcXClcW1xuXHJdIiAxICJvcmlnaW5hbCIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG1h cFxcKHRvZnJvbTpwcmVzZW50XFwpIG1hcFxcKHRvZnJvbTp0b1xcKSBtYXBcXCh0b2Zyb206 YWx3YXlzXFwpIG1hcFxcKHRvZnJvbTpjbG9zZVxcKVxbXG5ccl0iIDEgIm9yaWdpbmFsIiB9 IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0 YXJnZXQgbWFwXFwocHJlc2VudCxmcm9tOnByZXNlbnRcXCkgbWFwXFwoYWxsb2M6Y2xvc2Vc XCkgbWFwXFwoYWx3YXlzLHRvZnJvbTphbHdheXNcXClcW1xuXHJdIiAxICJvcmlnaW5hbCIg fSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbWFwLTgu ZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL21hcC04LmY5MAppbmRleCA5 MmI4MDJjNjdlZC4uMTVlYmRkNjhiOTUgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9tYXAtOC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL21hcC04LmY5MApAQCAtMjgsNyArMjgsMTggQEAgaW50ZWdlciA6OiBhCiAhJG9t cCB0YXJnZXQgbWFwKGNsb3NlIGNsb3NlIHRvIDogYSkgISB7IGRnLWVycm9yICJ0b28gbWFu eSAnY2xvc2UnIG1vZGlmaWVycyIgfQogISAhJG9tcCBlbmQgdGFyZ2V0CiAKKyEkb21wIHRh cmdldCBtYXAocHJlc2VudCBwcmVzZW50LCB0byA6IGEpICEgeyBkZy1lcnJvciAidG9vIG1h bnkgJ3ByZXNlbnQnIG1vZGlmaWVycyIgfQorISAhJG9tcCBlbmQgdGFyZ2V0CishJG9tcCB0 YXJnZXQgbWFwKHByZXNlbnQsIHByZXNlbnQgdG8gOiBhKSAhIHsgZGctZXJyb3IgInRvbyBt YW55ICdwcmVzZW50JyBtb2RpZmllcnMiIH0KKyEgISRvbXAgZW5kIHRhcmdldAorISRvbXAg dGFyZ2V0IG1hcChwcmVzZW50IHByZXNlbnQgdG8gOiBhKSAhIHsgZGctZXJyb3IgInRvbyBt YW55ICdwcmVzZW50JyBtb2RpZmllcnMiIH0KKyEgISRvbXAgZW5kIHRhcmdldAorCisKICEk b21wIHRhcmdldCBtYXAoY2xvc2UgY2xvc2UgYWx3YXlzIGFsd2F5cyB0byA6IGEpICEgeyBk Zy1lcnJvciAidG9vIG1hbnkgJ2Fsd2F5cycgbW9kaWZpZXJzIiB9CiAhICEkb21wIGVuZCB0 YXJnZXQKIAorISRvbXAgdGFyZ2V0IG1hcChwcmVzZW50IGNsb3NlIGFsd2F5cyBwcmVzZW50 IHRvIDogYSkgISB7IGRnLWVycm9yICJ0b28gbWFueSAncHJlc2VudCcgbW9kaWZpZXJzIiB9 CishICEkb21wIGVuZCB0YXJnZXQKKwogZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LXVwZGF0ZS0xLmY5MCBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtdXBkYXRlLTEuZjkwCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOTliZmZlMmUwYgotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtdXBkYXRlLTEuZjkwCkBA IC0wLDAgKzEsMTMgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1hZGRpdGlvbmFs LW9wdGlvbnMgIi1mZHVtcC10cmVlLWdpbXBsZSIgfQorCitwcm9ncmFtIG1haW4KKyAgaW1w bGljaXQgbm9uZQorICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9IDEwMDAKKyAgaW50ZWdl ciA6OiBhKE4pLCBiKE4pLCBjLCBkLCBlCisKKyAgISBTaG91bGQgYmUgYWJsZSB0byBwYXJz ZSBwcmVzZW50IGluIHRvL2Zyb20gY2xhdXNlcyBvZiAndGFyZ2V0IHVwZGF0ZScuCisgICEk b21wIHRhcmdldCB1cGRhdGUgdG8oYykgdG8ocHJlc2VudDogYSkgZnJvbShkKSBmcm9tKHBy ZXNlbnQ6IGIpIHRvKGUpCitlbmQgcHJvZ3JhbQorCishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcCAiI3ByYWdtYSBvbXAgdGFyZ2V0IHVwZGF0ZSB0b1xcKGMgXFxcW2xlbjogXFsw LTlcXStcXFxdXFwpIHRvXFwocHJlc2VudDphIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSB0 b1xcKGUgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIGZyb21cXChwcmVzZW50OmIgXFxcW2xl bjogXFswLTlcXStcXFxdXFwpIGZyb21cXChkIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIg ImdpbXBsZSIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdHJlZS1jb3JlLmggYi9nY2MvdHJlZS1j b3JlLmgKaW5kZXggNmRkN2I2ODBiNTcuLmM0OGExMmIzNzhmIDEwMDY0NAotLS0gYS9nY2Mv dHJlZS1jb3JlLmgKKysrIGIvZ2NjL3RyZWUtY29yZS5oCkBAIC01NzIsNyArNTcyLDggQEAg ZW51bSBvbXBfY2xhdXNlX2RlZmF1bHRtYXBfa2luZCB7CiAgIE9NUF9DTEFVU0VfREVGQVVM VE1BUF9OT05FID0gNiAqIChPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfQ0FURUdPUllfTUFTSyAr IDEpLAogICBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfREVGQVVMVAogICAgID0gNyAqIChPTVBf Q0xBVVNFX0RFRkFVTFRNQVBfQ0FURUdPUllfTUFTSyArIDEpLAotICBPTVBfQ0xBVVNFX0RF RkFVTFRNQVBfTUFTSyA9IDcgKiAoT01QX0NMQVVTRV9ERUZBVUxUTUFQX0NBVEVHT1JZX01B U0sgKyAxKQorICBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfUFJFU0VOVCA9IDggKiAoT01QX0NM QVVTRV9ERUZBVUxUTUFQX0NBVEVHT1JZX01BU0sgKyAxKSwKKyAgT01QX0NMQVVTRV9ERUZB VUxUTUFQX01BU0sgPSAxNSAqIChPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfQ0FURUdPUllfTUFT SyArIDEpCiB9OwogCiBlbnVtIG9tcF9jbGF1c2VfYmluZF9raW5kIHsKZGlmZiAtLWdpdCBh L2djYy90cmVlLXByZXR0eS1wcmludC5jYyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYwpp bmRleCBkYjJhNThhODU3ZC4uMjVkMTkxYjEwZmQgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXBy ZXR0eS1wcmludC5jYworKysgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKQEAgLTk5MSw2 ICs5OTEsMjcgQEAgZHVtcF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUg Y2xhdXNlLCBpbnQgc3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAJY2FzZSBHT01QX01BUF9B VFRBQ0hfWkVST19MRU5HVEhfQVJSQVlfU0VDVElPTjoKIAkgIHBwX3N0cmluZyAocHAsICJh dHRhY2hfemVyb19sZW5ndGhfYXJyYXlfc2VjdGlvbiIpOwogCSAgYnJlYWs7CisJY2FzZSBH T01QX01BUF9QUkVTRU5UX0FMTE9DOgorCSAgcHBfc3RyaW5nIChwcCwgInByZXNlbnQsYWxs b2MiKTsKKwkgIGJyZWFrOworCWNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIHBwX3N0 cmluZyAocHAsICJwcmVzZW50LHRvIik7CisJICBicmVhazsKKwljYXNlIEdPTVBfTUFQX1BS RVNFTlRfRlJPTToKKwkgIHBwX3N0cmluZyAocHAsICJwcmVzZW50LGZyb20iKTsKKwkgIGJy ZWFrOworCWNhc2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICBwcF9zdHJpbmcgKHBw LCAicHJlc2VudCx0b2Zyb20iKTsKKwkgIGJyZWFrOworCWNhc2UgR09NUF9NQVBfQUxXQVlT X1BSRVNFTlRfVE86CisJICBwcF9zdHJpbmcgKHBwLCAiYWx3YXlzLHByZXNlbnQsdG8iKTsK KwkgIGJyZWFrOworCWNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKKwkgIHBw X3N0cmluZyAocHAsICJhbHdheXMscHJlc2VudCxmcm9tIik7CisJICBicmVhazsKKwljYXNl IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkgIHBwX3N0cmluZyAocHAsICJh bHdheXMscHJlc2VudCx0b2Zyb20iKTsKKwkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBnY2Nf dW5yZWFjaGFibGUgKCk7CiAJfQpAQCAtMTAzOCwxMiArMTA1OSwxNiBAQCBkdW1wX29tcF9j bGF1c2UgKHByZXR0eV9wcmludGVyICpwcCwgdHJlZSBjbGF1c2UsIGludCBzcGMsIGR1bXBf ZmxhZ3NfdCBmbGFncykKIAogICAgIGNhc2UgT01QX0NMQVVTRV9GUk9NOgogICAgICAgcHBf c3RyaW5nIChwcCwgImZyb20oIik7CisgICAgICBpZiAoT01QX0NMQVVTRV9NT1RJT05fUFJF U0VOVCAoY2xhdXNlKSkKKwlwcF9zdHJpbmcgKHBwLCAicHJlc2VudDoiKTsKICAgICAgIGR1 bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9ERUNMIChjbGF1c2UpLAogCQkJIHNw YywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIGdvdG8gcHJpbnRfY2xhdXNlX3NpemU7CiAKICAg ICBjYXNlIE9NUF9DTEFVU0VfVE86CiAgICAgICBwcF9zdHJpbmcgKHBwLCAidG8oIik7Cisg ICAgICBpZiAoT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCAoY2xhdXNlKSkKKwlwcF9zdHJp bmcgKHBwLCAicHJlc2VudDoiKTsKICAgICAgIGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01Q X0NMQVVTRV9ERUNMIChjbGF1c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAg IGdvdG8gcHJpbnRfY2xhdXNlX3NpemU7CkBAIC0xMjEwLDYgKzEyMzUsOSBAQCBkdW1wX29t cF9jbGF1c2UgKHByZXR0eV9wcmludGVyICpwcCwgdHJlZSBjbGF1c2UsIGludCBzcGMsIGR1 bXBfZmxhZ3NfdCBmbGFncykKIAljYXNlIE9NUF9DTEFVU0VfREVGQVVMVE1BUF9OT05FOgog CSAgcHBfc3RyaW5nIChwcCwgIm5vbmUiKTsKIAkgIGJyZWFrOworCWNhc2UgT01QX0NMQVVT RV9ERUZBVUxUTUFQX1BSRVNFTlQ6CisJICBwcF9zdHJpbmcgKHBwLCAicHJlc2VudCIpOwor CSAgYnJlYWs7CiAJY2FzZSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfREVGQVVMVDoKIAkgIHBw X3N0cmluZyAocHAsICJkZWZhdWx0Iik7CiAJICBicmVhazsKZGlmZiAtLWdpdCBhL2djYy90 cmVlLmggYi9nY2MvdHJlZS5oCmluZGV4IGVlZTdkM2UxOWNkLi4xODU0ZmU0YTdkNCAxMDA2 NDQKLS0tIGEvZ2NjL3RyZWUuaAorKysgYi9nY2MvdHJlZS5oCkBAIC0xNzczLDYgKzE3NzMs OSBAQCBjbGFzcyBhdXRvX3N1cHByZXNzX2xvY2F0aW9uX3dyYXBwZXJzCiAgIChPTVBfQ0xB VVNFX1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfTUFQKS0+b21wX2NsYXVzZS5z dWJjb2RlLm1hcF9raW5kIFwKICAgID0gKHVuc2lnbmVkIGludCkgKE1BUF9LSU5EKSkKIAor I2RlZmluZSBPTVBfQ0xBVVNFX01PVElPTl9QUkVTRU5UKE5PREUpIFwKKyAgKE9NUF9DTEFV U0VfUkFOR0VfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfRlJPTSwgT01QX0NMQVVTRV9UTykt PmJhc2UuZGVwcmVjYXRlZF9mbGFnKQorCiAvKiBOb256ZXJvIGlmIHRoaXMgbWFwIGNsYXVz ZSBpcyBmb3IgYXJyYXkgKHJhdGhlciB0aGFuIHBvaW50ZXIpIGJhc2VkIGFycmF5CiAgICBz ZWN0aW9uIHdpdGggemVybyBiaWFzLiAgQm90aCB0aGUgbm9uLWRlY2wgT01QX0NMQVVTRV9N QVAgYW5kIGNvcnJlc3BvbmRpbmcKICAgIE9NUF9DTEFVU0VfTUFQIHdpdGggR09NUF9NQVBf UE9JTlRFUiBhcmUgbWFya2VkIHdpdGggdGhpcyBmbGFnLiAgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZ29tcC1jb25zdGFudHMuaCBiL2luY2x1ZGUvZ29tcC1jb25zdGFudHMuaAppbmRl eCAxYjliMDdkYzI0NS4uNDliN2RkODZmZjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ29tcC1j b25zdGFudHMuaAorKysgYi9pbmNsdWRlL2dvbXAtY29uc3RhbnRzLmgKQEAgLTQyLDYgKzQy LDcgQEAKICNkZWZpbmUgR09NUF9NQVBfRkxBR19TUEVDSUFMXzIJCSgxIDw8IDQpCiAjZGVm aW5lIEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF8zCQkoMSA8PCA1KQogI2RlZmluZSBHT01QX01B UF9GTEFHX1NQRUNJQUxfNAkJKDEgPDwgNikKKyNkZWZpbmUgR09NUF9NQVBfRkxBR19TUEVD SUFMXzUJCSgxIDw8IDcpCiAjZGVmaW5lIEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTAkJKEdPTVBf TUFQX0ZMQUdfU1BFQ0lBTF8xIFwKIAkJCQkJIHwgR09NUF9NQVBfRkxBR19TUEVDSUFMXzAp CiAjZGVmaW5lIEdPTVBfTUFQX0RFRVBfQ09QWQkJKEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF80 IFwKQEAgLTU1LDkgKzU2LDE0IEBACiAJCQkJCSB8IEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF8x IFwKIAkJCQkJIHwgR09NUF9NQVBfRkxBR19TUEVDSUFMXzIgXAogCQkJCQkgfCBHT01QX01B UF9GTEFHX1NQRUNJQUxfMyBcCi0JCQkJCSB8IEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF80KQor CQkJCQkgfCBHT01QX01BUF9GTEFHX1NQRUNJQUxfNCBcCisJCQkJCSB8IEdPTVBfTUFQX0ZM QUdfU1BFQ0lBTF81KQogLyogRmxhZyB0byBmb3JjZSBhIHNwZWNpZmljIGJlaGF2aW9yIChv ciBlbHNlLCB0cmlnZ2VyIGEgcnVuLXRpbWUgZXJyb3IpLiAgKi8KLSNkZWZpbmUgR09NUF9N QVBfRkxBR19GT1JDRQkJKDEgPDwgNykKKyNkZWZpbmUgR09NUF9NQVBfRkxBR19GT1JDRQkJ KEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF81KQorI2RlZmluZSBHT01QX01BUF9GTEFHX1BSRVNF TlQJCShHT01QX01BUF9GTEFHX1NQRUNJQUxfNSBcCisJCQkJCSB8IEdPTVBfTUFQX0ZMQUdf U1BFQ0lBTF8wKQorI2RlZmluZSBHT01QX01BUF9GTEFHX0FMV0FZU19QUkVTRU5UCShHT01Q X01BUF9GTEFHX1NQRUNJQUxfMiBcCisJCQkJCSB8IEdPTVBfTUFQX0ZMQUdfUFJFU0VOVCkK IAogZW51bSBnb21wX21hcF9raW5kCiAgIHsKQEAgLTEzMCw2ICsxMzYsMjMgQEAgZW51bSBn b21wX21hcF9raW5kCiAgICAgICAgZGV2aWNlLiAgKi8KICAgICBHT01QX01BUF9BTFdBWVNf VE9GUk9NID0JCShHT01QX01BUF9GTEFHX1NQRUNJQUxfMgogCQkJCQkgfCBHT01QX01BUF9U T0ZST00pLAorICAgIC8qIE11c3QgYWxyZWFkeSBiZSBwcmVzZW50LiAgKi8KKyAgICBHT01Q X01BUF9QUkVTRU5UX0FMTE9DID0JCShHT01QX01BUF9GTEFHX1BSRVNFTlQgfCBHT01QX01B UF9BTExPQyksCisgICAgLyogTXVzdCBhbHJlYWR5IGJlIHByZXNlbnQsIGNvcHkgdG8gZGV2 aWNlLiAgKi8KKyAgICBHT01QX01BUF9QUkVTRU5UX1RPID0JCShHT01QX01BUF9GTEFHX1BS RVNFTlQgfCBHT01QX01BUF9UTyksCisgICAgLyogTXVzdCBhbHJlYWR5IGJlIHByZXNlbnQs IGNvcHkgZnJvbSBkZXZpY2UuICAqLworICAgIEdPTVBfTUFQX1BSRVNFTlRfRlJPTSA9CQko R09NUF9NQVBfRkxBR19QUkVTRU5UIHwgR09NUF9NQVBfRlJPTSksCisgICAgLyogTXVzdCBh bHJlYWR5IGJlIHByZXNlbnQsIGNvcHkgdG8gYW5kIGZyb20gZGV2aWNlLiAgKi8KKyAgICBH T01QX01BUF9QUkVTRU5UX1RPRlJPTSA9CQkoR09NUF9NQVBfRkxBR19QUkVTRU5UIHwgR09N UF9NQVBfVE9GUk9NKSwKKyAgICAvKiBNdXN0IGFscmVhZHkgYmUgcHJlc2VudCwgdW5jb25k aXRpb25hbGx5IGNvcHkgdG8gZGV2aWNlLiAgKi8KKyAgICBHT01QX01BUF9BTFdBWVNfUFJF U0VOVF9UTyA9CShHT01QX01BUF9GTEFHX0FMV0FZU19QUkVTRU5UCisJCQkJCSB8IEdPTVBf TUFQX1RPKSwKKyAgICAvKiBNdXN0IGFscmVhZHkgYmUgcHJlc2VudCwgdW5jb25kaXRpb25h bGx5IGNvcHkgZnJvbSBkZXZpY2UuICAqLworICAgIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5U X0ZST00gPQkoR09NUF9NQVBfRkxBR19BTFdBWVNfUFJFU0VOVAorCQkJCQkgfCBHT01QX01B UF9GUk9NKSwKKyAgICAvKiBNdXN0IGFscmVhZHkgYmUgcHJlc2VudCwgdW5jb25kaXRpb25h bGx5IGNvcHkgdG8gYW5kIGZyb20gZGV2aWNlLiAgKi8KKyAgICBHT01QX01BUF9BTFdBWVNf UFJFU0VOVF9UT0ZST00gPQkoR09NUF9NQVBfRkxBR19BTFdBWVNfUFJFU0VOVAorCQkJCQkg fCBHT01QX01BUF9UT0ZST00pLAogICAgIC8qIE1hcCBhIHNwYXJzZSBzdHJ1Y3Q7IHRoZSBh ZGRyZXNzIGlzIHRoZSBiYXNlIG9mIHRoZSBzdHJ1Y3R1cmUsIGFsaWdubWVudAogICAgICAg IGl0J3MgcmVxdWlyZWQgYWxpZ25tZW50LCBhbmQgc2l6ZSBpcyB0aGUgbnVtYmVyIG9mIGFk amFjZW50IGVudHJpZXMKICAgICAgICB0aGF0IGJlbG9uZyB0byB0aGUgc3RydWN0LiAgVGhl IGFkamFjZW50IGVudHJpZXMgc2hvdWxkIGJlIHNvcnRlZCBieQpAQCAtMTg2LDExICsyMDks MTEgQEAgZW51bSBnb21wX21hcF9raW5kCiAgIH07CiAKICNkZWZpbmUgR09NUF9NQVBfQ09Q WV9UT19QKFgpIFwKLSAgKCEoKFgpICYgR09NUF9NQVBfRkxBR19TUEVDSUFMKSBcCisgICgo ISgoWCkgJiBHT01QX01BUF9GTEFHX1NQRUNJQUwpIHx8IEdPTVBfTUFQX1BSRVNFTlRfUCAo WCkpIFwKICAgICYmICgoWCkgJiBHT01QX01BUF9GTEFHX1RPKSkKIAogI2RlZmluZSBHT01Q X01BUF9DT1BZX0ZST01fUChYKSBcCi0gICghKChYKSAmIEdPTVBfTUFQX0ZMQUdfU1BFQ0lB TCkgXAorICAoKCEoKFgpICYgR09NUF9NQVBfRkxBR19TUEVDSUFMKSB8fCBHT01QX01BUF9Q UkVTRU5UX1AgKFgpKSBcCiAgICAmJiAoKFgpICYgR09NUF9NQVBfRkxBR19GUk9NKSkKIAog I2RlZmluZSBHT01QX01BUF9BTFdBWVNfUE9JTlRFUl9QKFgpIFwKQEAgLTIwMSwxNyArMjI0 LDI3IEBAIGVudW0gZ29tcF9tYXBfa2luZAogICAgfHwgKFgpID09IEdPTVBfTUFQX1BPSU5U RVJfVE9fWkVST19MRU5HVEhfQVJSQVlfU0VDVElPTikKIAogI2RlZmluZSBHT01QX01BUF9B TFdBWVNfVE9fUChYKSBcCi0gICgoKFgpID09IEdPTVBfTUFQX0FMV0FZU19UTykgfHwgKChY KSA9PSBHT01QX01BUF9BTFdBWVNfVE9GUk9NKSkKKyAgKCgoWCkgPT0gR09NUF9NQVBfQUxX QVlTX1RPKSB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19UT0ZST00pIFwKKyAgIHx8ICgo WCkgPT0gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE8pIFwKKyAgIHx8ICgoWCkgPT0gR09N UF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NKSkKIAogI2RlZmluZSBHT01QX01BUF9BTFdB WVNfRlJPTV9QKFgpIFwKLSAgKCgoWCkgPT0gR09NUF9NQVBfQUxXQVlTX0ZST00pIHx8ICgo WCkgPT0gR09NUF9NQVBfQUxXQVlTX1RPRlJPTSkpCisgICgoKFgpID09IEdPTVBfTUFQX0FM V0FZU19GUk9NKSB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19UT0ZST00pIFwKKyAgIHx8 ICgoWCkgPT0gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTSkgXAorICAgfHwgKChYKSA9 PSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST00pKQogCiAjZGVmaW5lIEdPTVBfTUFQ X0FMV0FZU19QKFgpIFwKLSAgKEdPTVBfTUFQX0FMV0FZU19UT19QIChYKSB8fCAoKFgpID09 IEdPTVBfTUFQX0FMV0FZU19GUk9NKSkKKyAgKEdPTVBfTUFQX0FMV0FZU19UT19QIChYKSB8 fCBHT01QX01BUF9BTFdBWVNfRlJPTV9QIChYKSkKIAogI2RlZmluZSBHT01QX01BUF9JTVBM SUNJVF9QKFgpIFwKICAgKCgoWCkgJiBHT01QX01BUF9GTEFHX1NQRUNJQUxfQklUUykgPT0g R09NUF9NQVBfSU1QTElDSVQpCiAKKyNkZWZpbmUgR09NUF9NQVBfRk9SQ0VfUChYKSBcCisg ICgoKFgpICYgR09NUF9NQVBfRkxBR19TUEVDSUFMX0JJVFMpID09IEdPTVBfTUFQX0ZMQUdf Rk9SQ0UpCisKKyNkZWZpbmUgR09NUF9NQVBfUFJFU0VOVF9QKFgpIFwKKyAgKCgoWCkgJiBH T01QX01BUF9GTEFHX1BSRVNFTlQpID09IEdPTVBfTUFQX0ZMQUdfUFJFU0VOVCkKKwogCiAv KiBBc3luY2hyb25vdXMgYmVoYXZpb3IuICBLZWVwIGluIHN5bmMgd2l0aAogICAgbGliZ29t cC97b3BlbmFjYy5oLG9wZW5hY2MuZjkwLG9wZW5hY2NfbGliLmh9OmFjY19hc3luY190LiAg Ki8KZGlmZiAtLWdpdCBhL2xpYmdvbXAvbGliZ29tcC50ZXhpIGIvbGliZ29tcC9saWJnb21w LnRleGkKaW5kZXggM2VhMTdhNGNiZGIuLjc2YzU2YTczOTY5IDEwMDY0NAotLS0gYS9saWJn b21wL2xpYmdvbXAudGV4aQorKysgYi9saWJnb21wL2xpYmdvbXAudGV4aQpAQCAtMzExLDcg KzMxMSw3IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNpZmljYXRpb24gaXMgZnVsbHkgc3VwcG9y dGVkLgogQGl0ZW0gQGNvZGV7aW5vdXRzZXR9IGFyZ3VtZW50IHRvIHRoZSBAY29kZXtkZXBl bmR9IGNsYXVzZSBAdGFiIFkgQHRhYgogQGl0ZW0gQGNvZGV7cHJpdmF0ZX0gYW5kIEBjb2Rl e2ZpcnN0cHJpdmF0ZX0gYXJndW1lbnQgdG8gQGNvZGV7ZGVmYXVsdH0KICAgICAgIGNsYXVz ZSBpbiBDIGFuZCBDKysgQHRhYiBZIEB0YWIKLUBpdGVtIEBjb2Rle3ByZXNlbnR9IGFyZ3Vt ZW50IHRvIEBjb2Rle2RlZmF1bHRtYXB9IGNsYXVzZSBAdGFiIE4gQHRhYgorQGl0ZW0gQGNv ZGV7cHJlc2VudH0gYXJndW1lbnQgdG8gQGNvZGV7ZGVmYXVsdG1hcH0gY2xhdXNlIEB0YWIg WSBAdGFiCiBAaXRlbSBAY29kZXtvbXBfc2V0X251bV90ZWFtc30sIEBjb2Rle29tcF9zZXRf dGVhbXNfdGhyZWFkX2xpbWl0fSwKICAgICAgIEBjb2Rle29tcF9nZXRfbWF4X3RlYW1zfSwg QGNvZGV7b21wX2dldF90ZWFtc190aHJlYWRfbGltaXR9IHJ1bnRpbWUKICAgICAgIHJvdXRp bmVzIEB0YWIgWSBAdGFiCkBAIC0zNTMsNiArMzUzLDggQEAgdG8gYWRkcmVzcyBvZiBtYXRj aGluZyBtYXBwZWQgbGlzdCBpdGVtIHBlciA1LjEsIFNlY3QuIDIuMjEuNy4yIEB0YWIgTiBA dGFiCiBAaXRlbSBPcHRpb25hbCBjb21tYSBiZXR3ZWVuIGRpcmVjdGl2ZSBhbmQgY2xhdXNl IGluIHRoZSBAY29kZXsjcHJhZ21hfSBmb3JtIEB0YWIgWSBAdGFiCiBAaXRlbSBAY29kZXtp bmRpcmVjdH0gY2xhdXNlIGluIEBjb2Rle2RlY2xhcmUgdGFyZ2V0fSBAdGFiIE4gQHRhYgog QGl0ZW0gQGNvZGV7ZGV2aWNlX3R5cGUobm9ob3N0KX0vQGNvZGV7ZGV2aWNlX3R5cGUoaG9z dCl9IGZvciB2YXJpYWJsZXMgQHRhYiBOIEB0YWIKK0BpdGVtIEBjb2Rle3ByZXNlbnR9IG1v ZGlmaWVyIHRvIHRoZSBAY29kZXttYXB9LCBAY29kZXt0b30gYW5kIEBjb2Rle2Zyb219Cisg ICAgICBjbGF1c2VzIEB0YWIgWSBAdGFiCiBAZW5kIG11bHRpdGFibGUKIAogCmRpZmYgLS1n aXQgYS9saWJnb21wL3RhcmdldC5jIGIvbGliZ29tcC90YXJnZXQuYwppbmRleCAzMjM4OTU0 MGFjYy4uYTllODAwNWM1ODggMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGFyZ2V0LmMKKysrIGIv bGliZ29tcC90YXJnZXQuYwpAQCAtMzU4LDYgKzM1OCw4IEBAIGdvbXBfdG9fZGV2aWNlX2tp bmRfcCAoaW50IGtpbmQpCiAgICAgY2FzZSBHT01QX01BUF9GT1JDRV9BTExPQzoKICAgICBj YXNlIEdPTVBfTUFQX0ZPUkNFX0ZST006CiAgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfRlJP TToKKyAgICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKyAgICBjYXNlIEdPTVBfTUFQ X0FMV0FZU19QUkVTRU5UX0ZST006CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVs dDoKICAgICAgIHJldHVybiB0cnVlOwpAQCAtNTkzLDcgKzU5NSw3IEBAIGdvbXBfbWFwX3Zh cnNfZXhpc3RpbmcgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwKICAgZWxz ZQogICAgIHRndF92YXItPmxlbmd0aCA9IG5ld24tPmhvc3RfZW5kIC0gbmV3bi0+aG9zdF9z dGFydDsKIAotICBpZiAoKGtpbmQgJiBHT01QX01BUF9GTEFHX0ZPUkNFKQorICBpZiAoR09N UF9NQVBfRk9SQ0VfUCAoa2luZCkKICAgICAgIC8qIEZvciBpbXBsaWNpdCBtYXBzLCBvbGQg Y29udGFpbmVkIGluIG5ldyBpcyB2YWxpZC4gICovCiAgICAgICB8fCAhKGltcGxpY2l0X3N1 YnNldAogCSAgIC8qIE90aGVyd2lzZSwgbmV3IGNvbnRhaW5lZCBpbnNpZGUgb2xkIGlzIGNv bnNpZGVyZWQgdmFsaWQuICAqLwpAQCAtMTcxNCw2ICsxNzE2LDIwIEBAIGdvbXBfbWFwX3Zh cnNfaW50ZXJuYWwgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwKICNlbmRp ZgogCQkgICAgfQogCQkgICAgYnJlYWs7CisJCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0FM TE9DOgorCQkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkJICBjYXNlIEdPTVBfTUFQ X1BSRVNFTlRfRlJPTToKKwkJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCQkg IGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CisJCSAgY2FzZSBHT01QX01BUF9B TFdBWVNfUFJFU0VOVF9GUk9NOgorCQkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf VE9GUk9NOgorCQkgICAgLyogV2UgYWxyZWFkeSBsb29rZWQgdXAgdGhlIG1lbW9yeSByZWdp b24gYWJvdmUgYW5kIGl0CisJCSAgICAgICB3YXMgbWlzc2luZy4gICovCisJCSAgICBnb21w X211dGV4X3VubG9jayAoJmRldmljZXAtPmxvY2spOworCQkgICAgZ29tcF9mYXRhbCAoInBy ZXNlbnQgY2xhdXNlOiBub3QgcHJlc2VudCBvbiB0aGUgZGV2aWNlICIKKwkJCQkiKCVwLCAl ZCkiLAorCQkJCSh2b2lkICopIGstPmhvc3Rfc3RhcnQsIGRldmljZXAtPnRhcmdldF9pZCk7 CisJCSAgICBicmVhazsKIAkJICBjYXNlIEdPTVBfTUFQX0ZPUkNFX0RFVklDRVBUUjoKIAkJ ICAgIGFzc2VydCAoay0+aG9zdF9lbmQgLSBrLT5ob3N0X3N0YXJ0ID09IHNpemVvZiAodm9p ZCAqKSk7CiAJCSAgICBnb21wX2NvcHlfaG9zdDJkZXYgKGRldmljZXAsIGFxLApAQCAtMjEy NCw2ICsyMTQwLDIwIEBAIGdvbXBfdXBkYXRlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3Ig KmRldmljZXAsIHNpemVfdCBtYXBudW0sIHZvaWQgKipob3N0YWRkcnMsCiAJCSAgZ29tcF9j b3B5X2RldjJob3N0IChkZXZpY2VwLCBOVUxMLCBob3N0YWRkciwgZGV2YWRkciwgc2l6ZSk7 CiAJICAgICAgfQogCSAgfQorCWVsc2UKKwkgIHsKKwkgICAgaW50IGtpbmQgPSBnZXRfa2lu ZCAoc2hvcnRfbWFwa2luZCwga2luZHMsIGkpOworCisJICAgIGlmIChHT01QX01BUF9QUkVT RU5UX1AgKGtpbmQpKQorCSAgICAgIHsKKwkJLyogV2UgYWxyZWFkeSBsb29rZWQgdXAgdGhl IG1lbW9yeSByZWdpb24gYWJvdmUgYW5kIGl0CisJCSAgIHdhcyBtaXNzaW5nLiAgKi8KKwkJ Z29tcF9tdXRleF91bmxvY2sgKCZkZXZpY2VwLT5sb2NrKTsKKwkJZ29tcF9mYXRhbCAoInBy ZXNlbnQgY2xhdXNlOiBub3QgcHJlc2VudCBvbiB0aGUgZGV2aWNlICIKKwkJCSAgICAiKCVw LCAlZCkiLAorCQkJICAgICh2b2lkICopIGhvc3RhZGRyc1tpXSwgZGV2aWNlcC0+dGFyZ2V0 X2lkKTsKKwkgICAgICB9CisJICB9CiAgICAgICB9CiAgIGdvbXBfbXV0ZXhfdW5sb2NrICgm ZGV2aWNlcC0+bG9jayk7CiB9CkBAIC0zNDIyLDcgKzM0NTIsOCBAQCBnb21wX3RhcmdldF9y ZXYgKHVpbnQ2NF90IGZuX3B0ciwgdWludDY0X3QgbWFwbnVtLCB1aW50NjRfdCBkZXZhZGRy c19wdHIsCiAJICAgICAgY2FzZSBHT01QX01BUF9ERUxFVEU6CiAJICAgICAgY2FzZSBHT01Q X01BUF9SRUxFQVNFOgogCSAgICAgIGNhc2UgR09NUF9NQVBfREVMRVRFX1pFUk9fTEVOX0FS UkFZX1NFQ1RJT046Ci0JCS8qIEFzc3VtZSBpdCBpcyBwcmVzZW50OyBsb29rIGl0IHVwIC0g YnV0IGlnbm9yZSBvdGhlcndpc2UuICovCisJCS8qIEFzc3VtZSBpdCBpcyBwcmVzZW50OyBs b29rIGl0IHVwIC0gYnV0IGlnbm9yZSB1bmxlc3MgdGhlCisJCSAgIHByZXNlbnQgY2xhdXNl IGlzIHRoZXJlLiAqLwogCSAgICAgIGNhc2UgR09NUF9NQVBfQUxMT0M6CiAJICAgICAgY2Fz ZSBHT01QX01BUF9GUk9NOgogCSAgICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfQUxMT0M6CkBA IC0zNDM0LDYgKzM0NjUsMTIgQEAgZ29tcF90YXJnZXRfcmV2ICh1aW50NjRfdCBmbl9wdHIs IHVpbnQ2NF90IG1hcG51bSwgdWludDY0X3QgZGV2YWRkcnNfcHRyLAogCSAgICAgIGNhc2Ug R09NUF9NQVBfRk9SQ0VfVE9GUk9NOgogCSAgICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RP OgogCSAgICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgICAgICBjYXNlIEdP TVBfTUFQX1BSRVNFTlRfRlJPTToKKwkgICAgICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE86 CisJICAgICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkgICAgICBjYXNlIEdP TVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006CisJICAgICAgY2FzZSBHT01QX01BUF9BTFdB WVNfUFJFU0VOVF9UTzoKKwkgICAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RP RlJPTToKIAkgICAgICBjYXNlIEdPTVBfTUFQX1pFUk9fTEVOX0FSUkFZX1NFQ1RJT046CiAJ CWNkYXRhW2ldLmRldmFkZHIgPSBkZXZhZGRyc1tpXTsKIAkJYm9vbCB6ZXJvX2xlbiA9IChr aW5kID09IEdPTVBfTUFQX0RFTEVURV9aRVJPX0xFTl9BUlJBWV9TRUNUSU9OCkBAIC0zNDU0 LDcgKzM0OTEsMjMgQEAgZ29tcF90YXJnZXRfcmV2ICh1aW50NjRfdCBmbl9wdHIsIHVpbnQ2 NF90IG1hcG51bSwgdWludDY0X3QgZGV2YWRkcnNfcHRyLAogCQkJCQkgICAgICBkZXZhZGRy c1tpXSArIHNpemVzW2ldLCB6ZXJvX2xlbik7CiAJCSAgICBjZGF0YVtpXS5wcmVzZW50ID0g bjIgIT0gTlVMTDsKIAkJICB9Ci0JCWlmICghY2RhdGFbaV0ucHJlc2VudAorCQlpZiAoIWNk YXRhW2ldLnByZXNlbnQgJiYgR09NUF9NQVBfUFJFU0VOVF9QIChraW5kKSkKKwkJICB7CisJ CSAgICBnb21wX211dGV4X3VubG9jayAoJmRldmljZXAtPmxvY2spOworI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAorCQkgICAgZ29tcF9mYXRhbCAoInByZXNlbnQgY2xhdXNlOiBubyBjb3Jy ZXNwb25kaW5nIGRhdGEgb24gIgorCQkJCSJwYXJlbnQgZGV2aWNlIGF0ICVwIHdpdGggc2l6 ZSAlIlBSSXU2NCwKKwkJCQkodm9pZCAqKSAodWludHB0cl90KSBkZXZhZGRyc1tpXSwKKwkJ CQkodWludDY0X3QpIHNpemVzW2ldKTsKKyNlbHNlCisJCSAgICBnb21wX2ZhdGFsICgicHJl c2VudCBjbGF1c2U6IG5vIGNvcnJlc3BvbmRpbmcgZGF0YSBvbiAiCisJCQkJInBhcmVudCBk ZXZpY2UgYXQgJXAgd2l0aCBzaXplICVsdSIsCisJCQkJKHZvaWQgKikgKHVpbnRwdHJfdCkg ZGV2YWRkcnNbaV0sCisJCQkJKHVuc2lnbmVkIGxvbmcpIHNpemVzW2ldKTsKKyNlbmRpZgor CQkgICAgYnJlYWs7CisJCSAgfQorCQllbHNlIGlmICghY2RhdGFbaV0ucHJlc2VudAogCQkg ICAgJiYga2luZCAhPSBHT01QX01BUF9ERUxFVEUKIAkJICAgICYmIGtpbmQgIT0gR09NUF9N QVBfUkVMRUFTRQogCQkgICAgJiYga2luZCAhPSBHT01QX01BUF9ERUxFVEVfWkVST19MRU5f QVJSQVlfU0VDVElPTikKQEAgLTM0NzIsOCArMzUyNSw3IEBAIGdvbXBfdGFyZ2V0X3JldiAo dWludDY0X3QgZm5fcHRyLCB1aW50NjRfdCBtYXBudW0sIHVpbnQ2NF90IGRldmFkZHJzX3B0 ciwKIAkJICAgICAmJiAoa2luZCA9PSBHT01QX01BUF9UTyB8fCBraW5kID09IEdPTVBfTUFQ X1RPRlJPTSkpCiAJCSAgICB8fCBraW5kID09IEdPTVBfTUFQX0ZPUkNFX1RPCiAJCSAgICB8 fCBraW5kID09IEdPTVBfTUFQX0ZPUkNFX1RPRlJPTQotCQkgICAgfHwga2luZCA9PSBHT01Q X01BUF9BTFdBWVNfVE8KLQkJICAgIHx8IGtpbmQgPT0gR09NUF9NQVBfQUxXQVlTX1RPRlJP TSkKKwkJICAgIHx8IEdPTVBfTUFQX0FMV0FZU19UT19QIChraW5kKSkKIAkJICB7CiAJCSAg ICBnb21wX2NvcHlfZGV2Mmhvc3QgKGRldmljZXAsIGFxLAogCQkJCQkodm9pZCAqKSAodWlu dHB0cl90KSBkZXZhZGRyc1tpXSwKQEAgLTM2NTgsNiArMzcxMCwxMCBAQCBnb21wX3Rhcmdl dF9yZXYgKHVpbnQ2NF90IGZuX3B0ciwgdWludDY0X3QgbWFwbnVtLCB1aW50NjRfdCBkZXZh ZGRyc19wdHIsCiAJICAgICAgY2FzZSBHT01QX01BUF9GT1JDRV9UT0ZST006CiAJICAgICAg Y2FzZSBHT01QX01BUF9BTFdBWVNfRlJPTToKIAkgICAgICBjYXNlIEdPTVBfTUFQX0FMV0FZ U19UT0ZST006CisJICAgICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICAgICAg Y2FzZSBHT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkgICAgICBjYXNlIEdPTVBfTUFQX0FM V0FZU19QUkVTRU5UX0ZST006CisJICAgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9UT0ZST006CiAJCWNvcHkgPSB0cnVlOwogCQkvKiBGQUxMVEhSVSAqLwogCSAgICAgIGNh c2UgR09NUF9NQVBfRlJPTToKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTEuYyBiL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTEuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTJmMTU0YzkxYTgKLS0tIC9kZXYvbnVsbAor KysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtcHJl c2VudC0xLmMKQEAgLTAsMCArMSwyNyBAQAorLyogeyBkZy1kbyBydW4geyB0YXJnZXQgb2Zm bG9hZF9kZXZpY2UgfSB9ICovCisvKiB7IGRnLXNob3VsZGZhaWwgInByZXNlbnQgZXJyb3Ig dHJpZ2dlcmVkIiB9ICovCisKKyNkZWZpbmUgTiAxMDAKKworaW50IG1haW4gKHZvaWQpCit7 CisgIGludCBhW05dLCBiW05dLCBjW05dOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsg aSsrKSB7CisgICAgYVtpXSA9IGkgKiAyOworICAgIGJbaV0gPSBpICogMyArIDE7CisgIH0K KworICAjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKGFsbG9jOiBhLCBjKQor ICAgIC8qIGEgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQsIHNvIHRoaXMgc2hvdWxkIGJl IG9rYXkuICAqLworICAgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKHByZXNlbnQsIHRvOiBh KQorICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspCisJY1tpXSA9IGFbaV07CisK KyAgICAvKiBiIGhhcyBub3QgYmVlbiBhbGxvY2F0ZWQsIHNvIHRoaXMgc2hvdWxkIHJlc3Vs dCBpbiBhbiBlcnJvci4gICovCisgICAgLyogeyBkZy1vdXRwdXQgImxpYmdvbXA6IHByZXNl bnQgY2xhdXNlOiBub3QgcHJlc2VudCBvbiB0aGUgZGV2aWNlIFxcXCgweFxbMC05YS1mXF0r LCBcWzAtOVxdK1xcXCkiIH0gKi8KKyAgICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChwcmVz ZW50LCB0bzogYikKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQorCWNbaV0g Kz0gYltpXTsKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXAgKGZyb206IGMp Cit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1v bi90YXJnZXQtcHJlc2VudC0yLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysr LWNvbW1vbi90YXJnZXQtcHJlc2VudC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmQ0ZGViYmFiMTBiCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LXByZXNlbnQtMi5jCkBAIC0w LDAgKzEsMjcgQEAKKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IG9mZmxvYWRfZGV2aWNlIH0g fSAqLworLyogeyBkZy1zaG91bGRmYWlsICJwcmVzZW50IGVycm9yIHRyaWdnZXJlZCIgfSAq LworCisjZGVmaW5lIE4gMTAwCisKK2ludCBtYWluICh2b2lkKQoreworICBpbnQgYVtOXSwg YltOXSwgY1tOXTsKKworICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgeworICAgIGFb aV0gPSBpICogMjsKKyAgICBiW2ldID0gaSAqIDMgKyAxOworICB9CisKKyAgI3ByYWdtYSBv bXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwIChhbGxvYzogYSwgYykKKyAgICAvKiBhIGhhcyBh bHJlYWR5IGJlZW4gYWxsb2NhdGVkLCBzbyB0aGlzIHNob3VsZCBiZSBva2F5LiAgKi8KKyAg ICAjcHJhZ21hIG9tcCB0YXJnZXQgZGVmYXVsdG1hcCAocHJlc2VudCkKKyAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTjsgaSsrKQorCWNbaV0gPSBhW2ldOworCisgICAgLyogYiBoYXMg bm90IGJlZW4gYWxsb2NhdGVkLCBzbyB0aGlzIHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3Iu ICAqLworICAgIC8qIHsgZGctb3V0cHV0ICJsaWJnb21wOiBwcmVzZW50IGNsYXVzZTogbm90 IHByZXNlbnQgb24gdGhlIGRldmljZSBcXFwoMHhcWzAtOWEtZlxdKywgXFswLTlcXStcXFwp IiB9ICovCisgICAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRlZmF1bHRtYXAgKHByZXNlbnQpCisg ICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykKKwljW2ldICs9IGJbaV07CisgICNw cmFnbWEgb21wIHRhcmdldCBleGl0IGRhdGEgbWFwIChmcm9tOiBjKQorfQpkaWZmIC0tZ2l0 IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LXByZXNl bnQtMy5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0 LXByZXNlbnQtMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45 ZDhkOGY4YTMzNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTMuYwpAQCAtMCwwICsxLDI3IEBACisv KiB7IGRnLWRvIHJ1biB7IHRhcmdldCBvZmZsb2FkX2RldmljZSB9IH0gKi8KKy8qIHsgZGct c2hvdWxkZmFpbCAicHJlc2VudCBlcnJvciB0cmlnZ2VyZWQiIH0gKi8KKworI2luY2x1ZGUg PHN0ZGlvLmg+CisKKyNkZWZpbmUgTiAxMDAKKworaW50IG1haW4gKHZvaWQpCit7CisgIGlu dCBhW05dLCBiW05dLCBjW05dOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7 CisgICAgYVtpXSA9IGkgKiAyOworICAgIGJbaV0gPSBpICogMyArIDE7CisgIH0KKworICAj cHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKGFsbG9jOiBhLCBjKQorCisgIC8q IFRoaXMgc2hvdWxkIHdvcmsgYXMgYSBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRlZC4gICov CisgICNwcmFnbWEgb21wIHRhcmdldCB1cGRhdGUgdG8gKHByZXNlbnQ6IGEpCisKKyAgLyog VGhpcyBzaG91bGQgZmFpbCBhcyBiIGhhcyBub3QgYmVlbiBhbGxvY2F0ZWQuICAqLworICAv KiB7IGRnLW91dHB1dCAibGliZ29tcDogcHJlc2VudCBjbGF1c2U6IG5vdCBwcmVzZW50IG9u IHRoZSBkZXZpY2UgXFxcKDB4XFswLTlhLWZcXSssIFxbMC05XF0rXFxcKSIgfSAqLworICAj cHJhZ21hIG9tcCB0YXJnZXQgdXBkYXRlIHRvIChwcmVzZW50OiBiKQorCisgICNwcmFnbWEg b21wIHRhcmdldCBleGl0IGRhdGEgbWFwIChmcm9tOiBjKQorfQpkaWZmIC0tZ2l0IGEvbGli Z29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTEuZjkwIGIv bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTEuZjkw Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDlkY2IxMThiMgot LS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90 YXJnZXQtcHJlc2VudC0xLmY5MApAQCAtMCwwICsxLDMwIEBACishIHsgZGctZG8gcnVuIHsg dGFyZ2V0IG9mZmxvYWRfZGV2aWNlIH0gfQorISB7IGRnLXNob3VsZGZhaWwgInByZXNlbnQg ZXJyb3IgdHJpZ2dlcmVkIiB9CisKK3Byb2dyYW0gbWFpbgorICBpbXBsaWNpdCBub25lCisg IGludGVnZXIsIHBhcmFtZXRlciA6OiBOID0gMTAwCisgIGludGVnZXIgOjogYShOKSwgYihO KSwgYyhOKSwgaQorCisgIGRvIGkgPSAxLCBOCisgICAgYShpKSA9IGkgKiAyCisgICAgYihp KSA9IGkgKiAzICsgMQorICBlbmQgZG8KKworICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBt YXAgKGFsbG9jOiBhKQorICAgICEgYSBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRlZCwgc28g dGhpcyBzaG91bGQgYmUgb2theS4KKyAgICAhJG9tcCB0YXJnZXQgbWFwIChwcmVzZW50LCB0 bzogYSkKKyAgICAgIGRvIGkgPSAxLCBOCisgICAgICAgIGMoaSkgPSBhKGkpCisgICAgICBl bmQgZG8KKyAgICAhJG9tcCBlbmQgdGFyZ2V0CisKKyAgICAhIGIgaGFzIG5vdCBiZWVuIGFs bG9jYXRlZCwgc28gdGhpcyBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yLgorICAgICEgeyBk Zy1vdXRwdXQgImxpYmdvbXA6IHByZXNlbnQgY2xhdXNlOiBub3QgcHJlc2VudCBvbiB0aGUg ZGV2aWNlIFxcXCgweFxbMC05YS1mXF0rLCBcWzAtOVxdK1xcXCkiIH0KKyAgICAhJG9tcCB0 YXJnZXQgbWFwIChwcmVzZW50LCB0bzogYikKKyAgICAgIGRvIGkgPSAxLCBOCisgICAgICAg IGMoaSkgPSBjKGkpICsgYihpKQorICAgICAgZW5kIGRvCisgICAgISRvbXAgZW5kIHRhcmdl dAorICAhJG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcCAoZnJvbTogYykKK2VuZCBwcm9ncmFt CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0 LXByZXNlbnQtMi5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFy Z2V0LXByZXNlbnQtMi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjA3ZTc5ZDFiNTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUv bGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTIuZjkwCkBAIC0wLDAgKzEsMzAgQEAK KyEgeyBkZy1kbyBydW4geyB0YXJnZXQgb2ZmbG9hZF9kZXZpY2UgfSB9CishIHsgZGctc2hv dWxkZmFpbCAicHJlc2VudCBlcnJvciB0cmlnZ2VyZWQiIH0KKworcHJvZ3JhbSBtYWluCisg IGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSAxMDAKKyAgaW50 ZWdlciA6OiBhKE4pLCBiKE4pLCBjKE4pLCBpCisKKyAgZG8gaSA9IDEsIE4KKyAgICBhKGkp ID0gaSAqIDIKKyAgICBiKGkpID0gaSAqIDMgKyAxCisgIGVuZCBkbworCisgICEkb21wIHRh cmdldCBlbnRlciBkYXRhIG1hcCAoYWxsb2M6IGEpCisgICAgISBhIGhhcyBhbHJlYWR5IGJl ZW4gYWxsb2NhdGVkLCBzbyB0aGlzIHNob3VsZCBiZSBva2F5LgorICAgICEkb21wIHRhcmdl dCBkZWZhdWx0bWFwIChwcmVzZW50KQorICAgICAgZG8gaSA9IDEsIE4KKyAgICAgICAgYyhp KSA9IGEoaSkKKyAgICAgIGVuZCBkbworICAgICEkb21wIGVuZCB0YXJnZXQKKworICAgICEg YiBoYXMgbm90IGJlZW4gYWxsb2NhdGVkLCBzbyB0aGlzIHNob3VsZCByZXN1bHQgaW4gYW4g ZXJyb3IuCisgICAgISB7IGRnLW91dHB1dCAibGliZ29tcDogcHJlc2VudCBjbGF1c2U6IG5v dCBwcmVzZW50IG9uIHRoZSBkZXZpY2UgXFxcKDB4XFswLTlhLWZcXSssIFxbMC05XF0rXFxc KSIgfQorICAgICEkb21wIHRhcmdldCBkZWZhdWx0bWFwIChwcmVzZW50KQorICAgICAgZG8g aSA9IDEsIE4KKyAgICAgICAgYyhpKSA9IGMoaSkgKyBiKGkpCisgICAgICBlbmQgZG8KKyAg ICAhJG9tcCBlbmQgdGFyZ2V0CishJG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcCAoZnJvbTog YykKK2VuZCBwcm9ncmFtCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMy5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJn b21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMy5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEyNzA5ZWI2ZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvbGli Z29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTMuZjkwCkBA IC0wLDAgKzEsMjIgQEAKKyEgeyBkZy1kbyBydW4geyB0YXJnZXQgb2ZmbG9hZF9kZXZpY2Ug fSB9CishIHsgZGctc2hvdWxkZmFpbCAicHJlc2VudCBlcnJvciB0cmlnZ2VyZWQiIH0KKwor cHJvZ3JhbSBtYWluCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6 IE4gPSAxMDAKKyAgaW50ZWdlciA6OiBhKE4pLCBiKE4pLCBjKE4pLCBpCisKKyAgZG8gaSA9 IDEsIE4KKyAgICBhKGkpID0gaSAqIDIKKyAgICBiKGkpID0gaSAqIDMgKyAxCisgIGVuZCBk bworCisgICEkb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcCAoYWxsb2M6IGEsIGMpCisgICAg ISBUaGlzIHNob3VsZCB3b3JrIGFzIGEgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQuCisg ICAgISRvbXAgdGFyZ2V0IHVwZGF0ZSB0byAocHJlc2VudDogYSkKKworICAgICEgVGhpcyBz aG91bGQgZmFpbCBhcyBiIGhhcyBub3QgYmVlbiBhbGxvY2F0ZWQuCisgICAgISB7IGRnLW91 dHB1dCAibGliZ29tcDogcHJlc2VudCBjbGF1c2U6IG5vdCBwcmVzZW50IG9uIHRoZSBkZXZp Y2UgXFxcKDB4XFswLTlhLWZcXSssIFxbMC05XF0rXFxcKSIgfQorICAgICEkb21wIHRhcmdl dCB1cGRhdGUgdG8gKHByZXNlbnQ6IGIpCisgICEkb21wIHRhcmdldCBleGl0IGRhdGEgbWFw IChmcm9tOiBjKQorZW5kIHByb2dyYW0K --------------SYz9PGn9OeQSj0HiDs0LVeP2--