Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMo6e-00060k-G9 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Mar 2021 08:34:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lMo6d-0006dZ-DH for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Mar 2021 08:34:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMo6c-0006dQ-Hc for pgsql-hackers@lists.postgresql.org; Thu, 18 Mar 2021 08:34:11 +0000 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lMo6W-0005B2-DF for pgsql-hackers@postgresql.org; Thu, 18 Mar 2021 08:34:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1616056445; x=1647592445; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=1Ds3AL4k1JtqLE9XzRnTooFsiMP2q09kzCO5T40Oepc=; b=UN7F60Jf/Macr2ngFWqq3r6LFgjoVV/QQVjFqGsJNxhM0uOWoOIj/v03 OCdlKWxw4MyAjc6NgJNahrJ2D2XsXiaE9UISeMI4JQzQvDB4f3Gt5FX0C 10Zgk2jF1Zvo4s+Jtnm8kXsJ7rugfXY89i2Chnmd6FTsLt+7SwiwY+FD1 0=; X-Amazon-filename: v10-0005-Doc-changes-describing-details-about-logical-dec.patch, v10-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v10-0003-Handle-logical-slot-conflicts-on-standby.patch, v10-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch, v10-0001-Allow-logical-decoding-on-standby.patch X-IronPort-AV: E=Sophos;i="5.81,257,1610409600"; d="scan'208,217,223";a="95606892" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1a-16acd5e0.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 18 Mar 2021 08:33:57 +0000 Received: from EX13D03EUC003.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1a-16acd5e0.us-east-1.amazon.com (Postfix) with ESMTPS id 1F91FA1B3E; Thu, 18 Mar 2021 08:33:54 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.161.244) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Mar 2021 08:33:49 +0000 Subject: Re: Minimal logical decoding on standbys To: CC: Alvaro Herrera , Andres Freund , tushar , "[pgdg] Robert Haas" , Amit Khandekar , Rahila Syed , pgsql-hackers References: <20200318184249.GA29007@alvherre.pgsql> <20200318195038.GA7123@alvherre.pgsql> <1ab609c9-2c16-26ff-5fbe-c3195e541f9c@amazon.com> From: "Drouvot, Bertrand" Message-ID: <6e1dda09-0c4f-b196-a589-fb741f11686f@amazon.com> Date: Thu, 18 Mar 2021 09:33:45 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------E9F9D4251DD06A0E71BDCCF4" Content-Language: en-US X-Originating-IP: [10.43.161.244] X-ClientProxiedBy: EX13D05UWC004.ant.amazon.com (10.43.162.223) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: multipart/alternative; boundary="------------146A11D9EFB0A2FF34DC1EA7" --------------146A11D9EFB0A2FF34DC1EA7 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi, On 2/4/21 6:33 PM, Fabrízio de Royes Mello wrote: > > On Thu, Feb 4, 2021 at 1:49 PM Drouvot, Bertrand > wrote: > > > > Had to do a little change to make it compiling again (re-add the > heapRel argument in _bt_delitems_delete() that was removed by commit > dc43492e46c7145a476cb8ca6200fc8eefe673ef). > > > > Given that this attached v9 version: > > > > compiles successfully on current master > > passes "make check" > > passes the 2 associated tap tests "make -C src/test/recovery check > PROVE_TESTS=t/022_standby_logical_decoding_xmins.pl > PROVE_FLAGS=-v"  and > "make -C src/test/recovery check > PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl > PROVE_FLAGS=-v" > > > > Perfect thanks... will review ASAP! Thanks! Just made minor changes to make it compiling again on current master (mainly had to take care of ResolveRecoveryConflictWithSnapshotFullXid() that has been introduced in e5d8a99903). Please find enclosed the new patch version that currently passes "make check" and the 2 associated TAP tests. I'll have a look to the whole thread to check if there is anything else waiting in the pipe regarding this feature, unless some of you know off the top of their head? Bertrand --------------146A11D9EFB0A2FF34DC1EA7 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit

Hi,

On 2/4/21 6:33 PM, Fabrízio de Royes Mello wrote:

On Thu, Feb 4, 2021 at 1:49 PM Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
>
> Had to do a little change to make it compiling again (re-add the heapRel argument in _bt_delitems_delete() that was removed by commit dc43492e46c7145a476cb8ca6200fc8eefe673ef).
>
> Given that this attached v9 version:
>
> compiles successfully on current master
> passes "make check"
> passes the 2 associated tap tests "make -C src/test/recovery check PROVE_TESTS=t/022_standby_logical_decoding_xmins.pl PROVE_FLAGS=-v"  and "make -C src/test/recovery check PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl PROVE_FLAGS=-v"
>

Perfect thanks... will review ASAP!

Thanks!

Just made minor changes to make it compiling again on current master (mainly had to take care of ResolveRecoveryConflictWithSnapshotFullXid() that has been introduced in e5d8a99903).

Please find enclosed the new patch version that currently passes "make check" and the 2 associated TAP tests.

I'll have a look to the whole thread to check if there is anything else waiting in the pipe regarding this feature, unless some of you know off the top of their head?

Bertrand

--------------146A11D9EFB0A2FF34DC1EA7-- --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v10-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v10-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" RnJvbSA2ZTgwZjQ2YWNlODY1OTNiNWQzNjg2ZTc5MmE2YWMzYTA3OTBlM2QyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNyBNYXIgMjAyMSAxNjoxNDoyMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjEwIDUvNV0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwg fCAxOCArKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspCiAxMDAuMCUgZG9jL3NyYy9zZ21sLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9s b2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dt bAppbmRleCA4MGViOTZkNjA5Li5hMmE3NmQyZjY1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCkBAIC0yOTcsNiArMjk3LDI0IEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJv bSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEws IE5VCiAgICAgIG1heSBjb25zdW1lIGNoYW5nZXMgZnJvbSBhIHNsb3QgYXQgYW55IGdpdmVu IHRpbWUuCiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBs aWNhdGlvbiBzbG90IGNhbiBhbHNvIGJlIGNyZWF0ZWQgb24gYSBob3Qgc3RhbmRieS4gVG8g cHJldmVudAorICAgICA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IGZyb20gcmVtb3Zpbmcg cmVxdWlyZWQgcm93cyBmcm9tIHRoZSBzeXN0ZW0KKyAgICAgY2F0YWxvZ3MsIDx2YXJuYW1l PmhvdF9zdGFuZGJ5X2ZlZWRiYWNrPC92YXJuYW1lPiBzaG91bGQgYmUgc2V0IG9uIHRoZQor ICAgICBzdGFuZGJ5LiBJbiBzcGl0ZSBvZiB0aGF0LCBpZiBhbnkgcmVxdWlyZWQgcm93cyBn ZXQgcmVtb3ZlZCwgdGhlIHNsb3QgZ2V0cworICAgICBkcm9wcGVkLiAgRXhpc3RpbmcgbG9n aWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGRyb3BwZWQgaWYgd2FsX2xldmVsCisg ICAgIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNzIHRoYW4gJ2xvZ2ljYWwnLgorICAg IDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgYSBsb2dpY2FsIHNsb3QgdG8gYmUg Y3JlYXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMgc25hcHNob3QsIGZvciB3aGljaAorICAg ICBpbmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRyYW5zYWN0aW9u cyBpcyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1hcnksIHRoaXMgaW5mb3JtYXRpb24gaXMg YXZhaWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhpcyBpbmZvcm1hdGlvbgorICAgICBoYXMg dG8gYmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBTbywgc2xvdCBjcmVhdGlvbiBtYXkgd2Fp dCBmb3Igc29tZQorICAgICBhY3Rpdml0eSB0byBoYXBwZW4gb24gdGhlIHByaW1hcnkuIElm IHRoZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5nIGEKKyAgICAgbG9naWNhbCBzbG90IG9u IHN0YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxlIHRpbWUuCisgICAgPC9wYXJhPgorCiAg ICAgPGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAgICAgUmVwbGljYXRpb24gc2xvdHMgcGVy c2lzdCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBub3RoaW5nIGFib3V0IHRoZSBzdGF0ZQot LSAKMi4xOC40Cgo= --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v10-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v10-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSA3MTAxYWVkNTA5YmJjYjk4ZDc2NTYyZTA5OGJmYzVmMmM1YjViZTFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNyBNYXIgMjAyMSAxNjoxMzoxMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjEwIDQvNV0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpUaGlzIHRlc3Qgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBDcmFpZyBSaW5nZXIs IHRoZW4KZXh0ZW5kZWQvbW9kaWZpZWQgYnkgbWUsIHRvIHRlc3QgdmFyaW91cyBzbG90IGNv bmZsaWN0IHNjZW5hcmlvcy4KCkF1dGhvcnM6IENyYWlnIFJpbmdlciwgQW1pdCBLaGFuZGVr YXIuCi0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0gICAgICAgICAgICAgICAg IHwgIDM3ICsrKwogLi4uL3QvMDIyX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5w bCAgIHwgMjcyICsrKysrKysrKysrKysrKysrKwogLi4uLzAyM19zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmdfY29uZmxpY3RzLnBsIHwgMjE1ICsrKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDUyNCBpbnNlcnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC8KICA5My45 JSBzcmMvdGVzdC9yZWNvdmVyeS90LwoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9z dGdyZXNOb2RlLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KaW5kZXggOTY2 N2Y3NjY3ZS4uMWQ2MjcwMGNhNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl c05vZGUucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KQEAgLTIyMjMs NiArMjIyMyw0MyBAQCBzdWIgcGdfcmVjdmxvZ2ljYWxfdXB0bwogCiA9cG9kCiAKKz1pdGVt ICRub2RlLT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoc2VsZiwgbWFzdGVyLCBz bG90X25hbWUsIGRibmFtZSkKKworQ3JlYXRlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBv biBnaXZlbiBzdGFuZGJ5CisKKz1jdXQKKworc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25f c3RhbmRieQoreworCW15ICgkc2VsZiwgJG1hc3RlciwgJHNsb3RfbmFtZSwgJGRibmFtZSkg PSBAXzsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKwlteSAkaGFuZGxlOworCisJJGhh bmRsZSA9IElQQzo6UnVuOjpzdGFydChbJ3BnX3JlY3Zsb2dpY2FsJywgJy1kJywgJHNlbGYt PmNvbm5zdHIoJGRibmFtZSksICctUCcsICd0ZXN0X2RlY29kaW5nJywgJy1TJywgJHNsb3Rf bmFtZSwgJy0tY3JlYXRlLXNsb3QnXSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIp OworCisJIyBPbmNlIHNsb3QgcmVzdGFydF9sc24gaXMgY3JlYXRlZCwgdGhlIHN0YW5kYnkg bG9va3MgZm9yIHhsX3J1bm5pbmdfeGFjdHMKKwkjIFdBTCByZWNvcmQgZnJvbSB0aGUgcmVz dGFydF9sc24gb253YXJkcy4gU28gZmlyc3RseSwgd2FpdCB1bnRpbCB0aGUgc2xvdAorCSMg cmVzdGFydF9sc24gaXMgZXZhbHVhdGVkLgorCisJJHNlbGYtPnBvbGxfcXVlcnlfdW50aWwo CisJCSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgcmVzdGFydF9sc24gSVMgTk9UIE5VTEwK KwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFt ZSA9ICckc2xvdF9uYW1lJworCV0pIG9yIGRpZSAidGltZWQgb3V0IHdhaXRpbmcgZm9yIGxv Z2ljYWwgc2xvdCB0byBjYWxjdWxhdGUgaXRzIHJlc3RhcnRfbHNuIjsKKworCSMgTm93IGFy cmFuZ2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCBmb3Igd2hpY2ggcGdfcmVj dmxvZ2ljYWwKKwkjIGlzIHdhaXRpbmcuCisJJG1hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdDSEVDS1BPSU5UJyk7CisKKwkkaGFuZGxlLT5maW5pc2goKTsKKworCWlzKCRzZWxm LT5zbG90KCRzbG90X25hbWUpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsICRzbG90X25h bWUgLiAnIG9uIHN0YW5kYnkgY3JlYXRlZCcpCisJCW9yIGRpZSAiY291bGQgbm90IGNyZWF0 ZSBzbG90IiAuICRzbG90X25hbWU7Cit9CisKKz1wb2QKKwogPWJhY2sKIAogPWN1dApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2FsX2RlY29k aW5nX3htaW5zLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2Fs X2RlY29kaW5nX3htaW5zLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmQ2NTRkNzk1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90 LzAyMl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfeG1pbnMucGwKQEAgLTAsMCArMSwyNzIg QEAKKyMgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnkgOiBlbnN1cmUgeG1pbnMgYXJl IGFwcHJvcHJpYXRlbHkgdXBkYXRlZAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor Cit1c2UgUG9zdGdyZXNOb2RlOwordXNlIFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0 cyA9PiAyMzsKK3VzZSBSZWN1cnNpdmVDb3B5OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgVGlt ZTo6SGlSZXMgcXcodXNsZWVwKTsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwg JHJldCwgJGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9tYXN0ZXIgPSBnZXRfbmV3X25v ZGUoJ21hc3RlcicpOworbXkgJG5vZGVfc3RhbmRieSA9IGdldF9uZXdfbm9kZSgnc3RhbmRi eScpOworCisjIE5hbWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9uIG1hc3RlcgorbXkgJG1h c3Rlcl9zbG90bmFtZSA9ICdtYXN0ZXJfcGh5c2ljYWwnOworIyBOYW1lIGZvciB0aGUgbG9n aWNhbCBzbG90IG9uIHN0YW5kYnkKK215ICRzdGFuZGJ5X3Nsb3RuYW1lID0gJ3N0YW5kYnlf bG9naWNhbCc7CisKKyMgRmV0Y2ggeG1pbiBjb2x1bW5zIGZyb20gc2xvdCdzIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIHJvdywgYWZ0ZXIgd2FpdGluZyBmb3IKKyMgZ2l2ZW4gYm9vbGVhbiBj b25kaXRpb24gdG8gYmUgdHJ1ZSB0byBlbnN1cmUgd2UndmUgcmVhY2hlZCBhIHF1aWVzY2Vu dCBzdGF0ZQorc3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUs ICRjaGVja19leHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdw b3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9n LnBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUn OworCV0pIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2 YW5jZSI7Cit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUg bWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9tYXN0ZXIt PmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5v ZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZl bCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5k ZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9z aXR5ID0gdmVyYm9zZQorIyB2ZXJ5IHByb21wdGx5IHRlcm1pbmF0ZSBjb25mbGljdGluZyBi YWNrZW5kcworbWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5ID0gJzJzJworfSk7Ciskbm9k ZV9tYXN0ZXItPmR1bXBfaW5mbzsKKyRub2RlX21hc3Rlci0+c3RhcnQ7CisKKyRub2RlX21h c3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVDVCAqIEZST00gcGdfY3JlYXRl X3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRtYXN0ZXJfc2xvdG5hbWUnKTtdKTsKK215 ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9tYXN0ZXItPmJhY2t1cCgkYmFja3VwX25h bWUpOworCisjIEFmdGVyIHNsb3QgY3JlYXRpb24sIHhtaW5zIG11c3QgYmUgbnVsbAorJHNs b3QgPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSk7Citpcygkc2xvdC0+ eyd4bWluJ30sICcnLCAieG1pbiBudWxsIik7Citpcygkc2xvdC0+eydjYXRhbG9nX3htaW4n fSwgJycsICJjYXRhbG9nX3htaW4gbnVsbCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBJbml0aWFsaXplIHNsYXZlIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK KyRub2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfbWFzdGVyLCAkYmFj a3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7 Ciskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwlxcVtw cmltYXJ5X3Nsb3RfbmFtZSA9ICckbWFzdGVyX3Nsb3RuYW1lJ10pOworJG5vZGVfc3RhbmRi eS0+c3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyB4bWluL2NhdGFsb2dfeG1pbiB2ZXJpZmlj YXRpb24gYmVmb3JlIGFuZCBhZnRlciBzdGFuZGJ5LWxvZ2ljYWwtc2xvdCBjcmVhdGlvbi4K KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgV2l0aCBob3Rfc3RhbmRi eV9mZWVkYmFjayBvZmYsIHhtaW4gYW5kIGNhdGFsb2dfeG1pbiBtdXN0IHN0aWxsIGJlIG51 bGwKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUpOworaXMo JHNsb3QtPnsneG1pbid9LCAnJywgInhtaW4gbnVsbCBhZnRlciBzdGFuZGJ5IGpvaW4iKTsK K2lzKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAnJywgImNhdGFsb2dfeG1pbiBudWxsIGFm dGVyIHN0YW5kYnkgam9pbiIpOworCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9z dGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorIyBzZW5kIHN0 YXR1cyByYXBpZGx5IHNvIHdlIHByb21wdGx5IGFkdmFuY2UgeG1pbiBvbiBtYXN0ZXIKK3dh bF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIHNlbnQgYnkgd2FpdGlu ZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIG1hc3Rlci4gV2l0 aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1pbiBzaG91bGQgYWR2YW5jZSwKKyMgYnV0 IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVtYWluIE5VTEwgc2luY2UgdGhlcmUgaXMg bm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVy X3Nsb3RuYW1lLCAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwi KTsKKworIyBDcmVhdGUgbmV3IHNsb3RzIG9uIHRoZSBzdGFuZGJ5LCBpZ25vcmluZyB0aGUg b25lcyBvbiB0aGUgbWFzdGVyIGNvbXBsZXRlbHkuCisjCisjIFRoaXMgbXVzdCBzdWNjZWVk IHNpbmNlIHdlIGtub3cgd2UgaGF2ZSBhIGNhdGFsb2dfeG1pbiByZXNlcnZhdGlvbi4gV2UK KyMgbWlnaHQndmUgYWxyZWFkeSBzZW50IGhvdCBzdGFuZGJ5IGZlZWRiYWNrIHRvIGFkdmFu Y2Ugb3VyIHBoeXNpY2FsIHNsb3QncworIyBjYXRhbG9nX3htaW4gYnV0IG5vdCByZWNlaXZl ZCB0aGUgY29ycmVzcG9uZGluZyB4bG9nIGZvciB0aGUgY2F0YWxvZyB4bWluCisjIGFkdmFu Y2UsIGluIHdoaWNoIGNhc2Ugd2UnbGwgY3JlYXRlIGEgc2xvdCB0aGF0IGlzbid0IHVzYWJs ZS4gVGhlIGNhbGxpbmcKKyMgYXBwbGljYXRpb24gY2FuIHByZXZlbnQgdGhpcyBieSBjcmVh dGluZyBhIHRlbXBvcmFyeSBzbG90IG9uIHRoZSBtYXN0ZXIgdG8KKyMgbG9jayBpbiBpdHMg Y2F0YWxvZ194bWluLiBGb3IgYSB0cnVseSByYWNlLWZyZWUgc29sdXRpb24gd2UnZCBuZWVk CisjIG1hc3Rlci10by1zdGFuZGJ5IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHJlcGxpZXMuCisj CisjIEluIHRoaXMgY2FzZSBpdCB3b24ndCByYWNlIGJlY2F1c2UgdGhlcmUncyBubyBjb25j dXJyZW50IGFjdGl2aXR5IG9uIHRoZQorIyBtYXN0ZXIuCisjCiskbm9kZV9zdGFuZGJ5LT5j cmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVyLCAkc3RhbmRieV9z bG90bmFtZSwgJ3Bvc3RncmVzJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1 cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykp OworCisjIE5vdyB0aGF0IHNsb3QgaXMgY3JlYXRlZCBvbiBzdGFuZGJ5LCB4bWluIGFuZCBj YXRhbG9nX3htaW4gc2hvdWxkIGJlIG5vbiBOVUxMCisjIG9uIGJvdGggbWFzdGVyIGFuZCBz dGFuZGJ5LiBCdXQgb24gbWFzdGVyLCB0aGUgeG1pbnMgd2lsbCBiZSB1cGRhdGVkIG9ubHkK KyMgYWZ0ZXIgaG90IHN0YW5kYnkgZmVlZGJhY2sgaXMgcmVjZWl2ZWQuCit3YWl0X2Zvcl94 bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsICJ4bWluIElTIE5PVCBOVUxM IEFORCBjYXRhbG9nX3htaW4gSVMgTk9UIE5VTEwiKTsKKworJHNsb3QgPSAkbm9kZV9zdGFu ZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycs ICJsb2dpY2FsIHhtaW4gbnVsbCIpOworaXNudCgkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwg JycsICJsb2dpY2FsIGNhdGFsb2dfeG1pbiBub3QgbnVsbCIpOworCisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFN0YW5kYnkgbG9naWNhbCBzbG90IHNob3VsZCBi ZSBhYmxlIHRvIGZldGNoIHRoZSB0YWJsZSBjaGFuZ2VzIGV2ZW4gd2hlbiB0aGUKKyMgdGFi bGUgaXMgZHJvcHBlZC4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDUkVBVEUgVEFCTEUgdGVzdF90 YWJsZShpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGJsYWggdGV4dCknKTsKKyRub2RlX21hc3Rl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbSU5TRVJUIElOVE8gdGVzdF90YWJsZShibGFo KSB2YWx1ZXMgKCdpdHdvcmtzJyldKTsKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFRBQkxFIHRlc3RfdGFibGUnKTsKKyRub2RlX21hc3Rlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdWQUNVVU0nKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1 c2gnKSk7CisKKyMgU2hvdWxkIHNob3cgdGhlIGluc2VydHMgZXZlbiB3aGVuIHRoZSB0YWJs ZSBpcyBkcm9wcGVkIG9uIG1hc3RlcgorKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5v ZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxcVtTRUxFQ1QgZGF0YSBGUk9NIHBnX2xv Z2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnJHN0YW5kYnlfc2xvdG5hbWUnLCBOVUxMLCBOVUxM LCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1 ZGUtdGltZXN0YW1wJywgJzAnKV0pOworaXMoJHN0ZGVyciwgJycsICdzdGRlcnIgaXMgZW1w dHknKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgZnJvbSBzbG90IHN1Y2NlZWRlZCcpCisJb3Ig ZGllICdjYW5ub3QgY29udGludWUgaWYgc2xvdCByZXBsYXkgZmFpbHMnOworaXMoJHN0ZG91 dCwgcXtCRUdJTgordGFibGUgcHVibGljLnRlc3RfdGFibGU6IElOU0VSVDogaWRbaW50ZWdl cl06MSBibGFoW3RleHRdOidpdHdvcmtzJworQ09NTUlUfSwgJ3JlcGxheSByZXN1bHRzIG1h dGNoJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCiskc2xvdCA9ICRu b2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKTsKK2lzbnQoJHNsb3QtPnsneG1p bid9LCAnJywgInBoeXNpY2FsIHhtaW4gbm90IG51bGwiKTsKK215ICRzYXZlZF9waHlzaWNh bF9jYXRhbG9nX3htaW4gPSAkc2xvdC0+eydjYXRhbG9nX3htaW4nfTsKK2lzbnQoJHNhdmVk X3BoeXNpY2FsX2NhdGFsb2dfeG1pbiwgJycsICJwaHlzaWNhbCBjYXRhbG9nX3htaW4gbm90 IG51bGwiKTsKKworJHNsb3QgPSAkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3Ru YW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycsICJsb2dpY2FsIHhtaW4gbnVsbCIpOwor bXkgJHNhdmVkX2xvZ2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194bWlu J307Citpc250KCRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbiwgJycsICJsb2dpY2FsIGNh dGFsb2dfeG1pbiBub3QgbnVsbCIpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjIENhdGFsb2cgeG1pbnMgc2hvdWxkIGFkdmFuY2UgYWZ0ZXIgc3RhbmRieSBs b2dpY2FsIHNsb3QgZmV0Y2hlcyB0aGUgY2hhbmdlcy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKKyMgSWRlYWxseSB3ZSdkIGp1c3QgaG9sZCBjYXRhbG9nX3htaW4s IGJ1dCBzaW5jZSBoc19mZWVkYmFjayBjdXJyZW50bHkgdXNlcyB0aGUgc2xvdCwKKyMgd2Ug aG9sZCBkb3duIHhtaW4uCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cVtDUkVBVEUgVEFCTEUgY2F0YWxvZ19pbmNyZWFzZV8xKCk7XSk7Ciskbm9kZV9tYXN0ZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIFRBQkxFIHRlc3RfdGFibGUoaWQgc2Vy aWFsIHByaW1hcnkga2V5LCBibGFoIHRleHQpJyk7Citmb3IgbXkgJGkgKDAgLi4gMjAwMCkK K3sKKyAgICAkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtJTlNFUlQg SU5UTyB0ZXN0X3RhYmxlKGJsYWgpIFZBTFVFUyAoJ2VudHJ5ICRpJyldKTsKK30KKyRub2Rl X21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW0NSRUFURSBUQUJMRSBjYXRhbG9n X2luY3JlYXNlXzIoKTtdKTsKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdWQUNVVU0nKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2NtcF9v aygkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKS0+eydjYXRhbG9nX3ht aW4nfSwgIj09IiwKKwkgICAkc2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW4sCisJICAgImxv Z2ljYWwgc2xvdCBjYXRhbG9nX3htaW4gaGFzbid0IGFkdmFuY2VkIGJlZm9yZSBnZXRfY2hh bmdlcyIpOworCisoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9zdGFuZGJ5LT5w c3FsKCdwb3N0Z3JlcycsCisJcXFbU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3Rf Z2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Nsb3RuYW1lJywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUt eGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXRpbWVzdGFt cCcsICcwJyldKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgb2YgYmlnIHNlcmllcyBzdWNjZWVk ZWQnKTsKK2lzbnQoJHN0ZG91dCwgJycsICdyZXBsYXllZCBzb21lIHJvd3MnKTsKKworJG5v ZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKyMgbG9naWNhbCBzbG90IGNhdGFsb2df eG1pbiBvbiBzbGF2ZSBzaG91bGQgYWR2YW5jZSBhZnRlciBwZ19sb2dpY2FsX3Nsb3RfZ2V0 X2NoYW5nZXMKK3dhaXRfZm9yX3htaW5zKCRub2RlX3N0YW5kYnksICRzdGFuZGJ5X3Nsb3Ru YW1lLAorCQkJICAgImNhdGFsb2dfeG1pbjo6dmFyY2hhcjo6aW50ID4gJHtzYXZlZF9sb2dp Y2FsX2NhdGFsb2dfeG1pbn0iKTsKKyRzbG90ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgkc3Rh bmRieV9zbG90bmFtZSk7CitteSAkbmV3X2xvZ2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3Qt PnsnY2F0YWxvZ194bWluJ307Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAibG9naWNhbCB4 bWluIG51bGwiKTsKKworIyBob3Qgc3RhbmRieSBmZWVkYmFjayBzaG91bGQgYWR2YW5jZSBt YXN0ZXIncyBwaHlzIGNhdGFsb2dfeG1pbiBub3cgdGhhdCB0aGUKKyMgc3RhbmRieSdzIHNs b3QgZG9lc24ndCBob2xkIGl0IGRvd24gYXMgZmFyLgorIyBCdXQgbWFzdGVyJ3MgcGh5cyBj YXRhbG9nX3htaW4gc2hvdWxkIG5vdCBnbyBwYXN0IHRoZSBzbGF2ZSdzIGxvZ2ljYWwgc2xv dCdzCisjIGNhdGFsb2dfeG1pbiwgZXZlbiB3aGlsZSBtYXN0ZXIncyBwaHlzIHhtaW4gYWR2 YW5jZXMuCisjCisjIEZpcnN0LCBtYWtlIHN1cmUgbWFzdGVyJ3MgeG1pbiBpcyBhZHZhbmNl ZC4gVGhpcyBoYXBwZW5zIG9uIGhvdCBzdGFuZGJ5CisjIGZlZWRiYWNrLiBTbyB0aGlzIGNo ZWNrIGZvciBtYXN0ZXIncyB4bWluIGFkdmFuY2UgYWxzbyBtYWtlcyBzdXJlIGhvdCBzdGFu ZGJ5CisjIGZlZWRiYWNrIGhhcyByZWFjaGVkIHRoZSBtYXN0ZXIsIHdoaWNoIGlzIHJlcXVp cmVkIGZvciB0aGUgc3Vic2VxdWVudAorIyBjYXRhbG9nX3htaW4gdGVzdC4KK215ICR0ZW1w X3BoeXNfeG1pbiA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKS0+eyd4 bWluJ307Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIHR4 aWRfY3VycmVudCgpJyk7Cit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJf c2xvdG5hbWUsCisJCQkgICAieG1pbjo6dmFyY2hhcjo6aW50ID4gJHt0ZW1wX3BoeXNfeG1p bn0iKTsKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUpOwor IyBOb3cgY2hlY2sgdGhhdCB0aGUgbWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gaGFzIGFk dmFuY2VkIGJ1dCBub3QgYmV5b25kCisjIHN0YW5kYnkncyBsb2dpY2FsIGNhdGFsb2dfeG1p bgorY21wX29rKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAiPiIsICRzYXZlZF9waHlzaWNh bF9jYXRhbG9nX3htaW4sCisJJ3Vwc3RyZWFtIHBoeXNpY2FsIHNsb3QgY2F0YWxvZ194bWlu IGhhcyBhZHZhbmNlZCB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CitjbXBfb2soJHNsb3QtPnsn Y2F0YWxvZ194bWluJ30sICI9PSIsICRuZXdfbG9naWNhbF9jYXRhbG9nX3htaW4sCisJJ3Vw c3RyZWFtIHBoeXNpY2FsIHNsb3QgY2F0YWxvZ194bWluIG5vdCBwYXN0IGRvd25zdHJlYW0g Y2F0YWxvZ194bWluIHdpdGggaHNfZmVlZGJhY2sgb24nKTsKKworCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIFVwc3RyZWFtIG9sZGVzdFhpZCBzaG91bGQgbm90IGdvIHBhc3QgZG93 bnN0cmVhbSBjYXRhbG9nX3htaW4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBGaXJz dCBidXJuIHNvbWUgeGlkcyBvbiB0aGUgbWFzdGVyIGluIGFub3RoZXIgREIsIHNvIHdlIHB1 c2ggdGhlIG1hc3RlcidzCisjIG5leHRYaWQgYWhlYWQuCitmb3JlYWNoIG15ICRpICgxIC4u IDEwMCkKK3sKKwkkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNU IHR4aWRfY3VycmVudCgpJyk7Cit9CisKKyMgRm9yY2UgdmFjdXVtIGZyZWV6ZSBvbiB0aGUg bWFzdGVyIGFuZCBlbnN1cmUgaXRzIG9sZGVzdFhtaW4gZG9lc24ndCBhZHZhbmNlCisjIHBh c3Qgb3VyIG5lZWRlZCB4bWluLiBUaGUgb25seSB3YXkgd2UgaGF2ZSB2aXNpYmlsaXR5IGlu dG8gdGhhdCBpcyB0byBmb3JjZQorIyBhIGNoZWNrcG9pbnQuCiskbm9kZV9tYXN0ZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiVVBEQVRFIHBnX2RhdGFiYXNlIFNFVCBkYXRhbGxvd2Nv bm4gPSB0cnVlIFdIRVJFIGRhdG5hbWUgPSAndGVtcGxhdGUwJyIpOworZm9yZWFjaCBteSAk ZGJuYW1lICgndGVtcGxhdGUxJywgJ3Bvc3RncmVzJywgJ3Bvc3RncmVzJywgJ3RlbXBsYXRl MCcpCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJGRibmFtZSwgJ1ZBQ1VVTSBGUkVF WkUnKTsKK30KKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDSEVDS1BP SU5UJyk7CitJUEM6OlJ1bjo6cnVuKFsncGdfY29udHJvbGRhdGEnLCAkbm9kZV9tYXN0ZXIt PmRhdGFfZGlyKCldLCAnPicsIFwkc3Rkb3V0KQorCW9yIGRpZSAicGdfY29udHJvbGRhdGEg ZmFpbGVkIHdpdGggJD8iOworbXkgQGNoZWNrcG9pbnQgPSBzcGxpdCgnXG4nLCAkc3Rkb3V0 KTsKK215ICRvbGRlc3RYaWQgPSAnJzsKK2ZvcmVhY2ggbXkgJGxpbmUgKEBjaGVja3BvaW50 KQoreworCWlmICgkbGluZSA9fiBxci9eTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RYSUQ6 XHMrKFxkKykvKQorCXsKKwkJJG9sZGVzdFhpZCA9ICQxOworCX0KK30KK2RpZSAnbm8gb2xk ZXN0WElEIGZvdW5kIGluIGNoZWNrcG9pbnQnIHVubGVzcyAkb2xkZXN0WGlkOworCitjbXBf b2soJG9sZGVzdFhpZCwgIjw9IiwgJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90 bmFtZSktPnsnY2F0YWxvZ194bWluJ30sCisJICAgJ3Vwc3RyZWFtIG9sZGVzdFhpZCBub3Qg cGFzdCBkb3duc3RyZWFtIGNhdGFsb2dfeG1pbiB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CisK KyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSBwZ19kYXRh YmFzZSBTRVQgZGF0YWxsb3djb25uID0gZmFsc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZW1wbGF0 ZTAnIik7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgRHJvcCBzbG90CisjIE1ha2Ugc3VyZSBzdGFuZGJ5IHNsb3RzIGFyZSBk cm9wcGFibGUsIGFuZCBwcm9wZXJseSBjbGVhciB0aGUgdXBzdHJlYW0ncyB4bWluCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NIT1cgaG90X3N0YW5kYnlf ZmVlZGJhY2snKSwgJ29uJywgJ2hzX2ZlZWRiYWNrIGlzIG9uJyk7CisKKyRub2RlX3N0YW5k YnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnJHN0YW5kYnlfc2xvdG5hbWUnKV0pOworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCRz dGFuZGJ5X3Nsb3RuYW1lKS0+eydzbG90X3R5cGUnfSwgJycsICdzbG90IG9uIHN0YW5kYnkg ZHJvcHBlZCBtYW51YWxseScpOworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBz ZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBv biBtYXN0ZXIuIGNhdGFsb2dfeG1pbiBzaG91bGQgYmVjb21lIE5VTEwgYmVjYXVzZSB3ZSBk cm9wcGVkCisjIHRoZSBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0 ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0 YWxvZ194bWluIElTIE5VTEwiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDIzX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ19jb25mbGljdHMucGwgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxpY3RzLnBsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjMwOTRlMDA2YzIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmdfY29uZmxpY3RzLnBsCkBAIC0wLDAgKzEsMjE1IEBACisjIGxvZ2ljYWwgZGVj b2Rpbmcgb24gYSBzdGFuZGJ5IDogdGVzdCBjb25mbGljdCByZWNvdmVyeTsgYW5kIG90aGVy IHRlc3RzIHRoYXQKKyMgdmVyaWZ5IHNsb3RzIGdldCBkcm9wcGVkIGFzIGV4cGVjdGVkLgor Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgUG9zdGdyZXNOb2RlOwordXNl IFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiAyNDsKK3VzZSBSZWN1cnNpdmVD b3B5OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsKKwor bXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJldCwgJGhhbmRsZSwgJHNsb3QpOwor CitteSAkbm9kZV9tYXN0ZXIgPSBnZXRfbmV3X25vZGUoJ21hc3RlcicpOworbXkgJG5vZGVf c3RhbmRieSA9IGdldF9uZXdfbm9kZSgnc3RhbmRieScpOworCisjIE5hbWUgZm9yIHRoZSBw aHlzaWNhbCBzbG90IG9uIG1hc3RlcgorbXkgJG1hc3Rlcl9zbG90bmFtZSA9ICdtYXN0ZXJf cGh5c2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNsb3QncyBwZ19yZXBs aWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdpdmVuIGJvb2xlYW4g Y29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNoZWQgYSBxdWllc2Nl bnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15ICgkbm9kZSwgJHNsb3RuYW1l LCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkn cG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHByCisJCUZST00gcGdfY2F0YWxv Zy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90X25hbWUgPSAnJHNsb3RuYW1l JzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBzbG90IHhtaW5zIHRvIGFk dmFuY2UiOworfQorCisjIENyZWF0ZSB0aGUgcmVxdWlyZWQgbG9naWNhbCBzbG90cyBvbiBz dGFuZGJ5Lgorc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3RzCit7CisJJG5vZGVfc3RhbmRieS0+ Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2RlX21hc3RlciwgJ2Ryb3BzbG90 JywgJ3Rlc3RkYicpOworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25f c3RhbmRieSgkbm9kZV9tYXN0ZXIsICdhY3RpdmVzbG90JywgJ3Rlc3RkYicpOworfQorCisj IEFjcXVpcmUgb25lIG9mIHRoZSBzdGFuZGJ5IGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBj cmVhdGVfbG9naWNhbF9zbG90cygpCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICRz bG90X3VzZXJfaGFuZGxlOworCisJIyBtYWtlIHN1cmUgYWN0aXZlc2xvdCBpcyBpbiB1c2UK KwlwcmludCAic3RhcnRpbmcgcGdfcmVjdmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0 YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicpLCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICct JywgJy0tbm8tbG9vcCcsICctLXN0YXJ0J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3Rk ZXJyKTsKKworCXdoaWxlICghJG5vZGVfc3RhbmRieS0+c2xvdCgnYWN0aXZlc2xvdCcpLT57 J2FjdGl2ZV9waWQnfSkKKwl7CisJCXVzbGVlcCgxMDBfMDAwKTsKKwkJcHJpbnQgIndhaXRp bmcgZm9yIHNsb3QgdG8gYmVjb21lIGFjdGl2ZVxuIjsKKwl9CisJcmV0dXJuICRzbG90X3Vz ZXJfaGFuZGxlOworfQorCisjIENoZWNrIGlmIGFsbCB0aGUgc2xvdHMgb24gc3RhbmRieSBh cmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUgJ2FjdGl2ZXNsb3QnCisjIHRoYXQgd2Fz IGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUoKSwgYW5kIHRoZSBub24tYWN0aXZlICdk cm9wc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNfZHJvcHBlZAoreworCW15ICgkc2xvdF91c2Vy X2hhbmRsZSkgPSBAXzsKKwlteSAkcmV0dXJuOworCisJaXMoJG5vZGVfc3RhbmRieS0+c2xv dCgnZHJvcHNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdkcm9wc2xvdCBvbiBzdGFuZGJ5 IGRyb3BwZWQnKTsKKwlpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdhY3RpdmVzbG90JyktPnsn c2xvdF90eXBlJ30sICcnLCAnYWN0aXZlc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQnKTsKKwor CSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVybWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUg d2Fsc2VuZGVyIGVycm9yCisJZXZhbCB7CisJCSRzbG90X3VzZXJfaGFuZGxlLT5maW5pc2g7 CisJfTsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIhPSIsIDAsICJwZ19y ZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm9cbiIpOworCWlmICgkcmV0dXJuKSB7CisJCWxp a2UoJHN0ZGVyciwgcXIvY29uZmxpY3Qgd2l0aCByZWNvdmVyeS8sICdyZWN2bG9naWNhbCBy ZWNvdmVyeSBjb25mbGljdCcpOworCQlsaWtlKCRzdGRlcnIsIHFyL211c3QgYmUgZHJvcHBl ZC8sICdyZWN2bG9naWNhbCBlcnJvciBkZXRhaWwnKTsKKwl9CisKKwlyZXR1cm4gMDsKK30K KworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBtYXN0ZXIgbm9k ZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX21hc3Rlci0+aW5pdChhbGxv d3Nfc3RyZWFtaW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4gMSk7Ciskbm9kZV9tYXN0ZXIt PmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxeword2FsX2xldmVsID0gJ2xvZ2lj YWwnCittYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CittYXhfd2FsX3NlbmRlcnMgPSA0Cits b2dfbWluX21lc3NhZ2VzID0gJ2RlYnVnMicKK2xvZ19lcnJvcl92ZXJib3NpdHkgPSB2ZXJi b3NlCisjIHNlbmQgc3RhdHVzIHJhcGlkbHkgc28gd2UgcHJvbXB0bHkgYWR2YW5jZSB4bWlu IG9uIG1hc3Rlcgord2FsX3JlY2VpdmVyX3N0YXR1c19pbnRlcnZhbCA9IDEKKyMgdmVyeSBw cm9tcHRseSB0ZXJtaW5hdGUgY29uZmxpY3RpbmcgYmFja2VuZHMKK21heF9zdGFuZGJ5X3N0 cmVhbWluZ19kZWxheSA9ICcycycKK30pOworJG5vZGVfbWFzdGVyLT5kdW1wX2luZm87Cisk bm9kZV9tYXN0ZXItPnN0YXJ0OworCiskbm9kZV9tYXN0ZXItPnBzcWwoJ3Bvc3RncmVzJywg cVtDUkVBVEUgREFUQUJBU0UgdGVzdGRiXSk7CisKKyRub2RlX21hc3Rlci0+c2FmZV9wc3Fs KCd0ZXN0ZGInLCBxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNh dGlvbl9zbG90KCckbWFzdGVyX3Nsb3RuYW1lJyk7XSk7CitteSAkYmFja3VwX25hbWUgPSAn YjEnOworJG5vZGVfbWFzdGVyLT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBub2RlCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAorCSRub2Rl X21hc3RlciwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVz dG9yaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsCisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJG1hc3Rlcl9zbG90bmFtZSddKTsK KyRub2RlX3N0YW5kYnktPnN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVw KCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7 CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IERyb3AgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1 ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMSA6IGhvdF9zdGFuZGJ5X2ZlZWRiYWNr IG9mZgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBPbmUgd2F5IHRvIHJlcHJvZHVj ZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVNIEZVTEwgd2l0aAorIyBob3Rf c3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHNsYXZlLgorJG5vZGVfc3RhbmRieS0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNr ID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJlc3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNl aXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMg Y2F0YWxvZ194bWluIG9uIG1hc3Rlci4gQm90aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19m ZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3htaW5zKCRub2RlX21hc3RlciwgJG1hc3Rlcl9z bG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxM Iik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgVGhpcyBzaG91bGQg dHJpZ2dlciB0aGUgY29uZmxpY3QKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCd0ZXN0ZGIn LCAnVkFDVVVNIEZVTEwnKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRu b2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisK K2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhhbmRsZSk7CisKKyMgVHVybiBob3Rfc3RhbmRieV9m ZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNx bC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9zdGFu ZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50IGJ5 IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0 ZXIuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFkdmFuY2Us CisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNpbmNlIHRo ZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX21hc3Rlciwg JG1hc3Rlcl9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBjYXRhbG9n X3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogRHJvcCBjb25mbGljdGlu ZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAyIDogaW5jb3Jy ZWN0IHdhbF9sZXZlbCBhdCBtYXN0ZXIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgTWFrZSBtYXN0ZXIgd2FsX2xldmVs IHJlcGxpY2EuIFRoaXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29uZmxpY3QuCiskbm9kZV9tYXN0 ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAncmVw bGljYScKK10pOworJG5vZGVfbWFzdGVyLT5yZXN0YXJ0OworCiskbm9kZV9tYXN0ZXItPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+ bHNuKCdmbHVzaCcpKTsKKworY2hlY2tfc2xvdHNfZHJvcHBlZCgkaGFuZGxlKTsKKworIyBS ZXN0b3JlIG1hc3RlciB3YWxfbGV2ZWwKKyRub2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworXSk7Ciskbm9kZV9t YXN0ZXItPnJlc3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVf c3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBE Uk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0aXZl IHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworIyBDcmVhdGUgYSBzbG90IG9uIGEgZGF0YWJhc2UgdGhhdCB3b3VsZCBub3Qg YmUgZHJvcHBlZC4gVGhpcyBzbG90IHNob3VsZCBub3QKKyMgZ2V0IGRyb3BwZWQuCiskbm9k ZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVy LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CitjcmVhdGVfbG9naWNhbF9zbG90cygpOwor JGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoKTsKKworIyBkcm9wZGIgb24gdGhlIG1hc3Rl ciB0byB2ZXJpZnkgc2xvdHMgYXJlIGRyb3BwZWQgb24gc3RhbmRieQorJG5vZGVfbWFzdGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNFIHRlc3RkYl0pOworCisk bm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScs ICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJcVtTRUxFQ1QgRVhJU1RTKFNFTEVDVCAxIEZST00gcGdf ZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZXN0ZGInKV0pLCAnZicsCisJJ2RhdGFiYXNl IGRyb3BwZWQgb24gc3RhbmRieScpOworCitjaGVja19zbG90c19kcm9wcGVkKCRoYW5kbGUp OworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdvdGhlcnNsb3QnKS0+eydzbG90X3R5cGUn fSwgJ2xvZ2ljYWwnLAorCSdvdGhlcnNsb3Qgb24gc3RhbmRieSBub3QgZHJvcHBlZCcpOwor CisjIENsZWFudXAgOiBtYW51YWxseSBkcm9wIHRoZSBzbG90IHRoYXQgd2FzIG5vdCBkcm9w cGVkLgorJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9w X3JlcGxpY2F0aW9uX3Nsb3QoJ290aGVyc2xvdCcpXSk7Ci0tIAoyLjE4LjQKCg== --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v10-0003-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v10-0003-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSA1YTVjYjIyYTA2MmQyMDg4OTdiNDQwNTUzMTU2YzE0Yjk0ODBjZmVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNyBNYXIgMjAyMSAxNTozNzoxNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjEwIDMvNV0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLApkcm9wIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhpbmcgaWYg d2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwgYW5kIHRo ZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJvZHVjZSBh IG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJlY292ZXJ5 LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2dldF9hY3Rpdml0eSBmaWVsZDoKY29uZmxf bG9naWNhbHNsb3QuCgpBbWl0IEtoYW5kZWthciwgcmV2aWV3ZWQgYnkgQW5kcmVzIEZyZXVu ZC4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAgICAgfCAgMTAgKysK IHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICB8ICAgNCArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMgIHwgICAzICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgfCAgMTMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0eGxvZy5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd4bG9nLmMgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAg ICB8ICAxNCArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIHwgICAx ICsKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgICAgICB8ICAgNCArCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgfCAxODggKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgfCAg IDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIHwgICAzICsKIHNy Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICB8ICAxMSArLQogc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgIHwgIDIyICsrKysKIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICB8ICAxNiArKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oICAgICAg IHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCAgICAgICAgfCAgIDQgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICB8ICAgMSArCiAyMSBmaWxlcyBjaGFu Z2VkLCAzMDAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCiAgIDYuNSUgc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvCiAgIDYuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v CiAgIDYuMCUgc3JjL2JhY2tlbmQvYWNjZXNzLwogIDUxLjElIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uLwogICA2LjYlIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjLwogICA4LjMlIHNyYy9i YWNrZW5kL3Rjb3AvCiAgIDMuMiUgc3JjL2JhY2tlbmQvdXRpbHMvYWR0LwogICA2LjElIHNy Yy9pbmNsdWRlLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGRiNGI0ZTQ2MGMuLjcxYTgz YzkyNmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtMzk4MCw2ICszOTgwLDE2IEBAIFNF TEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0YXRfYWN0 aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICAgZGVhZGxvY2tzCiAgICAgICA8L3Bh cmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNvbmZsX2xvZ2ljYWxzbG90PC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgTnVtYmVyIG9mIHF1ZXJpZXMgaW4gdGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVl biBjYW5jZWxlZCBkdWUgdG8KKyAgICAgICBsb2dpY2FsIHNsb3RzCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8 L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKaW5kZXggOTdkODE0Yjky Ny4uYjZjMGQ4YjI5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC0x OTUsNyArMTk1LDggQEAgZ2lzdFJlZG9EZWxldGVSZWNvcmQoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxM LCBOVUxMKTsKIAotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRh dGEtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4 bGRhdGEtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJaWYgKFhMb2dSZWFkQnVm ZmVyRm9yUmVkbyhyZWNvcmQsIDAsICZidWZmZXIpID09IEJMS19ORUVEU19SRURPKQpAQCAt Mzk1LDYgKzM5Niw3IEBAIGdpc3RSZWRvUGFnZVJldXNlKFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkpCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFNuYXBzaG90RnVsbFhpZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQsCisJ CQkJCQkJCQkJCQkgICB4bHJlYy0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCQkgICB4 bHJlYy0+bm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNo L2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKaW5k ZXggMDJkOWU2Y2RmZC4uYjFmZjU5NmViNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFz aF94bG9nLmMKQEAgLTEwMDIsNyArMTAwMiw4IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3Bh Z2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVJlbEZpbGVOb2RlIHJub2RlOwogCiAJ CVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7Ci0J CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0UmVt b3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dCh4bGRhdGEtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRh bG9nVGFibGUsIHJub2RlKTsKIAl9CiAKIAlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJl ZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9OT1JNQUwsIHRydWUsICZidWZmZXIpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBhYzAwNGYxMjU4Li45MDNiMzdhNjQ0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtODUxMiw3ICs4NTEyLDggQEAgaGVh cF94bG9nX2NsZWFudXBfaW5mbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl4bF9oZWFw X2NsZWFudXBfaW5mbyAqeGxyZWMgPSAoeGxfaGVhcF9jbGVhbnVwX2luZm8gKikgWExvZ1Jl Y0dldERhdGEocmVjb3JkKTsKIAogCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCB4bHJl Yy0+bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVj LT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUs IHhscmVjLT5ub2RlKTsKIAogCS8qCiAJICogQWN0dWFsIG9wZXJhdGlvbiBpcyBhIG5vLW9w LiBSZWNvcmQgdHlwZSBleGlzdHMgdG8gcHJvdmlkZSBhIG1lYW5zIGZvcgpAQCAtODU0OCw3 ICs4NTQ5LDggQEAgaGVhcF94bG9nX2NsZWFuKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQog CSAqIGxhdGVzdFJlbW92ZWRYaWQgaXMgaW52YWxpZCwgc2tpcCBjb25mbGljdCBwcm9jZXNz aW5nLgogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkgJiYgVHJhbnNhY3Rpb25JZElzVmFsaWQo eGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQpKQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwK KwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAKIAkvKgogCSAq IElmIHdlIGhhdmUgYSBmdWxsLXBhZ2UgaW1hZ2UsIHJlc3RvcmUgaXQgKHVzaW5nIGEgY2xl YW51cCBsb2NrKSBhbmQKQEAgLTg2NDQsNyArODY0Niw5IEBAIGhlYXBfeGxvZ192aXNpYmxl KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqIHJhdGhlciB0aGFuIGtpbGxpbmcgdGhl IHRyYW5zYWN0aW9uIG91dHJpZ2h0LgogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5jdXRvZmZfeGlkLCBy bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5j dXRvZmZfeGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsCisJCQkJCQkJ CQkJCXJub2RlKTsKIAogCS8qCiAJICogUmVhZCB0aGUgaGVhcCBwYWdlLCBpZiBpdCBzdGls bCBleGlzdHMuIElmIHRoZSBoZWFwIGZpbGUgaGFzIGRyb3BwZWQgb3IKQEAgLTg3ODEsNyAr ODc4NSw4IEBAIGhlYXBfeGxvZ19mcmVlemVfcGFnZShYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAkJVHJhbnNhY3Rpb25JZFJldHJlYXQobGF0ZXN0UmVtb3ZlZFhpZCk7CiAKIAkJWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxMLCBOVUxMKTsKLQkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwgcm5v ZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChsYXRlc3RSZW1v dmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsIHJub2RlKTsKIAl9 CiAKIAlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMCwgJmJ1ZmZlcikgPT0g QkxLX05FRURTX1JFRE8pCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCmluZGV4 IDE3NzliNmJhNDcuLjM2ZWUzMTM0MjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 eGxvZy5jCkBAIC02NjksNyArNjY5LDggQEAgYnRyZWVfeGxvZ19kZWxldGUoWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJu b2RlLCBOVUxMLCBOVUxMKTsKIAotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJ CQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJLyoKQEAgLTEw MDcsNiArMTAwOCw3IEBAIGJ0cmVlX3hsb2dfcmV1c2VfcGFnZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAogCWlmIChJbkhvdFN0YW5kYnkpCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFNuYXBzaG90RnVsbFhpZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQsCisJ CQkJCQkJCQkJCQkgICB4bHJlYy0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCQkgICB4 bHJlYy0+bm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BneGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKaW5k ZXggZDQwYzdiNTg3Ny4uMWE1Yzg5NTlhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3NwZ2lzdC9zcGd4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd4bG9nLmMKQEAgLTg4MSw2ICs4ODEsNyBAQCBzcGdSZWRvVmFjdXVtUmVkaXJlY3QoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQs IDAsICZub2RlLCBOVUxMLCBOVUxMKTsKIAkJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFNuYXBzaG90KHhsZGF0YS0+bmV3ZXN0UmVkaXJlY3RYaWQsCisJCQkJCQkJCQkJCQl4bGRh dGEtPm9uQ2F0YWxvZ1RhYmxlLAogCQkJCQkJCQkJCQkJbm9kZSk7CiAJCX0KIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggZTBmMzllODBhYy4uN2VlYjI2ZGVhZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtMTAzNzMsNiArMTAzNzMsMjAg QEAgeGxvZ19yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkvKiBVcGRhdGUgb3Vy IGNvcHkgb2YgdGhlIHBhcmFtZXRlcnMgaW4gcGdfY29udHJvbCAqLwogCQltZW1jcHkoJnhs cmVjLCBYTG9nUmVjR2V0RGF0YShyZWNvcmQpLCBzaXplb2YoeGxfcGFyYW1ldGVyX2NoYW5n ZSkpOwogCisJCS8qCisJCSAqIERyb3AgbG9naWNhbCBzbG90cyBpZiB3ZSBhcmUgaW4gaG90 IHN0YW5kYnkgYW5kIHRoZSBwcmltYXJ5IGRvZXMgbm90CisJCSAqIGhhdmUgYSBXQUwgbGV2 ZWwgc3VmZmljaWVudCBmb3IgbG9naWNhbCBkZWNvZGluZy4gTm8gbmVlZCB0byBzZWFyY2gK KwkJICogZm9yIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIGxvZ2ljYWxseSBzbG90cyBpZiBz dGFuZGJ5IGlzIHJ1bm5pbmcKKwkJICogd2l0aCB3YWxfbGV2ZWwgbG93ZXIgdGhhbiBsb2dp Y2FsLCBiZWNhdXNlIGluIHRoYXQgY2FzZSwgd2Ugd291bGQKKwkJICogaGF2ZSBlaXRoZXIg ZGlzYWxsb3dlZCBjcmVhdGlvbiBvZiBsb2dpY2FsIHNsb3RzIG9yIGRyb3BwZWQgZXhpc3Rp bmcKKwkJICogb25lcy4KKwkJICovCisJCWlmIChJblJlY292ZXJ5ICYmIEluSG90U3RhbmRi eSAmJgorCQkJeGxyZWMud2FsX2xldmVsIDwgV0FMX0xFVkVMX0xPR0lDQUwgJiYKKwkJCXdh bF9sZXZlbCA+PSBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCVJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aExvZ2ljYWxTbG90cyhJbnZhbGlkT2lkLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwK KwkJCQlnZXR0ZXh0X25vb3AoIkxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSByZXF1aXJl cyB3YWxfbGV2ZWwgPj0gbG9naWNhbCBvbiBtYXN0ZXIuIikpOworCiAJCUxXTG9ja0FjcXVp cmUoQ29udHJvbEZpbGVMb2NrLCBMV19FWENMVVNJVkUpOwogCQlDb250cm9sRmlsZS0+TWF4 Q29ubmVjdGlvbnMgPSB4bHJlYy5NYXhDb25uZWN0aW9uczsKIAkJQ29udHJvbEZpbGUtPm1h eF93b3JrZXJfcHJvY2Vzc2VzID0geGxyZWMubWF4X3dvcmtlcl9wcm9jZXNzZXM7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMGRjYTY1ZGM3Yi4uOTgyODU2 ZmQwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtOTQ1LDYg Kzk0NSw3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIEFTCiAg ICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF90YWJsZXNwYWNlKEQub2lkKSBB UyBjb25mbF90YWJsZXNwYWNlLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKKyAgICAg ICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90KEQub2lkKSBBUyBj b25mbF9sb2dpY2Fsc2xvdCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X2J1ZmZlcnBpbihELm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAogICAgICAgICAgICAgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxf ZGVhZGxvY2sKICAgICBGUk9NIHBnX2RhdGFiYXNlIEQ7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0 YXQuYwppbmRleCBiMWUyZDk0OTUxLi5kZTMwZjhmYTliIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv cGdzdGF0LmMKQEAgLTUxMTMsNiArNTExMyw3IEBAIHJlc2V0X2RiZW50cnlfY291bnRlcnMo UGdTdGF0X1N0YXREQkVudHJ5ICpkYmVudHJ5KQogCWRiZW50cnktPm5fY29uZmxpY3RfdGFi bGVzcGFjZSA9IDA7CiAJZGJlbnRyeS0+bl9jb25mbGljdF9sb2NrID0gMDsKIAlkYmVudHJ5 LT5uX2NvbmZsaWN0X3NuYXBzaG90ID0gMDsKKwlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2lj YWxzbG90ID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X2J1ZmZlcnBpbiA9IDA7CiAJZGJl bnRyeS0+bl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrID0gMDsKIAlkYmVudHJ5LT5uX3Rl bXBfZmlsZXMgPSAwOwpAQCAtNjk5Miw2ICs2OTkzLDkgQEAgcGdzdGF0X3JlY3ZfcmVjb3Zl cnljb25mbGljdChQZ1N0YXRfTXNnUmVjb3ZlcnlDb25mbGljdCAqbXNnLCBpbnQgbGVuKQog CQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQlkYmVudHJ5 LT5uX2NvbmZsaWN0X3NuYXBzaG90Kys7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZGJlbnRyeS0+bl9jb25mbGljdF9s b2dpY2Fsc2xvdCsrOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9CVUZGRVJQSU46CiAJCQlkYmVudHJ5LT5uX2NvbmZsaWN0X2J1ZmZlcnBpbisrOwog CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggOWRiMjAyNzhmNi4uZjRl MmYxMDIwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtNDYsNiArNDYsNyBAQAog I2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNp bmNsdWRlICJzdG9yYWdlL2ZkLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTAzLDYgKzEwNCw3IEBAIHN0YXRp YyBpbnQgUmVwbGljYXRpb25TbG90QWNxdWlyZUludGVybmFsKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCwKIAkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm5hbWUsIFNsb3RBY3F1aXJlQmVoYXZp b3IgYmVoYXZpb3IpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVk KHZvaWQpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcFB0cihSZXBsaWNhdGlv blNsb3QgKnNsb3QpOworc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcENvbmZsaWN0 aW5nKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7CiAKIC8qIGludGVybmFsIHBlcnNpc3RlbmN5 IGZ1bmN0aW9ucyAqLwogc3RhdGljIHZvaWQgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25zdCBj aGFyICpuYW1lKTsKQEAgLTcxOSw2ICs3MjEsNjQgQEAgUmVwbGljYXRpb25TbG90RHJvcFB0 cihSZXBsaWNhdGlvblNsb3QgKnNsb3QpCiAJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNs b3RBbGxvY2F0aW9uTG9jayk7CiB9CiAKKy8qCisgKiBQZXJtYW5lbnRseSBkcm9wIGEgY29u ZmxpY3RpbmcgcmVwbGljYXRpb24gc2xvdC4gSWYgaXQncyBhbHJlYWR5IGFjdGl2ZSBieQor ICogYW5vdGhlciBiYWNrZW5kLCBzZW5kIGl0IGEgcmVjb3ZlcnkgY29uZmxpY3Qgc2lnbmFs LCBhbmQgdGhlbiB0cnkgYWdhaW4uCisgKi8KK3N0YXRpYyB2b2lkCitSZXBsaWNhdGlvblNs b3REcm9wQ29uZmxpY3RpbmcoUmVwbGljYXRpb25TbG90ICpzbG90KQoreworCXBpZF90CQlh Y3RpdmVfcGlkOworCVBHUFJPQwkgICAqcHJvYzsKKwlWaXJ0dWFsVHJhbnNhY3Rpb25JZAl2 eGlkOworCisJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVlcCgmc2xvdC0+YWN0aXZl X2N2KTsKKwl3aGlsZSAoMSkKKwl7CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgp OworCQlhY3RpdmVfcGlkID0gc2xvdC0+YWN0aXZlX3BpZDsKKwkJaWYgKGFjdGl2ZV9waWQg PT0gMCkKKwkJCWFjdGl2ZV9waWQgPSBzbG90LT5hY3RpdmVfcGlkID0gTXlQcm9jUGlkOwor CQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQkvKiBEcm9wIHRoZSBhY3F1 aXJlZCBzbG90LCB1bmxlc3MgaXQgaXMgYWNxdWlyZWQgYnkgYW5vdGhlciBiYWNrZW5kICov CisJCWlmIChhY3RpdmVfcGlkID09IE15UHJvY1BpZCkKKwkJeworCQkJZWxvZyhERUJVRzEs ICJhY3F1aXJlZCBjb25mbGljdGluZyBzbG90LCBub3cgZHJvcHBpbmcgaXQiKTsKKwkJCVJl cGxpY2F0aW9uU2xvdERyb3BQdHIoc2xvdCk7CisJCQlicmVhazsKKwkJfQorCisJCS8qIFNl bmQgdGhlIG90aGVyIGJhY2tlbmQsIGEgY29uZmxpY3QgcmVjb3Zlcnkgc2lnbmFsICovCisK KwkJU2V0SW52YWxpZFZpcnR1YWxUcmFuc2FjdGlvbklkKHZ4aWQpOworCQlMV0xvY2tBY3F1 aXJlKFByb2NBcnJheUxvY2ssIExXX1NIQVJFRCk7CisJCXByb2MgPSBCYWNrZW5kUGlkR2V0 UHJvY1dpdGhMb2NrKGFjdGl2ZV9waWQpOworCQlpZiAocHJvYykKKwkJCUdFVF9WWElEX0ZS T01fUEdQUk9DKHZ4aWQsICpwcm9jKTsKKwkJTFdMb2NrUmVsZWFzZShQcm9jQXJyYXlMb2Nr KTsKKworCQkvKgorCQkgKiBJZiBjb2luY2lkZW50bHkgdGhhdCBwcm9jZXNzIGZpbmlzaGVk LCBzb21lIG90aGVyIGJhY2tlbmQgbWF5CisJCSAqIGFjcXVpcmUgdGhlIHNsb3QgYWdhaW4u IFNvIHN0YXJ0IG92ZXIgYWdhaW4uCisJCSAqIE5vdGU6IEV2ZW4gaWYgdnhpZC5sb2NhbFRy YW5zYWN0aW9uSWQgaXMgaW52YWxpZCwgd2UgbmVlZCB0byBjYW5jZWwKKwkJICogdGhhdCBi YWNrZW5kLCBiZWNhdXNlIHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byBtYWtlIGl0IHJlbGVh c2UgdGhlCisJCSAqIHNsb3QuIFNvIGRvbid0IGJvdGhlciB0byB2YWxpZGF0ZSB2eGlkLmxv Y2FsVHJhbnNhY3Rpb25JZC4KKwkJICovCisJCWlmICh2eGlkLmJhY2tlbmRJZCA9PSBJbnZh bGlkQmFja2VuZElkKQorCQkJY29udGludWU7CisKKwkJZWxvZyhERUJVRzEsICJjYW5jZWxs aW5nIHBpZCAlZCAoYmFja2VuZElkOiAlZCkgZm9yIHJlbGVhc2luZyBzbG90IiwKKwkJCQkJ IGFjdGl2ZV9waWQsIHZ4aWQuYmFja2VuZElkKTsKKworCQlDYW5jZWxWaXJ0dWFsVHJhbnNh Y3Rpb24odnhpZCwgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCk7CisJ CUNvbmRpdGlvblZhcmlhYmxlU2xlZXAoJnNsb3QtPmFjdGl2ZV9jdiwKKwkJCQkJCQkgICBX QUlUX0VWRU5UX1JFUExJQ0FUSU9OX1NMT1RfRFJPUCk7CisJfQorCisJQ29uZGl0aW9uVmFy aWFibGVDYW5jZWxTbGVlcCgpOworfQorCiAvKgogICogU2VyaWFsaXplIHRoZSBjdXJyZW50 bHkgYWNxdWlyZWQgc2xvdCdzIHN0YXRlIGZyb20gbWVtb3J5IHRvIGRpc2ssIHRoZXJlYnkK ICAqIGd1YXJhbnRlZWluZyB0aGUgY3VycmVudCBzdGF0ZSB3aWxsIHN1cnZpdmUgYSBjcmFz aC4KQEAgLTExNDksMTIgKzEyMDksMjUgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2 b2lkKQogCQl7CiAJCQlYTG9nUmVjUHRyCWZsdXNocHRyOwogCisJCQkvKiBzdGFydCBhdCBj dXJyZW50IGluc2VydCBwb3NpdGlvbiAqLworCQkJcmVzdGFydF9sc24gPSBHZXRYTG9nSW5z ZXJ0UmVjUHRyKCk7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJCXNs b3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJCVNwaW5Mb2NrUmVsZWFz ZSgmc2xvdC0+bXV0ZXgpOworCiAJCQkvKiBtYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggaW5m b3JtYXRpb24gdG8gc3RhcnQgKi8KIAkJCWZsdXNocHRyID0gTG9nU3RhbmRieVNuYXBzaG90 KCk7CiAKIAkJCS8qIGFuZCBtYWtlIHN1cmUgaXQncyBmc3luY2VkIHRvIGRpc2sgKi8KIAkJ CVhMb2dGbHVzaChmbHVzaHB0cik7CiAJCX0KKwkJZWxzZQorCQl7CisJCQlyZXN0YXJ0X2xz biA9IEdldFJlZG9SZWNQdHIoKTsKKwkJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgp OworCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQkJU3Bpbkxv Y2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCX0KIAogCQkvKiBwcmV2ZW50IFdBTCByZW1v dmFsIGFzIGZhc3QgYXMgcG9zc2libGUgKi8KIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVS ZXF1aXJlZExTTigpOwpAQCAtMTE3Miw2ICsxMjQ1LDEyMSBAQCBSZXBsaWNhdGlvblNsb3RS ZXNlcnZlV2FsKHZvaWQpCiAJfQogfQogCisvKgorICogUmVzb2x2ZSByZWNvdmVyeSBjb25m bGljdHMgd2l0aCBsb2dpY2FsIHNsb3RzLgorICoKKyAqIFdoZW4geGlkIGlzIHZhbGlkLCBp dCBtZWFucyB0aGF0IHJvd3Mgb2xkZXIgdGhhbiB4aWQgbWlnaHQgaGF2ZSBiZWVuCisgKiBy ZW1vdmVkLiBUaGVyZWZvcmUgd2UgbmVlZCB0byBkcm9wIHNsb3RzIHRoYXQgZGVwZW5kIG9u IHNlZWluZyB0aG9zZSByb3dzLgorICogV2hlbiB4aWQgaXMgaW52YWxpZCwgZHJvcCBhbGwg bG9naWNhbCBzbG90cy4gVGhpcyBpcyByZXF1aXJlZCB3aGVuIHRoZQorICogbWFzdGVyIHdh bF9sZXZlbCBpcyBzZXQgYmFjayB0byByZXBsaWNhLCBzbyBleGlzdGluZyBsb2dpY2FsIHNs b3RzIG5lZWQgdG8KKyAqIGJlIGRyb3BwZWQuIEFsc28sIHdoZW4geGlkIGlzIGludmFsaWQs IGEgY29tbW9uICdjb25mbGljdF9yZWFzb24nIGlzCisgKiBwcm92aWRlZCBmb3IgdGhlIGVy cm9yIGRldGFpbDsgb3RoZXJ3aXNlIGl0IGlzIE5VTEwsIGluIHdoaWNoIGNhc2UgaXQgaXMK KyAqIGNvbnN0cnVjdGVkIG91dCBvZiB0aGUgeGlkIHZhbHVlLgorICovCit2b2lkCitSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xvdHMoT2lkIGRib2lkLCBUcmFuc2Fj dGlvbklkIHhpZCwKKwkJCQkJCQkJCQljaGFyICpjb25mbGljdF9yZWFzb24pCit7CisJaW50 CQkJaTsKKwlib29sCQlmb3VuZF9jb25mbGljdCA9IGZhbHNlOworCisJaWYgKG1heF9yZXBs aWNhdGlvbl9zbG90cyA8PSAwKQorCQlyZXR1cm47CisKK3Jlc3RhcnQ6CisJaWYgKGZvdW5k X2NvbmZsaWN0KQorCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJZm91bmRfY29u ZmxpY3QgPSBmYWxzZTsKKwl9CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRp b25fc2xvdHM7IGkrKykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqczsKKworCQlzID0gJlJl cGxpY2F0aW9uU2xvdEN0bC0+cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJLyogY2Fubm90 IGNoYW5nZSB3aGlsZSBSZXBsaWNhdGlvblNsb3RDdGxMb2NrIGlzIGhlbGQgKi8KKwkJaWYg KCFzLT5pbl91c2UpCisJCQljb250aW51ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5n IHdpdGggKmxvZ2ljYWwqIHNsb3QgY29uZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2lj YWwocykpCisJCQljb250aW51ZTsKKworCQkvKiBJbnZhbGlkIHhpZCBtZWFucyBjYWxsZXIg aXMgYXNraW5nIHRvIGRyb3AgYWxsIGxvZ2ljYWwgc2xvdHMgKi8KKwkJaWYgKCFUcmFuc2Fj dGlvbklkSXNWYWxpZCh4aWQpKQorCQkJZm91bmRfY29uZmxpY3QgPSB0cnVlOworCQllbHNl CisJCXsKKwkJCVRyYW5zYWN0aW9uSWQgc2xvdF94bWluOworCQkJVHJhbnNhY3Rpb25JZCBz bG90X2NhdGFsb2dfeG1pbjsKKwkJCVN0cmluZ0luZm9EYXRhCWNvbmZsaWN0X3N0ciwgY29u ZmxpY3RfeG1pbnM7CisJCQljaGFyCSAgICpjb25mbGljdF9zZW50ZW5jZSA9CisJCQkJZ2V0 dGV4dF9ub29wKCJTbG90IGNvbmZsaWN0ZWQgd2l0aCB4aWQgaG9yaXpvbiB3aGljaCB3YXMg YmVpbmcgaW5jcmVhc2VkIHRvIik7CisKKwkJCS8qIG5vdCBvdXIgZGF0YWJhc2UsIHNraXAg Ki8KKwkJCWlmIChzLT5kYXRhLmRhdGFiYXNlICE9IEludmFsaWRPaWQgJiYgcy0+ZGF0YS5k YXRhYmFzZSAhPSBkYm9pZCkKKwkJCQljb250aW51ZTsKKworCQkJU3BpbkxvY2tBY3F1aXJl KCZzLT5tdXRleCk7CisJCQlzbG90X3htaW4gPSBzLT5kYXRhLnhtaW47CisJCQlzbG90X2Nh dGFsb2dfeG1pbiA9IHMtPmRhdGEuY2F0YWxvZ194bWluOworCQkJU3BpbkxvY2tSZWxlYXNl KCZzLT5tdXRleCk7CisKKwkJCS8qCisJCQkgKiBCdWlsZCB0aGUgY29uZmxpY3Rfc3RyIHdo aWNoIHdpbGwgbG9vayBsaWtlIDoKKwkJCSAqICJTbG90IGNvbmZsaWN0ZWQgd2l0aCB4aWQg aG9yaXpvbiB3aGljaCB3YXMgYmVpbmcgaW5jcmVhc2VkCisJCQkgKiB0byA5MDEyIChzbG90 IHhtaW46IDEyMzQsIHNsb3QgY2F0YWxvZ194bWluOiA1Njc4KS4iCisJCQkgKi8KKwkJCWlu aXRTdHJpbmdJbmZvKCZjb25mbGljdF94bWlucyk7CisJCQlpZiAoVHJhbnNhY3Rpb25JZElz VmFsaWQoc2xvdF94bWluKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxz KHNsb3RfeG1pbiwgeGlkKSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZjb25mbGlj dF94bWlucywgInNsb3QgeG1pbjogJWQiLCBzbG90X3htaW4pOworCQkJfQorCQkJaWYgKFRy YW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSAmJgorCQkJCVRyYW5zYWN0 aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWluLCB4aWQpKQorCQkJCWFw cGVuZFN0cmluZ0luZm8oJmNvbmZsaWN0X3htaW5zLCAiJXNzbG90IGNhdGFsb2dfeG1pbjog JWQiLAorCQkJCQkJCQkgY29uZmxpY3RfeG1pbnMubGVuID4gMCA/ICIsICIgOiAiIiwKKwkJ CQkJCQkJIHNsb3RfY2F0YWxvZ194bWluKTsKKworCQkJaWYgKGNvbmZsaWN0X3htaW5zLmxl biA+IDApCisJCQl7CisJCQkJaW5pdFN0cmluZ0luZm8oJmNvbmZsaWN0X3N0cik7CisJCQkJ YXBwZW5kU3RyaW5nSW5mbygmY29uZmxpY3Rfc3RyLCAiJXMgJWQgKCVzKS4iLAorCQkJCQkJ CQkgY29uZmxpY3Rfc2VudGVuY2UsIHhpZCwgY29uZmxpY3RfeG1pbnMuZGF0YSk7CisJCQkJ Zm91bmRfY29uZmxpY3QgPSB0cnVlOworCQkJCWNvbmZsaWN0X3JlYXNvbiA9IGNvbmZsaWN0 X3N0ci5kYXRhOworCQkJfQorCQl9CisKKwkJaWYgKGZvdW5kX2NvbmZsaWN0KQorCQl7CisJ CQlOYW1lRGF0YQlzbG90bmFtZTsKKworCQkJU3BpbkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7 CisJCQlzbG90bmFtZSA9IHMtPmRhdGEubmFtZTsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+ bXV0ZXgpOworCisJCQkvKiBSZXBsaWNhdGlvblNsb3REcm9wQ29uZmxpY3RpbmcoKSB3aWxs IGFjcXVpcmUgdGhlIGxvY2sgYmVsb3cgKi8KKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRp b25TbG90Q29udHJvbExvY2spOworCisJCQlSZXBsaWNhdGlvblNsb3REcm9wQ29uZmxpY3Rp bmcocyk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQkoZXJybXNnKCJkcm9wcGVkIGNvbmZs aWN0aW5nIHNsb3QgJXMiLCBOYW1lU3RyKHNsb3RuYW1lKSksCisJCQkJCSBlcnJkZXRhaWwo IiVzIiwgY29uZmxpY3RfcmVhc29uKSkpOworCisJCQkvKiBXZSByZWxlYXNlZCB0aGUgbG9j ayBhYm92ZTsgc28gcmUtc2NhbiB0aGUgc2xvdHMuICovCisJCQlnb3RvIHJlc3RhcnQ7CisJ CX0KKwl9CisKKwlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsK K30KKwogLyoKICAqIE1hcmsgYW55IHNsb3QgdGhhdCBwb2ludHMgdG8gYW4gTFNOIG9sZGVy IHRoYW4gdGhlIGdpdmVuIHNlZ21lbnQKICAqIGFzIGludmFsaWQ7IGl0IHJlcXVpcmVzIFdB TCB0aGF0J3MgYWJvdXQgdG8gYmUgcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJv Y2FycmF5LmMKaW5kZXggNGZjNmZmYjkxNy4uY2QwNDZkZjYxOSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTMzNzIsNiArMzM3MiwxMCBAQCBTaWduYWxWaXJ0 dWFsVHJhbnNhY3Rpb24oVmlydHVhbFRyYW5zYWN0aW9uSWQgdnhpZCwgUHJvY1NpZ25hbFJl YXNvbiBzaWdtb2RlLAogCiAJCUdFVF9WWElEX0ZST01fUEdQUk9DKHByb2N2eGlkLCAqcHJv Yyk7CiAKKwkJLyoKKwkJICogTm90ZTogdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgY2FuIGJl IGludmFsaWQsIHdoaWNoIG1lYW5zIHRoZQorCQkgKiByZXF1ZXN0IGlzIHRvIHNpZ25hbCB0 aGUgcGlkIHRoYXQgaXMgbm90IHJ1bm5pbmcgYSB0cmFuc2FjdGlvbi4KKwkJICovCiAJCWlm IChwcm9jdnhpZC5iYWNrZW5kSWQgPT0gdnhpZC5iYWNrZW5kSWQgJiYKIAkJCXByb2N2eGlk LmxvY2FsVHJhbnNhY3Rpb25JZCA9PSB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCkKIAkJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IGM2YThkNDYxMWUuLjYz NjQyNzYxYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWdu YWwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKQEAgLTY2 OSw2ICs2NjksOSBAQCBwcm9jc2lnbmFsX3NpZ3VzcjFfaGFuZGxlcihTSUdOQUxfQVJHUykK IAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1QpKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfU05BUFNIT1QpOwogCisJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKSkKKwkJUmVjb3ZlcnlDb25mbGljdEludGVycnVw dChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKTsKKwogCWlmIChDaGVj a1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NL KSkKIAkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZM SUNUX1NUQVJUVVBfREVBRExPQ0spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMK aW5kZXggMTdkZTVhNmQwZS4uODI2MDVjZTk0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvc3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0 YW5kYnkuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0 LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5j bHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgi CkBAIC00MjUsNyArNDI2LDggQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVmlydHVh bFhJRHMoVmlydHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogfQogCiB2b2lkCi1SZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92ZWRYaWQsIFJlbEZpbGVOb2RlIG5vZGUpCitSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQli b29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewogCVZpcnR1YWxUcmFu c2FjdGlvbklkICpiYWNrZW5kczsKIApAQCAtNDUwLDYgKzQ1Miw5IEBAIFJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhp ZCwgUmVsRmlsZU5vZGUKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NOQVBTSE9ULAogCQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1Rf U05BUFNIT1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAob25DYXRhbG9nVGFibGUp CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aExvZ2ljYWxTbG90cyhub2RlLmRiTm9k ZSwgbGF0ZXN0UmVtb3ZlZFhpZCwgTlVMTCk7CiB9CiAKIC8qCkBAIC00NTgsNyArNDYzLDcg QEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBs YXRlc3RSZW1vdmVkWGlkLCBSZWxGaWxlTm9kZQogICovCiB2b2lkCiBSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0 UmVtb3ZlZEZ1bGxYaWQsCi0JCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgbm9kZSkKKwkJCQkJ CQkJCQkgICBib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewogCS8q CiAJICogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qgb3BlcmF0ZXMgb24g MzItYml0IFRyYW5zYWN0aW9uSWRzLApAQCAtNDc2LDcgKzQ4MSw3IEBAIFJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBsYXRl c3RSZW1vdmVkRnVsbFhpCiAJCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAog CQlsYXRlc3RSZW1vdmVkWGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGxhdGVzdFJl bW92ZWRGdWxsWGlkKTsKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qo bGF0ZXN0UmVtb3ZlZFhpZCwgbm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQsIG9uQ2F0YWxvZ1RhYmxlLCBub2RlKTsKIAl9 CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAyYjFiNjgxMDlmLi40ODA0NzAwZTIxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0yNDM4LDYgKzI0MzgsOSBAQCBlcnJkZXRhaWxfcmVj b3ZlcnlfY29uZmxpY3Qodm9pZCkKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NOQVBTSE9UOgogCQkJZXJyZGV0YWlsKCJVc2VyIHF1ZXJ5IG1pZ2h0IGhhdmUgbmVlZGVk IHRvIHNlZSByb3cgdmVyc2lvbnMgdGhhdCBtdXN0IGJlIHJlbW92ZWQuIik7CiAJCQlicmVh azsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJ ZXJyZGV0YWlsKCJVc2VyIHdhcyB1c2luZyB0aGUgbG9naWNhbCBzbG90IHRoYXQgbXVzdCBi ZSBkcm9wcGVkLiIpOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJZXJyZGV0YWlsKCJVc2VyIHRyYW5zYWN0aW9u IGNhdXNlZCBidWZmZXIgZGVhZGxvY2sgd2l0aCByZWNvdmVyeS4iKTsKIAkJCWJyZWFrOwpA QCAtMzAwMCw2ICszMDAzLDI1IEBAIFJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUHJvY1Np Z25hbFJlYXNvbiByZWFzb24pCiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf TE9DSzoKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFOgog CQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgorCQkJY2FzZSBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJCS8qCisJCQkJICog Rm9yIGNvbmZsaWN0cyB0aGF0IHJlcXVpcmUgYSBsb2dpY2FsIHNsb3QgdG8gYmUgZHJvcHBl ZCwgdGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIg dG8gcmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGRyb3Bw ZWQgYnkgdGhlIHNpZ25hbCBzZW5kZXIuIFNvIGZvcgorCQkJCSAqIG5vcm1hbCBiYWNrZW5k cywgdGhlIHRyYW5zYWN0aW9uIHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0CisJCQkJICogbGlr ZSBmb3Igb3RoZXIgcmVjb3ZlcnkgY29uZmxpY3RzLiBCdXQgaWYgaXQncyB3YWxzZW5kZXIg b24KKwkJCQkgKiBzdGFuZGJ5LCB0aGVuIGl0IGhhcyB0byBiZSBraWxsZWQgc28gYXMgdG8g cmVsZWFzZSBhbgorCQkJCSAqIGFjcXVpcmVkIGxvZ2ljYWwgc2xvdC4KKwkJCQkgKi8KKwkJ CQlpZiAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciAmJgorCQkJCQlyZWFzb24gPT0gUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCAmJgorCQkJCQlNeVJlcGxpY2F0aW9u U2xvdCAmJiBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRpb25TbG90KSkKKwkJCQl7CisJCQkJ CVJlY292ZXJ5Q29uZmxpY3RQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJUXVlcnlDYW5jZWxQZW5k aW5nID0gdHJ1ZTsKKwkJCQkJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJCQkJCWJyZWFr OworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogSWYgd2UgYXJlbid0IGluIGEgdHJhbnNhY3Rp b24gYW55IGxvbmdlciB0aGVuIGlnbm9yZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1 bmNzLmMKaW5kZXggNTEwMjIyN2E2MC4uMTJlMWUxN2JmYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTE0OTQsNiArMTQ5NCwyMSBAQCBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9zbmFwc2hvdChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9JTlQ2 NChyZXN1bHQpOwogfQogCitEYXR1bQorcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNh bHNsb3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlkYmlkID0gUEdfR0VUQVJHX09J RCgwKTsKKwlpbnQ2NAkJcmVzdWx0OworCVBnU3RhdF9TdGF0REJFbnRyeSAqZGJlbnRyeTsK KworCWlmICgoZGJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2RiZW50cnkoZGJpZCkpID09 IE5VTEwpCisJCXJlc3VsdCA9IDA7CisJZWxzZQorCQlyZXN1bHQgPSAoaW50NjQpIChkYmVu dHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1 bHQpOworfQorCiBEYXR1bQogcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CkBAIC0xNTM3LDYgKzE1NTIsNyBAQCBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9hbGwoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gKGludDY0KSAo ZGJlbnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9j b25mbGljdF9sb2NrICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9zbmFwc2hvdCAr CisJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QgKwogCQkJCQkJICBk YmVudHJ5LT5uX2NvbmZsaWN0X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnktPm5fY29u ZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IDkzMzkzZmNmZDQuLjBmYmE1ODlhOTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dApAQCAtNTQwMyw2ICs1NDAzLDExIEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2Ri X2NvbmZsaWN0X3NuYXBzaG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxl bCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywK ICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcgfSwKK3sg b2lkID0+ICc0NTQzJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZs aWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywK KyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnLCBw cm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9 PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JyB9LAogeyBvaWQgPT4gJzMwNjgnLAogICBk ZXNjciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNlIGNh dXNlZCBieSBzaGFyZWQgYnVmZmVyIHBpbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbicsIHByb3ZvbGF0aWxlID0+ICdzJywKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXgg YmU0M2MwNDgwMi4uZjJkNDI0ZTFiMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTcyMCw2ICs3MjAsNyBAQCB0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZs aWN0X3RhYmxlc3BhY2U7CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9sb2NrOwogCVBn U3RhdF9Db3VudGVyIG5fY29uZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0X0NvdW50ZXIgbl9j b25mbGljdF9sb2dpY2Fsc2xvdDsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X2J1ZmZl cnBpbjsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2s7CiAJ UGdTdGF0X0NvdW50ZXIgbl90ZW1wX2ZpbGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmlu ZGV4IDFhZDVlNmM1MGQuLmI2ZTVmZmZmNzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgK QEAgLTIzMiw0ICsyMzIsNiBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25T bG90cyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVxdWlyZW1lbnRzKHZvaWQp OwogCitleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xv dHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqcmVhc29uKTsKKwogI2Vu ZGlmCQkJCQkJCS8qIFNMT1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9wcm9jc2lnbmFsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAppbmRl eCA0YWU3ZGMzM2I4Li4yNzAzNWIwNzViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9y YWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwu aApAQCAtNDAsNiArNDAsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX1RBQkxFU1BBQ0UsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NLLAog CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCisJUFJPQ1NJR19SRUNPVkVS WV9DT05GTElDVF9MT0dJQ0FMU0xPVCwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0JV RkZFUlBJTiwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0ss CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKaW5kZXggMzhmZDg1YTQzMS4uM2JhMTg4MjIxNiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKKysrIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKQEAgLTMwLDkgKzMwLDkgQEAgZXh0ZXJuIHZvaWQg SW5pdFJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9ubWVudCh2b2lkKTsKIGV4dGVybiB2b2lk IFNodXRkb3duUmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZvaWQpOwogCiBleHRl cm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlv bklkIGxhdGVzdFJlbW92ZWRYaWQsCi0JCQkJCQkJCQkJCQlSZWxGaWxlTm9kZSBub2RlKTsK KwkJCQkJCQkJCQkJCWJvb2wgb25DYXRhbG9nVGFibGUsIFJlbEZpbGVOb2RlIG5vZGUpOwog ZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlk KEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRGdWxsWGlkLAotCQkJCQkJCQkJCQkJ CSAgIFJlbEZpbGVOb2RlIG5vZGUpOworCQkJCQkJCQkJCQkJCSAgIGJvb2wgb25DYXRhbG9n VGFibGUsIFJlbEZpbGVOb2RlIG5vZGUpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoVGFibGVzcGFjZShPaWQgdHNpZCk7CiBleHRlcm4gdm9pZCBSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhEYXRhYmFzZShPaWQgZGJpZCk7CiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggOWIxMmNjMTIyYS4uYjBlMTdkNGUxZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4NjksNiArMTg2OSw3IEBA IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzfCBTRUxFQ1QgZC5vaWQgQVMgZGF0aWQsCiAg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfdGFibGVzcGFjZShkLm9pZCkgQVMgY29uZmxf dGFibGVzcGFjZSwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKGQub2lkKSBB UyBjb25mbF9sb2NrLAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KGQu b2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKKyAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9s b2dpY2Fsc2xvdChkLm9pZCkgQVMgY29uZmxfbG9naWNhbHNsb3QsCiAgICAgcGdfc3RhdF9n ZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCiAg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhkLm9pZCkgQVMg Y29uZmxfZGVhZGxvY2sKICAgIEZST00gcGdfZGF0YWJhc2UgZDsKLS0gCjIuMTguNAoK --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v10-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v10-0002-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" RnJvbSBiMzE2MzI4MjQ2NWVmMzk5NGUxMThiNzRkNDMzZGE2NjgzNzlhNDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNyBNYXIgMjAyMSAxNTozNjoyMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjEwIDIvNV0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCgpXaGVuIGEgV0FMIHJlcGxheSBv biBzdGFuZGJ5IGluZGljYXRlcyB0aGF0IGEgY2F0YWxvZyB0YWJsZSB0dXBsZSBpcwp0byBi ZSBkZWxldGVkIGJ5IGFuIHhpZCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBhIGxvZ2ljYWwgc2xv dCdzCmNhdGFsb2dfeG1pbiwgdGhlbiB0aGF0IG1lYW5zIHRoZSBzbG90J3MgY2F0YWxvZ194 bWluIGNvbmZsaWN0cyB3aXRoCnRoZSB4aWQsIGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUg Y29uZmxpY3QuICBXaGlsZSBzdWJzZXF1ZW50IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFs IGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNvbW1pdCBhZGRzIGEgbmV3IGZpZWxkCm9uQ2F0 YWxvZ1RhYmxlIGluIHN1Y2ggV0FMIHJlY29yZHMsIHRoYXQgaXMgdHJ1ZSBmb3IgY2F0YWxv ZyB0YWJsZXMsCnNvIGFzIHRvIGFycmFuZ2UgZm9yIGNvbmZsaWN0IGhhbmRsaW5nLgoKQW5k cmVzIEZyZXVuZC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgICAgICAg ICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgICAgIHwg IDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMgICAgICB8ICA0ICsr LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICAgICB8ICA0ICsrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyAgICB8ICAyICsrCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgfCAxMCArKysrKysrLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICB8IDEyICsrKysrKysrKy0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDggKysrKysrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICB8IDE2ICsrKysrKysrKysrKysr KysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaCAgICAgICB8ICA2ICsrKy0t LQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggICAgICAgICAgIHwgIDMgKystCiBz cmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggICAgICAgICAgfCAgMSArCiBzcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgOCArKysrKystLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHhsb2cuaCAgICAgICAgICAgIHwgIDIgKysKIHNyYy9pbmNsdWRl L2FjY2Vzcy9zcGd4bG9nLmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5o ICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKysrKwogMTkgZmlsZXMgY2hhbmdlZCwgNzYg aW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCiAgMTUuMyUgc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvCiAgMjAuOSUgc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvCiAgMTIuNCUgc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS8KICAgNy42JSBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0LwogICA2LjklIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlLwogIDIwLjAlIHNyYy9pbmNs dWRlL2FjY2Vzcy8KICAxNC4yJSBzcmMvaW5jbHVkZS91dGlscy8KCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0LmMKaW5kZXggMDY4M2Y0MmMyNS4uYjZlNjM0MGMzYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3QuYwpAQCAtMzQ4LDcgKzM0OCw3IEBAIGdpc3RwbGFjZXRvcGFnZShSZWxhdGlv biByZWwsIFNpemUgZnJlZXNwYWNlLCBHSVNUU1RBVEUgKmdpc3RzdGF0ZSwKIAkJZm9yICg7 IHB0cjsgcHRyID0gcHRyLT5uZXh0KQogCQl7CiAJCQkvKiBBbGxvY2F0ZSBuZXcgcGFnZSAq LwotCQkJcHRyLT5idWZmZXIgPSBnaXN0TmV3QnVmZmVyKHJlbCk7CisJCQlwdHItPmJ1ZmZl ciA9IGdpc3ROZXdCdWZmZXIoaGVhcFJlbCwgcmVsKTsKIAkJCUdJU1RJbml0QnVmZmVyKHB0 ci0+YnVmZmVyLCAoaXNfbGVhZikgPyBGX0xFQUYgOiAwKTsKIAkJCXB0ci0+cGFnZSA9IEJ1 ZmZlckdldFBhZ2UocHRyLT5idWZmZXIpOwogCQkJcHRyLT5ibG9jay5ibGtubyA9IEJ1ZmZl ckdldEJsb2NrTnVtYmVyKHB0ci0+YnVmZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dGJ1aWxkLmMKaW5kZXggMTA1NGY2ZjFmMi4uOGIwNjRmMzJhYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKQEAgLTI5MCw3ICsyOTAsNyBAQCBnaXN0YnVpbGQoUmVs YXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsIEluZGV4SW5mbyAqaW5kZXhJbmZvKQogCQlQ YWdlCQlwYWdlOwogCiAJCS8qIGluaXRpYWxpemUgdGhlIHJvb3QgcGFnZSAqLwotCQlidWZm ZXIgPSBnaXN0TmV3QnVmZmVyKGluZGV4KTsKKwkJYnVmZmVyID0gZ2lzdE5ld0J1ZmZlciho ZWFwLCBpbmRleCk7CiAJCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpID09 IEdJU1RfUk9PVF9CTEtOTyk7CiAJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IGEzZWM5ZjJjZmUuLjA0MjU2 YWRkZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtODIzLDcgKzgy Myw3IEBAIGdpc3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmKQogICogQ2Fs bGVyIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgdGhlIHBhZ2UgYnkgY2FsbGlu ZyBHSVNUSW5pdEJ1ZmZlcgogICovCiBCdWZmZXIKLWdpc3ROZXdCdWZmZXIoUmVsYXRpb24g cikKK2dpc3ROZXdCdWZmZXIoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcikKIHsKIAlC dWZmZXIJCWJ1ZmZlcjsKIAlib29sCQluZWVkTG9jazsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBn aXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIpCiAJCQkJICogcGFnZSdzIGRlbGV0ZVhpZC4KIAkJ CQkgKi8KIAkJCQlpZiAoWExvZ1N0YW5kYnlJbmZvQWN0aXZlKCkgJiYgUmVsYXRpb25OZWVk c1dBTChyKSkKLQkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UociwgYmxrbm8sIEdpc3RQYWdlR2V0 RGVsZXRlWGlkKHBhZ2UpKTsKKwkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UoaGVhcFJlbCwgciwg Ymxrbm8sIEdpc3RQYWdlR2V0RGVsZXRlWGlkKHBhZ2UpKTsKIAogCQkJCXJldHVybiBidWZm ZXI7CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCAxYzgwZWFl MDQ0Li45N2Q4MTRiOTI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAg LTU5Niw3ICs1OTYsOCBAQCBnaXN0WExvZ0Fzc2lnbkxTTih2b2lkKQogICogV3JpdGUgWExP RyByZWNvcmQgYWJvdXQgcmV1c2Ugb2YgYSBkZWxldGVkIHBhZ2UuCiAgKi8KIHZvaWQKLWdp c3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxU cmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpCitnaXN0WExvZ1BhZ2VSZXVzZShSZWxh dGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJICBCbG9ja051bWJlciBibGtubywg RnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAlnaXN0eGxvZ1BhZ2VS ZXVzZSB4bHJlY19yZXVzZTsKIApAQCAtNjA3LDYgKzYwOCw3IEBAIGdpc3RYTG9nUGFnZVJl dXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92CiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uu b25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n KGhlYXBSZWwpOwogCXhscmVjX3JldXNlLm5vZGUgPSByZWwtPnJkX25vZGU7CiAJeGxyZWNf cmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJlY19yZXVzZS5sYXRlc3RSZW1vdmVkRnVsbFhp ZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0 LmMKaW5kZXggZDI1NGEwMGI2YS4uNTcxMTk1MmZjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hpbnNlcnQuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNz L2hhc2guaCIKICNpbmNsdWRlICJhY2Nlc3MvaGFzaF94bG9nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9idWZfaW50ZXJuYWxzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sd2xvY2suaCIKQEAg LTM5OCw2ICszOTksNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBS ZWxhdGlvbiBocmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hf dmFjdXVtX29uZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhs cmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhocmVsKTsKIAkJCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVk WGlkOwogCQkJeGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKaW5kZXggN2NiODdmNGEzYi4uYWMwMDRmMTI1OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTc5NTQsMTIgKzc5NTQsMTMgQEAgYm90dG9tdXBfc29y dF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogICogc2VlIGNvbW1l bnRzIGZvciB2YWN1dW1fbG9nX2NsZWFudXBfaW5mbygpLgogICovCiBYTG9nUmVjUHRyCi1s b2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsRmlsZU5vZGUgcm5vZGUsIFRyYW5zYWN0aW9uSWQg bGF0ZXN0UmVtb3ZlZFhpZCkKK2xvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxhdGlvbiByZWws IFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAl4bF9oZWFwX2NsZWFudXBf aW5mbyB4bHJlYzsKIAlYTG9nUmVjUHRyCXJlY3B0cjsKIAotCXhscmVjLm5vZGUgPSBybm9k ZTsKKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dp Y2FsRGVjb2RpbmcocmVsKTsKKwl4bHJlYy5ub2RlID0gcmVsLT5yZF9ub2RlOwogCXhscmVj LmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCiAJWExvZ0JlZ2luSW5z ZXJ0KCk7CkBAIC03OTk1LDYgKzc5OTYsNyBAQCBsb2dfaGVhcF9jbGVhbihSZWxhdGlvbiBy ZWxuLCBCdWZmZXIgYnVmZmVyLAogCS8qIENhbGxlciBzaG91bGQgbm90IGNhbGwgbWUgb24g YSBub24tV0FMLWxvZ2dlZCByZWxhdGlvbiAqLwogCUFzc2VydChSZWxhdGlvbk5lZWRzV0FM KHJlbG4pKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0g bGF0ZXN0UmVtb3ZlZFhpZDsKIAl4bHJlYy5ucmVkaXJlY3RlZCA9IG5yZWRpcmVjdGVkOwog CXhscmVjLm5kZWFkID0gbmRlYWQ7CkBAIC04MDQ1LDYgKzgwNDcsNyBAQCBsb2dfaGVhcF9m cmVlemUoUmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRv ZmZfeGlkLAogCS8qIG5vciB3aGVuIHRoZXJlIGFyZSBubyB0dXBsZXMgdG8gZnJlZXplICov CiAJQXNzZXJ0KG50dXBsZXMgPiAwKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVs YXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5jdXRv ZmZfeGlkID0gY3V0b2ZmX3hpZDsKIAl4bHJlYy5udHVwbGVzID0gbnR1cGxlczsKIApAQCAt ODA3NSw3ICs4MDc4LDcgQEAgbG9nX2hlYXBfZnJlZXplKFJlbGF0aW9uIHJlbG4sIEJ1ZmZl ciBidWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKICAqIGhlYXBfYnVmZmVyLCBp ZiBuZWNlc3NhcnkuCiAgKi8KIFhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsRmls ZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKK2xv Z19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZl ciB2bV9idWZmZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggdm1m bGFncykKIHsKIAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC04MDg1LDYgKzgwODgsNyBA QCBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVOb2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZm ZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZm ZXIpKTsKIAlBc3NlcnQoQnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKIAorCXhscmVjLm9u Q2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhy ZWwpOwogCXhscmVjLmN1dG9mZl94aWQgPSBjdXRvZmZfeGlkOwogCXhscmVjLmZsYWdzID0g dm1mbGFnczsKIAlYTG9nQmVnaW5JbnNlcnQoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYwppbmRleCA4MzQxODc5ZDg5Li5lODEyOWJlNjM0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC03MzcsNyArNzM3LDcgQEAgdmFjdXVtX2xv Z19jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLCBMVlJlbFN0YXRzICp2YWNyZWxzdGF0cykK IAkgKiBObyBuZWVkIHRvIHdyaXRlIHRoZSByZWNvcmQgYXQgYWxsIHVubGVzcyBpdCBjb250 YWlucyBhIHZhbGlkIHZhbHVlCiAJICovCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZh Y3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJKHZvaWQpIGxvZ19oZWFwX2NsZWFu dXBfaW5mbyhyZWwtPnJkX25vZGUsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKTsK KwkJKHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhyZWwsIHZhY3JlbHN0YXRzLT5sYXRl c3RSZW1vdmVkWGlkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYwppbmRleCBlMTk4ZGY2NWQ4Li42ZTg5YTA4YzUyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0yODIsNyArMjgyLDcgQEAgdmlz aWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7 CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNp YmxlKHJlbC0+cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYsCisJCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLAogCQkJCQkJCQkJCSAgY3V0b2ZmX3hp ZCwgZmxhZ3MpOwogCiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMK aW5kZXggZmM3NDRjZjlmZC4uNTI4ZDE5MjkzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnRwYWdlLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2luZGV4 ZnNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9w cmVkaWNhdGUuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKIApAQCAtNDEs NyArNDIsOCBAQCBzdGF0aWMgdm9pZCBfYnRfbG9nX3JldXNlX3BhZ2UoUmVsYXRpb24gcmVs LCBCbG9ja051bWJlciBibGtubywKIHN0YXRpYyB2b2lkIF9idF9kZWxpdGVtc19kZWxldGUo UmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQlUcmFuc2FjdGlvbklkIGxhdGVz dFJlbW92ZWRYaWQsCiAJCQkJCQkJCU9mZnNldE51bWJlciAqZGVsZXRhYmxlLCBpbnQgbmRl bGV0YWJsZSwKLQkJCQkJCQkJQlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFibGUsIGludCBudXBk YXRhYmxlKTsKKwkJCQkJCQkJQlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFibGUsIGludCBudXBk YXRhYmxlLAorCQkJCQkJCQlSZWxhdGlvbiBoZWFwUmVsKTsKIHN0YXRpYyBjaGFyICpfYnRf ZGVsaXRlbXNfdXBkYXRlKEJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0 YWJsZSwKIAkJCQkJCQkJIE9mZnNldE51bWJlciAqdXBkYXRlZG9mZnNldHMsCiAJCQkJCQkJ CSBTaXplICp1cGRhdGVkYnVmbGVuLCBib29sIG5lZWRzd2FsKTsKQEAgLTgzNiw2ICs4Mzgs NyBAQCBfYnRfbG9nX3JldXNlX3BhZ2UoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBibGtu bywgRnVsbFRyYW5zYWN0aW9uSWQgc2FmZXhpZCkKIAkgKi8KIAogCS8qIFhMT0cgc3R1ZmYg Ki8KKwl4bHJlY19yZXVzZS5vbkNhdGFsb2dUYWJsZSA9IGdldF9yZWxfbG9naWNhbF9jYXRh bG9nKHJlbC0+cmRfaW5kZXgtPmluZHJlbGlkKTsKIAl4bHJlY19yZXVzZS5ub2RlID0gcmVs LT5yZF9ub2RlOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uu bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQgPSBzYWZleGlkOwpAQCAtMTI5Niw3ICsxMjk5LDggQEAg X2J0X2RlbGl0ZW1zX3ZhY3V1bShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiBzdGF0aWMg dm9pZAogX2J0X2RlbGl0ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsIFRy YW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKIAkJCQkJT2Zmc2V0TnVtYmVyICpkZWxl dGFibGUsIGludCBuZGVsZXRhYmxlLAotCQkJCQlCVFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJs ZSwgaW50IG51cGRhdGFibGUpCisJCQkJCUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBp bnQgbnVwZGF0YWJsZSwKKwkJCQkJUmVsYXRpb24gaGVhcFJlbCkKIHsKIAlQYWdlCQlwYWdl ID0gQnVmZmVyR2V0UGFnZShidWYpOwogCUJUUGFnZU9wYXF1ZSBvcGFxdWU7CkBAIC0xMzU4 LDYgKzEzNjIsOCBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwgVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAogCQlYTG9nUmVjUHRyCXJl Y3B0cjsKIAkJeGxfYnRyZWVfZGVsZXRlIHhscmVjX2RlbGV0ZTsKIAorCQl4bHJlY19kZWxl dGUub25DYXRhbG9nVGFibGUgPQorCQkJUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxE ZWNvZGluZyhoZWFwUmVsKTsKIAkJeGxyZWNfZGVsZXRlLmxhdGVzdFJlbW92ZWRYaWQgPSBs YXRlc3RSZW1vdmVkWGlkOwogCQl4bHJlY19kZWxldGUubmRlbGV0ZWQgPSBuZGVsZXRhYmxl OwogCQl4bHJlY19kZWxldGUubnVwZGF0ZWQgPSBudXBkYXRhYmxlOwpAQCAtMTY4NSw3ICsx NjkxLDcgQEAgX2J0X2RlbGl0ZW1zX2RlbGV0ZV9jaGVjayhSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsIFJlbGF0aW9uIGhlYXBSZWwsCiAKIAkvKiBQaHlzaWNhbGx5IGRlbGV0ZSB0dXBs ZXMgKG9yIFRJRHMpIHVzaW5nIGRlbGV0YWJsZSAob3IgdXBkYXRhYmxlKSAqLwogCV9idF9k ZWxpdGVtc19kZWxldGUocmVsLCBidWYsIGxhdGVzdFJlbW92ZWRYaWQsIGRlbGV0YWJsZSwg bmRlbGV0YWJsZSwKLQkJCQkJCXVwZGF0YWJsZSwgbnVwZGF0YWJsZSk7CisJCQkJCQl1cGRh dGFibGUsIG51cGRhdGFibGUsIGhlYXBSZWwpOwogCiAJLyogYmUgdGlkeSAqLwogCWZvciAo aW50IGkgPSAwOyBpIDwgbnVwZGF0YWJsZTsgaSsrKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BndmFjdXVtLmMKaW5kZXggYTlmZmNhNTE4My4uY2Q2NTY5OTU1YyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j bHVkZSAic3RvcmFnZS9pbmRleGZzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgog I2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUu aCIKIAogCiAvKiBFbnRyeSBpbiBwZW5kaW5nLWxpc3Qgb2YgVElEcyB3ZSBuZWVkIHRvIHJl dmlzaXQgKi8KQEAgLTUwMyw2ICs1MDQsMTMgQEAgdmFjdXVtUmVkaXJlY3RBbmRQbGFjZWhv bGRlcihSZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlcikKIAlzcGd4bG9nVmFjdXVtUmVk aXJlY3QgeGxyZWM7CiAJR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3Q7CiAKKwkvKgorCSAqIFRo ZXJlIGlzIG5vIGNoYW5jZSBvZiBlbmRsZXNzIHJlY3Vyc2lvbiBldmVuIHdoZW4gd2UgYXJl IGRvaW5nIGNhdGFsb2cKKwkgKiBhY2Nlc2VzIGhlcmU7IGJlY2F1c2UsIHNwZ2lzdCBpcyBu ZXZlciB1c2VkIGZvciBjYXRhbG9ncy4gQ2hlY2sKKwkgKiBjb21tZW50cyBpbiBSZWxhdGlv bklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKCkuCisJICovCisJeGxyZWMub25DYXRh bG9nVGFibGUgPSBnZXRfcmVsX2xvZ2ljYWxfY2F0YWxvZyhpbmRleC0+cmRfaW5kZXgtPmlu ZHJlbGlkKTsKKwogCXhscmVjLm5Ub1BsYWNlaG9sZGVyID0gMDsKIAl4bHJlYy5uZXdlc3RS ZWRpcmVjdFhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jCmluZGV4IDZiYmE1ZjhlYzQuLjkwZmE1ZGZjN2MgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0xOCw3ICsxOCw5IEBACiAjaW5jbHVk ZSAiYWNjZXNzL2hhc2guaCIKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAj aW5jbHVkZSAiYWNjZXNzL25idHJlZS5oIgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgog I2luY2x1ZGUgImJvb3RzdHJhcC9ib290c3RyYXAuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2Nh dGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Ftb3AuaCIKQEAgLTIwNjIs NiArMjA2NCwyMCBAQCBnZXRfcmVsX3BlcnNpc3RlbmNlKE9pZCByZWxpZCkKIAlyZXR1cm4g cmVzdWx0OwogfQogCitib29sCitnZXRfcmVsX2xvZ2ljYWxfY2F0YWxvZyhPaWQgcmVsaWQp Cit7CisJYm9vbAlyZXM7CisJUmVsYXRpb24gcmVsOworCisJLyogYXNzdW1lIHByZXZpb3Vz bHkgbG9ja2VkICovCisJcmVsID0gdGFibGVfb3BlbihyZWxpZCwgTm9Mb2NrKTsKKwlyZXMg PSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CisJdGFibGVf Y2xvc2UocmVsLCBOb0xvY2spOworCisJcmV0dXJuIHJlczsKK30KKwogCiAvKgkJCQktLS0t LS0tLS0tIFRSQU5TRk9STSBDQUNIRSAtLS0tLS0tLS0tCQkJCQkJICovCiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0X3ByaXZhdGUuaAppbmRleCA1NTNkMzY0ZTJkLi5hMGY0MDE1NTU2IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCkBAIC00NDAsOCArNDQwLDggQEAgZXh0ZXJu IFhMb2dSZWNQdHIgZ2lzdFhMb2dQYWdlRGVsZXRlKEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJ CQkgRnVsbFRyYW5zYWN0aW9uSWQgeGlkLCBCdWZmZXIgcGFyZW50QnVmZmVyLAogCQkJCQkJ CQkJIE9mZnNldE51bWJlciBkb3dubGlua09mZnNldCk7CiAKLWV4dGVybiB2b2lkIGdpc3RY TG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sCi0JCQkJCQkJ ICBGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkKTsKK2V4dGVybiB2b2lkIGdp c3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIGhlYXBSZWwsIFJlbGF0aW9uIHJlbCwKKwkJCQkg IEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlk KTsKIAogZXh0ZXJuIFhMb2dSZWNQdHIgZ2lzdFhMb2dVcGRhdGUoQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkJIE9mZnNldE51bWJlciAqdG9kZWxldGUsIGludCBudG9kZWxldGUsCkBAIC00 ODUsNyArNDg1LDcgQEAgZXh0ZXJuIGJvb2wgZ2lzdHByb3BlcnR5KE9pZCBpbmRleF9vaWQs IGludCBhdHRubywKIGV4dGVybiBib29sIGdpc3RmaXRwYWdlKEluZGV4VHVwbGUgKml0dmVj LCBpbnQgbGVuKTsKIGV4dGVybiBib29sIGdpc3Rub3NwYWNlKFBhZ2UgcGFnZSwgSW5kZXhU dXBsZSAqaXR2ZWMsIGludCBsZW4sIE9mZnNldE51bWJlciB0b2RlbGV0ZSwgU2l6ZSBmcmVl c3BhY2UpOwogZXh0ZXJuIHZvaWQgZ2lzdGNoZWNrcGFnZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYpOwotZXh0ZXJuIEJ1ZmZlciBnaXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIpOworZXh0 ZXJuIEJ1ZmZlciBnaXN0TmV3QnVmZmVyKFJlbGF0aW9uIGhlYXBSZWwsIFJlbGF0aW9uIHIp OwogZXh0ZXJuIGJvb2wgZ2lzdFBhZ2VSZWN5Y2xhYmxlKFBhZ2UgcGFnZSk7CiBleHRlcm4g dm9pZCBnaXN0ZmlsbGJ1ZmZlcihQYWdlIHBhZ2UsIEluZGV4VHVwbGUgKml0dXAsIGludCBs ZW4sCiAJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9naXN0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgK aW5kZXggZmQ1MTQ0ZjI1OC4uNzM5OTlkZGM3MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3R4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgK QEAgLTQ5LDkgKzQ5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dQYWdlVXBkYXRlCiAg Ki8KIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nRGVsZXRlCiB7CisJYm9vbAkJb25DYXRhbG9n VGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQxNgkJbnRv ZGVsZXRlOwkJLyogbnVtYmVyIG9mIGRlbGV0ZWQgb2Zmc2V0cyAqLwotCiAJLyoKIAkgKiBJ biBwYXlsb2FkIG9mIGJsayAwIDogdG9kZWxldGUgT2Zmc2V0TnVtYmVycwogCSAqLwpAQCAt OTcsNiArOTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VEZWxldGUKICAqLwog dHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dQYWdlUmV1c2UKIHsKKwlib29sCQlvbkNhdGFsb2dU YWJsZTsKIAlSZWxGaWxlTm9kZSBub2RlOwogCUJsb2NrTnVtYmVyIGJsb2NrOwogCUZ1bGxU cmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRGdWxsWGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxv Zy5oCmluZGV4IDQzNTNhMzJkYmIuLjk0YzMyOTJjMWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94 bG9nLmgKQEAgLTI1MCw2ICsyNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oYXNoX2luaXRf Yml0bWFwX3BhZ2UKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF92YWN1dW1fb25lX3Bh Z2UKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92ZWRYaWQ7CiAJaW50CQkJbnR1cGxlczsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cu aAppbmRleCAxNzhkNDk3MTBhLi42YzRjMjZjMmZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt X3hsb2cuaApAQCAtMjM5LDYgKzIzOSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdXBk YXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfY2xlYW4KIHsKKwlib29sCQlvbkNh dGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWludDE2 CQlucmVkaXJlY3RlZDsKIAl1aW50MTYJCW5kZWFkOwpAQCAtMjU0LDYgKzI1NSw3IEBAIHR5 cGVkZWYgc3RydWN0IHhsX2hlYXBfY2xlYW4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVh cF9jbGVhbnVwX2luZm8KIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlSZWxGaWxlTm9k ZSBub2RlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIH0geGxfaGVhcF9j bGVhbnVwX2luZm87CkBAIC0zMzQsNiArMzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVh cF9mcmVlemVfdHVwbGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFn ZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hp ZDsKIAl1aW50MTYJCW50dXBsZXM7CiB9IHhsX2hlYXBfZnJlZXplX3BhZ2U7CkBAIC0zNDgs NiArMzUxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogICovCiB0 eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Zpc2libGUKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJs ZTsKIAlUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQ7CiAJdWludDgJCWZsYWdzOwogfSB4bF9o ZWFwX3Zpc2libGU7CkBAIC0zOTcsNyArNDAxLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVz YyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNv bnN0IGNoYXIgKmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVh cF94bG9nX2xvZ2ljYWxfcmV3cml0ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4g WExvZ1JlY1B0ciBsb2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsRmlsZU5vZGUgcm5vZGUsCitl eHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLAog CQkJCQkJCQkJCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCk7CiBleHRlcm4gWExv Z1JlY1B0ciBsb2dfaGVhcF9jbGVhbihSZWxhdGlvbiByZWxuLCBCdWZmZXIgYnVmZmVyLAog CQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpyZWRpcmVjdGVkLCBpbnQgbnJlZGlyZWN0ZWQsCkBA IC00MTYsNyArNDIwLDcgQEAgZXh0ZXJuIGJvb2wgaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBs ZShIZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkgIGJvb2wgKnRvdGFsbHlfZnJv emVuKTsKIGV4dGVybiB2b2lkIGhlYXBfZXhlY3V0ZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxl SGVhZGVyIHR1cGxlLAogCQkJCQkJCQkJICB4bF9oZWFwX2ZyZWV6ZV90dXBsZSAqeGxyZWNf dHApOwotZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTm9kZSBy bm9kZSwgQnVmZmVyIGhlYXBfYnVmZmVyLAorZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBf dmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKIAkJCQkJCQkJICAg QnVmZmVyIHZtX2J1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLCB1aW50OCBmbGFn cyk7CiAKICNlbmRpZgkJCQkJCQkvKiBIRUFQQU1fWExPR19IICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhs b2cuaAppbmRleCAwZjc3MzE4NTZiLi5iMTVhYTQ3ZjFiIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9n LmgKQEAgLTE4NSw2ICsxODUsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9kZWR1cAog ICovCiB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9yZXVzZV9wYWdlCiB7CisJYm9vbCAgICAg ICAgb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5vZGUgbm9kZTsKIAlCbG9ja051bWJlciBi bG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkRnVsbFhpZDsKQEAgLTIz Miw2ICsyMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV92YWN1dW0KIAogdHlwZWRl ZiBzdHJ1Y3QgeGxfYnRyZWVfZGVsZXRlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJ VHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJ dWludDE2CQludXBkYXRlZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4 bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCmluZGV4IDY5NDA1YjU3NTAu LjA2YjkxZjRkMDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaApAQCAtMjM3LDYgKzIzNyw3IEBA IHR5cGVkZWYgc3RydWN0IHNwZ3hsb2dWYWN1dW1Sb290CiAKIHR5cGVkZWYgc3RydWN0IHNw Z3hsb2dWYWN1dW1SZWRpcmVjdAogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCXVpbnQx NgkJblRvUGxhY2Vob2xkZXI7IC8qIG51bWJlciBvZiByZWRpcmVjdHMgdG8gbWFrZSBwbGFj ZWhvbGRlcnMgKi8KIAlPZmZzZXROdW1iZXIgZmlyc3RQbGFjZWhvbGRlcjsJLyogZmlyc3Qg cGxhY2Vob2xkZXIgdHVwbGUgdG8gcmVtb3ZlICovCiAJVHJhbnNhY3Rpb25JZCBuZXdlc3RS ZWRpcmVjdFhpZDsJLyogbmV3ZXN0IFhJRCBvZiByZW1vdmVkIHJlZGlyZWN0cyAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAppbmRleCA3Nzg3MWFhZWZjLi5lMmE1ZWZlZDMwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaApAQCAtMTM5LDYgKzEzOSw3IEBAIGV4dGVybiBjaGFyIGdldF9y ZWxfcmVsa2luZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgZ2V0X3JlbF9yZWxpc3BhcnRp dGlvbihPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3RhYmxlc3BhY2UoT2lkIHJl bGlkKTsKIGV4dGVybiBjaGFyIGdldF9yZWxfcGVyc2lzdGVuY2UoT2lkIHJlbGlkKTsKK2V4 dGVybiBib29sIGdldF9yZWxfbG9naWNhbF9jYXRhbG9nKE9pZCByZWxpZCk7CiBleHRlcm4g T2lkCWdldF90cmFuc2Zvcm1fZnJvbXNxbChPaWQgdHlwaWQsIE9pZCBsYW5naWQsIExpc3Qg KnRyZnR5cGVzKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV90b3NxbChPaWQgdHlwaWQs IE9pZCBsYW5naWQsIExpc3QgKnRyZnR5cGVzKTsKIGV4dGVybiBib29sIGdldF90eXBpc2Rl ZmluZWQoT2lkIHR5cGlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMTBiNjM5ODJjMC4uZjgwMDZhNzEy NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1 ZGUvdXRpbHMvcmVsLmgKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90 dXBkZXNjLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9n L2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19pbmRleC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24u aCIKQEAgLTM0NSw2ICszNDYsOSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMKICAq IFJlbGF0aW9uSXNVc2VkQXNDYXRhbG9nVGFibGUKICAqCQlSZXR1cm5zIHdoZXRoZXIgdGhl IHJlbGF0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgY2F0YWxvZyB0YWJsZQogICoJCWZy b20gdGhlIHBvdiBvZiBsb2dpY2FsIGRlY29kaW5nLiAgTm90ZSBtdWx0aXBsZSBldmFsIG9m IGFyZ3VtZW50IQorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0 aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nlc3M7IG90aGVyd2lzZSBpdCBt YXkgY2F1c2UgaW5maW5pdGUgcmVjdXJzaW9uLiBDaGVjayB0aGUgY29tbWVudHMKKyAqCQlp biBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKCkgZm9yIGRldGFpbHMu CiAgKi8KICNkZWZpbmUgUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikJ XAogCSgocmVsYXRpb24pLT5yZF9vcHRpb25zICYmIFwKQEAgLTYxNiw2ICs2MjAsMTEgQEAg dHlwZWRlZiBzdHJ1Y3QgVmlld09wdGlvbnMKICAqIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5M b2dpY2FsRGVjb2RpbmcKICAqCQlUcnVlIGlmIHdlIG5lZWQgdG8gbG9nIGVub3VnaCBpbmZv cm1hdGlvbiB0byBoYXZlIGFjY2VzcyB2aWEKICAqCQlkZWNvZGluZyBzbmFwc2hvdC4KKyAq CQlUaGlzIGRlZmluaXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55dGhpbmcgdGhhdCBwZXJm b3JtcyBjYXRhbG9nCisgKgkJYWNjZXNzLiBPdGhlcndpc2UsIGUuZy4gbG9nZ2luZyBhIFdB TCBlbnRyeSBmb3IgY2F0YWxvZyByZWxhdGlvbiBtYXkKKyAqCQlpbnZva2UgdGhpcyBmdW5j dGlvbiwgd2hpY2ggd2lsbCBpbiB0dXJuIGRvIGNhdGFsb2cgYWNjZXNzLCB3aGljaCBtYXkK KyAqCQlpbiB0dXJuIGNhdXNlIGFub3RoZXIgc2ltaWxhciBXQUwgZW50cnkgdG8gYmUgbG9n Z2VkLCBsZWFkaW5nIHRvCisgKgkJaW5maW5pdGUgcmVjdXJzaW9uLgogICovCiAjZGVmaW5l IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pIFwKIAko WExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYgXAotLSAKMi4xOC40Cgo= --------------E9F9D4251DD06A0E71BDCCF4 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v10-0001-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v10-0001-Allow-logical-decoding-on-standby.patch" RnJvbSAwZWE0NmQ0ODYwMjg5NDQ1MDNlMjk1MzRmYjYzNDZkNzRjM2Q3ZmI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNyBNYXIgMjAyMSAxNTozNDo1MCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjEwIDEvNV0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkFuZHJlcyBGcmV1bmQgYW5kIEFtaXQg S2hhbmRla2FyLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAg ICAgIHwgMTEgKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMgIHwgMjIgKysrKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xv Z2ljYWwuYyB8IDM3ICsrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jICAgICAgICAgICAgfCA1NyArKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAxMCArKy0tCiBzcmMvaW5j bHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8ICAxICsKIDYgZmlsZXMgY2hh bmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiAgIDUuNiUgc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDUuOCUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC8KICA0Ny43JSBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMKaW5kZXggZjRkMWNlNWRlYS4uZTBmMzllODBhYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTA4MCw2ICs1MDgwLDE3IEBAIExvY2Fs UHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVhZENvbnRyb2xGaWxlKCk7CiB9 CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRoZSBjb250cm9sIGZpbGUuIEZv ciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisgKiBjb25zaWRlcmVkIGFzIGl0 cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBiZSBkaWZmZXJlbnQgZnJvbSB3 aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9uIHN0YW5kYnkuCisgKi8KK1dh bExldmVsCitHZXRBY3RpdmVXYWxMZXZlbCh2b2lkKQoreworCXJldHVybiBDb250cm9sRmls ZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1l bW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9k ZWNvZGUuYwppbmRleCA1ZjU5NjEzNWIxLi5mMjg0MzE4Y2Q1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIxNCwxMSArMjE0LDMxIEBAIERl Y29kZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZm ZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJy ZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1l dGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dS ZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBv biBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJ CSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcg dXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieSBnZXQgZHJv cHBlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0 aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMg bm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkg KiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0 aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiAgSGVuY2UgdGhpcyBleHRy YSBjaGVjay4KKwkJCSAqLworCQkJaWYgKHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxf TE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dp Y2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVs ID49IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExP R19OT09QOgogCQljYXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJ Y2FzZSBYTE9HX0JBQ0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgog CQljYXNlIFhMT0dfUkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJ CWNhc2UgWExPR19GUElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCmluZGV4IDM3Yjc1ZGViNzIuLjUzNGUyNTY2Y2YgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzEx OSwyMiBAQCBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShl cnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0 aW9uIikpKTsKIAotCS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQg c29tZWRheSBzb29uLi4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGlu Z3MgbWlzc2luZyB0byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0 byBjb3JyZWN0bHkgYW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkg IExTTiBiZWxvbmdzIHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9m ZWVkYmFjayB0byBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1h cnkgY2Fubm90IHJlbW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGlu ZyByZXBsaWNhdGlvbiBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkg IGRiYXNlX3JlZG8uIFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMg cmVjb3ZlcnkKLQkgKgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVs eSBlYXN5LgotCSAqIC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0J CWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAotCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQg d2hpbGUgaW4gcmVjb3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkg aGF2ZSByYWNlIGNvbmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRF Ul9DSEFOR0UgaW5kaWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkg KiB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlv biBzbG90cy4gQW5kIHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5l dyBzbG90LAorCQkgKiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNh bGxlZCBvbmNlIGJlZm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hl biBsb2dpY2FsIGRlY29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJ CWlmIChHZXRBY3RpdmVXYWxMZXZlbCgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFu ZGJ5IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsID49IGxvZ2ljYWwgb24gbWFzdGVy IikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzAsNiArMzI5LDEyIEBAIENyZWF0ZUluaXREZWNv ZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoKKwkgKiBPbiBz dGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3JlYXRpbmcgdGhl IHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rpb24uCisJICov CisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8qIHNob3J0ZXIg bGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3QuYwppbmRleCA3NWEwODdjMmY5Li45ZGIyMDI3OGY2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdC5jCkBAIC0xMTA1LDM3ICsxMTA1LDU2IEBAIFJlcGxpY2F0aW9uU2xvdFJl c2VydmVXYWwodm9pZCkKIAkJLyoKIAkJICogRm9yIGxvZ2ljYWwgc2xvdHMgbG9nIGEgc3Rh bmRieSBzbmFwc2hvdCBhbmQgc3RhcnQgbG9naWNhbCBkZWNvZGluZwogCQkgKiBhdCBleGFj dGx5IHRoYXQgcG9zaXRpb24uIFRoYXQgYWxsb3dzIHRoZSBzbG90IHRvIHN0YXJ0IHVwIG1v cmUKLQkJICogcXVpY2tseS4KKwkJICogcXVpY2tseS4gQnV0IG9uIGEgc3RhbmRieSB3ZSBj YW5ub3QgZG8gV0FMIHdyaXRlcywgc28ganVzdCB1c2UgdGhlCisJCSAqIHJlcGxheSBwb2lu dGVyOyBlZmZlY3RpdmVseSwgYW4gYXR0ZW1wdCB0byBjcmVhdGUgYSBsb2dpY2FsIHNsb3Qg b24KKwkJICogc3RhbmRieSB3aWxsIGNhdXNlIGl0IHRvIHdhaXQgZm9yIGFuIHhsX3J1bm5p bmdfeGFjdCByZWNvcmQgdG8gYmUKKwkJICogbG9nZ2VkIGluZGVwZW5kZW50bHkgb24gdGhl IHByaW1hcnksIHNvIHRoYXQgYSBzbmFwc2hvdCBjYW4gYmUgYnVpbHQKKwkJICogdXNpbmcg dGhlIHJlY29yZC4KIAkJICoKLQkJICogVGhhdCdzIG5vdCBuZWVkZWQgKG9yIGluZGVlZCBo ZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMgdGhleSdsbAotCQkgKiBzdGFydCByZXBs YXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkIHJldHVy bgotCQkgKiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQg c2xpZ2h0bHkgaW5jcmVhc2VzCi0JCSAqIHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJl dHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAgaGFzIHRvCi0JCSAqIHN0YXJ0IHJlcGxh eSBhdC4KKwkJICogTm9uZSBvZiB0aGlzIGlzIG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwp IGZvciBwaHlzaWNhbCBzbG90cyBhcworCQkgKiB0aGV5J2xsIHN0YXJ0IHJlcGxheSBhdCB0 aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQKKwkJICogcmV0dXJu IHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRs eQorCQkgKiBpbmNyZWFzZXMgdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0 J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cAorCQkgKiBoYXMgdG8gc3RhcnQgcmVwbGF5IGF0Lgog CQkgKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQkJcmVzdGFydF9sc24gPSBH ZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7 CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQkvKgor CQkJICogUmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBwYXN0IHRoZSBlbmQgb2YgdGhl IHJlY29yZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBhZ2UgYm91bmRhcnksIGl0IHdp bGwgbm90IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAqIHN0YXJ0IG9mIGEgcmVjb3Jk LCBzbyBidW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVyLgorCQkJICovCisJCQlpZiAo IVhSZWNPZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsKKwkJCQlpZiAocmVzdGFydF9s c24gJSBYTE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCByZXBs YXkgcG9pbnRlciIpOworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQg ZmlsZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0 KHJlc3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xz biArPSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9 IFNpemVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlyZXN0YXJ0X2xz biA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3Qt Pm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlT cGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwogCQlpZiAoIVJlY292ZXJ5SW5Qcm9n cmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCiAJCXsKIAkJCVhMb2dSZWNQdHIJZmx1 c2hwdHI7CiAKLQkJCS8qIHN0YXJ0IGF0IGN1cnJlbnQgaW5zZXJ0IHBvc2l0aW9uICovCi0J CQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKLQkJCVNwaW5Mb2NrQWNx dWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3Rh cnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7Ci0KIAkJCS8qIG1h a2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLwogCQkJZmx1 c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAogCQkJLyogYW5kIG1ha2Ugc3VyZSBp dCdzIGZzeW5jZWQgdG8gZGlzayAqLwogCQkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKIAkJfQot CQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3Bp bkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNu ID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJ fQogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBhcyBwb3NzaWJsZSAqLwog CQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDIzYmFhNDQ5OGEuLmM0YTQ5NzI2NjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0yODY1LDEwICsyODY1LDEyIEBA IFhMb2dTZW5kTG9naWNhbCh2b2lkKQogCSAqIElmIGZpcnN0IHRpbWUgdGhyb3VnaCBpbiB0 aGlzIHNlc3Npb24sIGluaXRpYWxpemUgZmx1c2hQdHIuICBPdGhlcndpc2UsCiAJICogd2Ug b25seSBuZWVkIHRvIHVwZGF0ZSBmbHVzaFB0ciBpZiBFbmRSZWNQdHIgaXMgcGFzdCBpdC4K IAkgKi8KLQlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQdHIpCi0JCWZsdXNoUHRy ID0gR2V0Rmx1c2hSZWNQdHIoKTsKLQllbHNlIGlmIChsb2dpY2FsX2RlY29kaW5nX2N0eC0+ cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0JCWZsdXNoUHRyID0gR2V0Rmx1c2hS ZWNQdHIoKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQdHIgfHwKKwkJbG9n aWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQorCXsK KwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciA/CisJCQkJCUdldFN0YW5k YnlGbHVzaFJlY1B0cigpIDogR2V0Rmx1c2hSZWNQdHIoKSk7CisJfQogCiAJLyogSWYgRW5k UmVjUHRyIGlzIHN0aWxsIHBhc3Qgb3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQg dXAuICovCiAJaWYgKGxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+ PSBmbHVzaFB0cikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDZkMzg0ZDNjZTYuLmRjMjg2MmM2ZjEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2cuaApAQCAtMzMzLDYgKzMzMyw3IEBAIGV4dGVybiBTaXplIFhMT0dT aG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBYTE9HU2htZW1Jbml0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vz c0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOworZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdh bExldmVsKHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4g dm9pZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBJ bml0WExPR0FjY2Vzcyh2b2lkKTsKLS0gCjIuMTguNAoK --------------E9F9D4251DD06A0E71BDCCF4--