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 1l4Khe-00084y-18 for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Jan 2021 09:32:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l4Khc-00062Z-Pg for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Jan 2021 09:32:00 +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 1l4Khb-00062R-OC for pgsql-hackers@lists.postgresql.org; Tue, 26 Jan 2021 09:32:00 +0000 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l4KhV-00046m-L2 for pgsql-hackers@postgresql.org; Tue, 26 Jan 2021 09:31:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1611653513; x=1643189513; h=to:cc:references:from:message-id:date:mime-version: in-reply-to:subject; bh=4n5hatZRbRun/xxP/YPC4Bju6wuZKEQFAGdjJN5sRTI=; b=DBy+TVt2xTl82Iz9RidmVS2l0xL3CmAP1p5vs6DR4vHqbb3qcTgXkIej 37MCrl6Rwn1/FxUHjrjJU0YNZep4wCnP83qDEMJch/LpMwAQVdOjfLXba 9DQLtC4uxvD023KDF+/0puhRs3M8KbWa3jzM2yzXmAT6ANIMXab0t6O4s 8=; X-Amazon-filename: v8-0005-Doc-changes-describing-details-about-logical-deco.patch, v8-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v8-0003-Handle-logical-slot-conflicts-on-standby.patch, v8-0002-Add-info-in-WAL-records-in-preparation-for-logica.patch, v8-0001-Allow-logical-decoding-on-standby.patch X-IronPort-AV: E=Sophos;i="5.79,375,1602547200"; d="scan'208,217,223";a="113520105" Subject: Re: [UNVERIFIED SENDER] Re: Minimal logical decoding on standbys Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-1d-474bcd9f.us-east-1.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP; 26 Jan 2021 09:31:45 +0000 Received: from EX13D03EUC003.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1d-474bcd9f.us-east-1.amazon.com (Postfix) with ESMTPS id B3A43A1E0F; Tue, 26 Jan 2021 09:31:42 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.160.239) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 26 Jan 2021 09:31:38 +0000 To: CC: Alvaro Herrera , Amit Khandekar , Rahila Syed , pgsql-hackers , Andres Freund , tushar , "[pgdg] Robert Haas" References: <20200318184249.GA29007@alvherre.pgsql> <20200318195038.GA7123@alvherre.pgsql> From: "Drouvot, Bertrand" Message-ID: Date: Tue, 26 Jan 2021 10:31:33 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------474A7B3E559DABCE8495AB93" Content-Language: en-US X-Originating-IP: [10.43.160.239] X-ClientProxiedBy: EX13d09UWA002.ant.amazon.com (10.43.160.186) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --------------474A7B3E559DABCE8495AB93 Content-Type: multipart/alternative; boundary="------------05BB50A7CFA739B962306A32" --------------05BB50A7CFA739B962306A32 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi, On 1/25/21 8:34 PM, Fabrízio de Royes Mello wrote: > > On Mon, Jan 18, 2021 at 8:48 AM Drouvot, Bertrand > wrote: > > > > 3 and 4 were failing because the > ResolveRecoveryConflictWithLogicalSlots() call was missing in > ResolveRecoveryConflictWithSnapshot(): the new version attached adds it. > > > > The new version attached also provides a few changes to make it > compiling on the current master (it was not the case anymore). > > > > I also had to change 023_standby_logical_decoding_conflicts.pl > (had to call > $node_standby->create_logical_slot_on_standby($node_master, > 'otherslot', 'postgres'); at the very beginning of the "DROP DATABASE > should drops it's slots, including active slots" section) > > > > Awesome and thanks a lot. > > Seems your patch series is broken... can you please `git format-patch` > and send again? Thanks for pointing out! Enclosed a new series created with "format-patch" and that can be applied with "git am": $ git am v8-000*.patch Applying: Allow logical decoding on standby. Applying: Add info in WAL records in preparation for logical slot conflict handling. Applying: Handle logical slot conflicts on standby. Applying: New TAP test for logical decoding on standby. Applying: Doc changes describing details about logical decoding. Bertrand --------------05BB50A7CFA739B962306A32 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit

Hi,

On 1/25/21 8:34 PM, Fabrízio de Royes Mello wrote:

On Mon, Jan 18, 2021 at 8:48 AM Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
>
> 3 and 4 were failing because the ResolveRecoveryConflictWithLogicalSlots() call was missing in ResolveRecoveryConflictWithSnapshot(): the new version attached adds it.
>
> The new version attached also provides a few changes to make it compiling on the current master (it was not the case anymore).
>
> I also had to change 023_standby_logical_decoding_conflicts.pl (had to call $node_standby->create_logical_slot_on_standby($node_master, 'otherslot', 'postgres'); at the very beginning of the "DROP DATABASE should drops it's slots, including active slots" section)
>

Awesome and thanks a lot.

Seems your patch series is broken... can you please `git format-patch` and send again?

Thanks for pointing out!

Enclosed a new series created with "format-patch" and that can be applied with "git am":

$ git am v8-000*.patch
Applying: Allow logical decoding on standby.
Applying: Add info in WAL records in preparation for logical slot conflict handling.
Applying: Handle logical slot conflicts on standby.
Applying: New TAP test for logical decoding on standby.
Applying: Doc changes describing details about logical decoding.

Bertrand

--------------05BB50A7CFA739B962306A32-- --------------474A7B3E559DABCE8495AB93 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v8-0005-Doc-changes-describing-details-about-logical-deco.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v8-0005-Doc-changes-describing-details-about-logical-deco.pa"; filename*1="tch" RnJvbSBlNTk0YTE1MzY1ZGZkMzAxZGVhMzQ1ZmM5OTM4MDZkZWE1MTBjYTZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyNiBKYW4gMjAyMSAwOToxNDoxOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjggNS81XSBEb2MgY2hhbmdlcyBkZXNjcmliaW5nIGRldGFpbHMgYWJvdXQgbG9naWNh bCBkZWNvZGluZy4KCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIHwg MTggKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygr KQogMTAwLjAlIGRvYy9zcmMvc2dtbC8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9n aWNhbGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwK aW5kZXggY2Y3MDVlZDljZC4uM2JmMTg4OTYzMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rp bmcuc2dtbApAQCAtMjk5LDYgKzI5OSwyNCBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZyb20g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBO VQogICAgICBtYXkgY29uc3VtZSBjaGFuZ2VzIGZyb20gYSBzbG90IGF0IGFueSBnaXZlbiB0 aW1lLgogICAgIDwvcGFyYT4KIAorICAgIDxwYXJhPgorICAgICBBIGxvZ2ljYWwgcmVwbGlj YXRpb24gc2xvdCBjYW4gYWxzbyBiZSBjcmVhdGVkIG9uIGEgaG90IHN0YW5kYnkuIFRvIHBy ZXZlbnQKKyAgICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBmcm9tIHJlbW92aW5nIHJl cXVpcmVkIHJvd3MgZnJvbSB0aGUgc3lzdGVtCisgICAgIGNhdGFsb2dzLCA8dmFybmFtZT5o b3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT4gc2hvdWxkIGJlIHNldCBvbiB0aGUKKyAg ICAgc3RhbmRieS4gSW4gc3BpdGUgb2YgdGhhdCwgaWYgYW55IHJlcXVpcmVkIHJvd3MgZ2V0 IHJlbW92ZWQsIHRoZSBzbG90IGdldHMKKyAgICAgZHJvcHBlZC4gIEV4aXN0aW5nIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieSBhbHNvIGdldCBkcm9wcGVkIGlmIHdhbF9sZXZlbAorICAg ICBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuICdsb2dpY2FsJy4KKyAgICA8 L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRm9yIGEgbG9naWNhbCBzbG90IHRvIGJlIGNy ZWF0ZWQsIGl0IGJ1aWxkcyBhIGhpc3RvcmljIHNuYXBzaG90LCBmb3Igd2hpY2gKKyAgICAg aW5mb3JtYXRpb24gb2YgYWxsIHRoZSBjdXJyZW50bHkgcnVubmluZyB0cmFuc2FjdGlvbnMg aXMgZXNzZW50aWFsLiBPbgorICAgICBwcmltYXJ5LCB0aGlzIGluZm9ybWF0aW9uIGlzIGF2 YWlsYWJsZSwgYnV0IG9uIHN0YW5kYnksIHRoaXMgaW5mb3JtYXRpb24KKyAgICAgaGFzIHRv IGJlIG9idGFpbmVkIGZyb20gcHJpbWFyeS4gU28sIHNsb3QgY3JlYXRpb24gbWF5IHdhaXQg Zm9yIHNvbWUKKyAgICAgYWN0aXZpdHkgdG8gaGFwcGVuIG9uIHRoZSBwcmltYXJ5LiBJZiB0 aGUgcHJpbWFyeSBpcyBpZGxlLCBjcmVhdGluZyBhCisgICAgIGxvZ2ljYWwgc2xvdCBvbiBz dGFuZGJ5IG1heSB0YWtlIGEgbm90aWNlYWJsZSB0aW1lLgorICAgIDwvcGFyYT4KKwogICAg IDxjYXV0aW9uPgogICAgICA8cGFyYT4KICAgICAgIFJlcGxpY2F0aW9uIHNsb3RzIHBlcnNp c3QgYWNyb3NzIGNyYXNoZXMgYW5kIGtub3cgbm90aGluZyBhYm91dCB0aGUgc3RhdGUKLS0g CjIuMTQuNQoK --------------474A7B3E559DABCE8495AB93 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v8-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v8-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSBhNzhkMDhmODIwM2I1ZTdkNGQ4NWU0ZTRmZjAzM2E3MzUxMGNlYmFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyNiBKYW4gMjAyMSAwOToxMzoyMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjggNC81XSBOZXcgVEFQIHRlc3QgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRi eS4KClRoaXMgdGVzdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IENyYWlnIFJpbmdlciwg dGhlbgpleHRlbmRlZC9tb2RpZmllZCBieSBtZSwgdG8gdGVzdCB2YXJpb3VzIHNsb3QgY29u ZmxpY3Qgc2NlbmFyaW9zLgoKQXV0aG9yczogQ3JhaWcgUmluZ2VyLCBBbWl0IEtoYW5kZWth ci4KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSAgICAgICAgICAgICAgICAg ICAgICB8ICAzNyArKysKIC4uLi90LzAyMl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfeG1p bnMucGwgICAgICAgIHwgMjcyICsrKysrKysrKysrKysrKysrKysrKwogLi4uL3QvMDIzX3N0 YW5kYnlfbG9naWNhbF9kZWNvZGluZ19jb25mbGljdHMucGwgICAgfCAyMTUgKysrKysrKysr KysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MjQgaW5zZXJ0aW9ucygrKQogICA2LjAlIHNy Yy90ZXN0L3BlcmwvCiAgOTMuOSUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZXNOb2RlLnBtCmluZGV4IDk2NjdmNzY2N2UuLjFkNjI3MDBjYTYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZXNOb2RlLnBtCkBAIC0yMjIzLDYgKzIyMjMsNDMgQEAgc3ViIHBnX3JlY3Zsb2dpY2FsX3Vw dG8KIAogPXBvZAogCis9aXRlbSAkbm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFu ZGJ5KHNlbGYsIG1hc3Rlciwgc2xvdF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3Qgb24gZ2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVh dGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRz bG90X25hbWUsICRkYm5hbWUpID0gQF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJ bXkgJGhhbmRsZTsKKworCSRoYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9n aWNhbCcsICctZCcsICRzZWxmLT5jb25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNv ZGluZycsICctUycsICRzbG90X25hbWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRv dXQsICcyPicsIFwkc3RkZXJyKTsKKworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNy ZWF0ZWQsIHRoZSBzdGFuZGJ5IGxvb2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwg cmVjb3JkIGZyb20gdGhlIHJlc3RhcnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQg dW50aWwgdGhlIHNsb3QKKwkjIHJlc3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxm LT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3Rh cnRfbHNuIElTIE5PVCBOVUxMCisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9z bG90cyBXSEVSRSBzbG90X25hbWUgPSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVk IG91dCB3YWl0aW5nIGZvciBsb2dpY2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0 X2xzbiI7CisKKwkjIE5vdyBhcnJhbmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNv cmQgZm9yIHdoaWNoIHBnX3JlY3Zsb2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+Zmlu aXNoKCk7CisKKwlpcygkc2VsZi0+c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwg J2xvZ2ljYWwnLCAkc2xvdF9uYW1lIC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBk aWUgImNvdWxkIG5vdCBjcmVhdGUgc2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisK ID1iYWNrCiAKID1jdXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDIyX3N0 YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDIyX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5wbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi5kNjU0ZDc5NTI2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX3htaW5z LnBsCkBAIC0wLDAgKzEsMjcyIEBACisjIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5 IDogZW5zdXJlIHhtaW5zIGFyZSBhcHByb3ByaWF0ZWx5IHVwZGF0ZWQKKwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVzTm9kZTsKK3VzZSBUZXN0TGliOwor dXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMjM7Cit1c2UgUmVjdXJzaXZlQ29weTsKK3VzZSBG aWxlOjpDb3B5OwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CisKK215ICgkc3RkaW4s ICRzdGRvdXQsICRzdGRlcnIsICRyZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVf bWFzdGVyID0gZ2V0X25ld19ub2RlKCdtYXN0ZXInKTsKK215ICRub2RlX3N0YW5kYnkgPSBn ZXRfbmV3X25vZGUoJ3N0YW5kYnknKTsKKworIyBOYW1lIGZvciB0aGUgcGh5c2ljYWwgc2xv dCBvbiBtYXN0ZXIKK215ICRtYXN0ZXJfc2xvdG5hbWUgPSAnbWFzdGVyX3BoeXNpY2FsJzsK KyMgTmFtZSBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5CitteSAkc3RhbmRieV9z bG90bmFtZSA9ICdzdGFuZGJ5X2xvZ2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBm cm9tIHNsb3QncyBwZ19yZXBsaWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9y CisjIGdpdmVuIGJvb2xlYW4gY29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3Zl IHJlYWNoZWQgYSBxdWllc2NlbnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15 ICgkbm9kZSwgJHNsb3RuYW1lLCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xs X3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHBy CisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90 X25hbWUgPSAnJHNsb3RuYW1lJzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZv ciBzbG90IHhtaW5zIHRvIGFkdmFuY2UiOworfQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIyBJbml0aWFsaXplIG1hc3RlciBub2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworJG5vZGVfbWFzdGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gMSwgaGFzX2Fy Y2hpdmluZyA9PiAxKTsKKyRub2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsIHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21heF9yZXBsaWNhdGlvbl9zbG90 cyA9IDQKK21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5fbWVzc2FnZXMgPSAnZGVidWcy JworbG9nX2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKKyMgdmVyeSBwcm9tcHRseSB0ZXJt aW5hdGUgY29uZmxpY3RpbmcgYmFja2VuZHMKK21heF9zdGFuZGJ5X3N0cmVhbWluZ19kZWxh eSA9ICcycycKK30pOworJG5vZGVfbWFzdGVyLT5kdW1wX2luZm87Ciskbm9kZV9tYXN0ZXIt PnN0YXJ0OworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtTRUxF Q1QgKiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckbWFzdGVy X3Nsb3RuYW1lJyk7XSk7CitteSAkYmFja3VwX25hbWUgPSAnYjEnOworJG5vZGVfbWFzdGVy LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyBBZnRlciBzbG90IGNyZWF0aW9uLCB4bWlu cyBtdXN0IGJlIG51bGwKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xv dG5hbWUpOworaXMoJHNsb3QtPnsneG1pbid9LCAnJywgInhtaW4gbnVsbCIpOworaXMoJHNs b3QtPnsnY2F0YWxvZ194bWluJ30sICcnLCAiY2F0YWxvZ194bWluIG51bGwiKTsKKworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBub2RlCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAor CSRub2RlX21hc3RlciwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwlo YXNfcmVzdG9yaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3Rn cmVzcWwuY29uZicsCisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJG1hc3Rlcl9zbG90bmFt ZSddKTsKKyRub2RlX3N0YW5kYnktPnN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1 c2gnKSk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgeG1pbi9j YXRhbG9nX3htaW4gdmVyaWZpY2F0aW9uIGJlZm9yZSBhbmQgYWZ0ZXIgc3RhbmRieS1sb2dp Y2FsLXNsb3QgY3JlYXRpb24uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLCB4bWluIGFuZCBjYXRhbG9nX3ht aW4gbXVzdCBzdGlsbCBiZSBudWxsCiskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFz dGVyX3Nsb3RuYW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycsICJ4bWluIG51bGwgYWZ0 ZXIgc3RhbmRieSBqb2luIik7Citpcygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwgJycsICJj YXRhbG9nX3htaW4gbnVsbCBhZnRlciBzdGFuZGJ5IGpvaW4iKTsKKworJG5vZGVfc3RhbmRi eS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRi YWNrID0gb24KKyMgc2VuZCBzdGF0dXMgcmFwaWRseSBzbyB3ZSBwcm9tcHRseSBhZHZhbmNl IHhtaW4gb24gbWFzdGVyCit3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsID0gMQorXSk7 Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVk YmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2df eG1pbiBvbiBtYXN0ZXIuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hv dWxkIGFkdmFuY2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBO VUxMIHNpbmNlIHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRu b2RlX21hc3RlciwgJG1hc3Rlcl9zbG90bmFtZSwgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNh dGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyMgQ3JlYXRlIG5ldyBzbG90cyBvbiB0aGUgc3Rh bmRieSwgaWdub3JpbmcgdGhlIG9uZXMgb24gdGhlIG1hc3RlciBjb21wbGV0ZWx5LgorIwor IyBUaGlzIG11c3Qgc3VjY2VlZCBzaW5jZSB3ZSBrbm93IHdlIGhhdmUgYSBjYXRhbG9nX3ht aW4gcmVzZXJ2YXRpb24uIFdlCisjIG1pZ2h0J3ZlIGFscmVhZHkgc2VudCBob3Qgc3RhbmRi eSBmZWVkYmFjayB0byBhZHZhbmNlIG91ciBwaHlzaWNhbCBzbG90J3MKKyMgY2F0YWxvZ194 bWluIGJ1dCBub3QgcmVjZWl2ZWQgdGhlIGNvcnJlc3BvbmRpbmcgeGxvZyBmb3IgdGhlIGNh dGFsb2cgeG1pbgorIyBhZHZhbmNlLCBpbiB3aGljaCBjYXNlIHdlJ2xsIGNyZWF0ZSBhIHNs b3QgdGhhdCBpc24ndCB1c2FibGUuIFRoZSBjYWxsaW5nCisjIGFwcGxpY2F0aW9uIGNhbiBw cmV2ZW50IHRoaXMgYnkgY3JlYXRpbmcgYSB0ZW1wb3Jhcnkgc2xvdCBvbiB0aGUgbWFzdGVy IHRvCisjIGxvY2sgaW4gaXRzIGNhdGFsb2dfeG1pbi4gRm9yIGEgdHJ1bHkgcmFjZS1mcmVl IHNvbHV0aW9uIHdlJ2QgbmVlZAorIyBtYXN0ZXItdG8tc3RhbmRieSBob3Rfc3RhbmRieV9m ZWVkYmFjayByZXBsaWVzLgorIworIyBJbiB0aGlzIGNhc2UgaXQgd29uJ3QgcmFjZSBiZWNh dXNlIHRoZXJlJ3Mgbm8gY29uY3VycmVudCBhY3Rpdml0eSBvbiB0aGUKKyMgbWFzdGVyLgor IworJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2Rl X21hc3RlciwgJHN0YW5kYnlfc2xvdG5hbWUsICdwb3N0Z3JlcycpOworCiskbm9kZV9tYXN0 ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21h c3Rlci0+bHNuKCdmbHVzaCcpKTsKKworIyBOb3cgdGhhdCBzbG90IGlzIGNyZWF0ZWQgb24g c3RhbmRieSwgeG1pbiBhbmQgY2F0YWxvZ194bWluIHNob3VsZCBiZSBub24gTlVMTAorIyBv biBib3RoIG1hc3RlciBhbmQgc3RhbmRieS4gQnV0IG9uIG1hc3RlciwgdGhlIHhtaW5zIHdp bGwgYmUgdXBkYXRlZCBvbmx5CisjIGFmdGVyIGhvdCBzdGFuZGJ5IGZlZWRiYWNrIGlzIHJl Y2VpdmVkLgord2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1l LCAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5PVCBOVUxMIik7CisK KyRzbG90ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSk7Citpcygk c2xvdC0+eyd4bWluJ30sICcnLCAibG9naWNhbCB4bWluIG51bGwiKTsKK2lzbnQoJHNsb3Qt PnsnY2F0YWxvZ194bWluJ30sICcnLCAibG9naWNhbCBjYXRhbG9nX3htaW4gbm90IG51bGwi KTsKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBTdGFuZGJ5IGxv Z2ljYWwgc2xvdCBzaG91bGQgYmUgYWJsZSB0byBmZXRjaCB0aGUgdGFibGUgY2hhbmdlcyBl dmVuIHdoZW4gdGhlCisjIHRhYmxlIGlzIGRyb3BwZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAn Q1JFQVRFIFRBQkxFIHRlc3RfdGFibGUoaWQgc2VyaWFsIHByaW1hcnkga2V5LCBibGFoIHRl eHQpJyk7Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxW0lOU0VSVCBJ TlRPIHRlc3RfdGFibGUoYmxhaCkgdmFsdWVzICgnaXR3b3JrcycpXSk7Ciskbm9kZV9tYXN0 ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBUQUJMRSB0ZXN0X3RhYmxlJyk7Cisk bm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVkFDVVVNJyk7CisKKyRub2Rl X21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5v ZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCisjIFNob3VsZCBzaG93IHRoZSBpbnNlcnRz IGV2ZW4gd2hlbiB0aGUgdGFibGUgaXMgZHJvcHBlZCBvbiBtYXN0ZXIKKygkcmV0LCAkc3Rk b3V0LCAkc3RkZXJyKSA9ICRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VM RUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Ns b3RuYW1lJywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkt eGFjdHMnLCAnMScsICdpbmNsdWRlLXRpbWVzdGFtcCcsICcwJyldKTsKK2lzKCRzdGRlcnIs ICcnLCAnc3RkZXJyIGlzIGVtcHR5Jyk7CitpcygkcmV0LCAwLCAncmVwbGF5IGZyb20gc2xv dCBzdWNjZWVkZWQnKQorCW9yIGRpZSAnY2Fubm90IGNvbnRpbnVlIGlmIHNsb3QgcmVwbGF5 IGZhaWxzJzsKK2lzKCRzdGRvdXQsIHF7QkVHSU4KK3RhYmxlIHB1YmxpYy50ZXN0X3RhYmxl OiBJTlNFUlQ6IGlkW2ludGVnZXJdOjEgYmxhaFt0ZXh0XTonaXR3b3JrcycKK0NPTU1JVH0s ICdyZXBsYXkgcmVzdWx0cyBtYXRjaCcpOworCiskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVz aCcpKTsKKworJHNsb3QgPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSk7 Citpc250KCRzbG90LT57J3htaW4nfSwgJycsICJwaHlzaWNhbCB4bWluIG5vdCBudWxsIik7 CitteSAkc2F2ZWRfcGh5c2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194 bWluJ307Citpc250KCRzYXZlZF9waHlzaWNhbF9jYXRhbG9nX3htaW4sICcnLCAicGh5c2lj YWwgY2F0YWxvZ194bWluIG5vdCBudWxsIik7CisKKyRzbG90ID0gJG5vZGVfc3RhbmRieS0+ c2xvdCgkc3RhbmRieV9zbG90bmFtZSk7Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAibG9n aWNhbCB4bWluIG51bGwiKTsKK215ICRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbiA9ICRz bG90LT57J2NhdGFsb2dfeG1pbid9OworaXNudCgkc2F2ZWRfbG9naWNhbF9jYXRhbG9nX3ht aW4sICcnLCAibG9naWNhbCBjYXRhbG9nX3htaW4gbm90IG51bGwiKTsKKworCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDYXRhbG9nIHhtaW5zIHNob3VsZCBhZHZh bmNlIGFmdGVyIHN0YW5kYnkgbG9naWNhbCBzbG90IGZldGNoZXMgdGhlIGNoYW5nZXMuCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIElkZWFsbHkgd2UnZCBqdXN0 IGhvbGQgY2F0YWxvZ194bWluLCBidXQgc2luY2UgaHNfZmVlZGJhY2sgY3VycmVudGx5IHVz ZXMgdGhlIHNsb3QsCisjIHdlIGhvbGQgZG93biB4bWluLgorJG5vZGVfbWFzdGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXFbQ1JFQVRFIFRBQkxFIGNhdGFsb2dfaW5jcmVhc2VfMSgp O10pOworJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBUQUJM RSB0ZXN0X3RhYmxlKGlkIHNlcmlhbCBwcmltYXJ5IGtleSwgYmxhaCB0ZXh0KScpOworZm9y IG15ICRpICgwIC4uIDIwMDApCit7CisgICAgJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXFbSU5TRVJUIElOVE8gdGVzdF90YWJsZShibGFoKSBWQUxVRVMgKCdlbnRy eSAkaScpXSk7Cit9Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtD UkVBVEUgVEFCTEUgY2F0YWxvZ19pbmNyZWFzZV8yKCk7XSk7Ciskbm9kZV9tYXN0ZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAnVkFDVVVNJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24o J2ZsdXNoJykpOworCitjbXBfb2soJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90 bmFtZSktPnsnY2F0YWxvZ194bWluJ30sICI9PSIsCisJICAgJHNhdmVkX2xvZ2ljYWxfY2F0 YWxvZ194bWluLAorCSAgICJsb2dpY2FsIHNsb3QgY2F0YWxvZ194bWluIGhhc24ndCBhZHZh bmNlZCBiZWZvcmUgZ2V0X2NoYW5nZXMiKTsKKworKCRyZXQsICRzdGRvdXQsICRzdGRlcnIp ID0gJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLAorCXFxW1NFTEVDVCBkYXRhIEZS T00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCckc3RhbmRieV9zbG90bmFtZScsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEn LCAnaW5jbHVkZS10aW1lc3RhbXAnLCAnMCcpXSk7CitpcygkcmV0LCAwLCAncmVwbGF5IG9m IGJpZyBzZXJpZXMgc3VjY2VlZGVkJyk7Citpc250KCRzdGRvdXQsICcnLCAncmVwbGF5ZWQg c29tZSByb3dzJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9z dGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCisjIGxv Z2ljYWwgc2xvdCBjYXRhbG9nX3htaW4gb24gc2xhdmUgc2hvdWxkIGFkdmFuY2UgYWZ0ZXIg cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzCit3YWl0X2Zvcl94bWlucygkbm9kZV9zdGFu ZGJ5LCAkc3RhbmRieV9zbG90bmFtZSwKKwkJCSAgICJjYXRhbG9nX3htaW46OnZhcmNoYXI6 OmludCA+ICR7c2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW59Iik7Ciskc2xvdCA9ICRub2Rl X3N0YW5kYnktPnNsb3QoJHN0YW5kYnlfc2xvdG5hbWUpOworbXkgJG5ld19sb2dpY2FsX2Nh dGFsb2dfeG1pbiA9ICRzbG90LT57J2NhdGFsb2dfeG1pbid9OworaXMoJHNsb3QtPnsneG1p bid9LCAnJywgImxvZ2ljYWwgeG1pbiBudWxsIik7CisKKyMgaG90IHN0YW5kYnkgZmVlZGJh Y2sgc2hvdWxkIGFkdmFuY2UgbWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gbm93IHRoYXQg dGhlCisjIHN0YW5kYnkncyBzbG90IGRvZXNuJ3QgaG9sZCBpdCBkb3duIGFzIGZhci4KKyMg QnV0IG1hc3RlcidzIHBoeXMgY2F0YWxvZ194bWluIHNob3VsZCBub3QgZ28gcGFzdCB0aGUg c2xhdmUncyBsb2dpY2FsIHNsb3QncworIyBjYXRhbG9nX3htaW4sIGV2ZW4gd2hpbGUgbWFz dGVyJ3MgcGh5cyB4bWluIGFkdmFuY2VzLgorIworIyBGaXJzdCwgbWFrZSBzdXJlIG1hc3Rl cidzIHhtaW4gaXMgYWR2YW5jZWQuIFRoaXMgaGFwcGVucyBvbiBob3Qgc3RhbmRieQorIyBm ZWVkYmFjay4gU28gdGhpcyBjaGVjayBmb3IgbWFzdGVyJ3MgeG1pbiBhZHZhbmNlIGFsc28g bWFrZXMgc3VyZSBob3Qgc3RhbmRieQorIyBmZWVkYmFjayBoYXMgcmVhY2hlZCB0aGUgbWFz dGVyLCB3aGljaCBpcyByZXF1aXJlZCBmb3IgdGhlIHN1YnNlcXVlbnQKKyMgY2F0YWxvZ194 bWluIHRlc3QuCitteSAkdGVtcF9waHlzX3htaW4gPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1h c3Rlcl9zbG90bmFtZSktPnsneG1pbid9OworJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKScpOword2FpdF9mb3JfeG1pbnMoJG5v ZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLAorCQkJICAgInhtaW46OnZhcmNoYXI6Omlu dCA+ICR7dGVtcF9waHlzX3htaW59Iik7Ciskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgk bWFzdGVyX3Nsb3RuYW1lKTsKKyMgTm93IGNoZWNrIHRoYXQgdGhlIG1hc3RlcidzIHBoeXMg Y2F0YWxvZ194bWluIGhhcyBhZHZhbmNlZCBidXQgbm90IGJleW9uZAorIyBzdGFuZGJ5J3Mg bG9naWNhbCBjYXRhbG9nX3htaW4KK2NtcF9vaygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwg Ij4iLCAkc2F2ZWRfcGh5c2ljYWxfY2F0YWxvZ194bWluLAorCSd1cHN0cmVhbSBwaHlzaWNh bCBzbG90IGNhdGFsb2dfeG1pbiBoYXMgYWR2YW5jZWQgd2l0aCBoc19mZWVkYmFjayBvbicp OworY21wX29rKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAiPT0iLCAkbmV3X2xvZ2ljYWxf Y2F0YWxvZ194bWluLAorCSd1cHN0cmVhbSBwaHlzaWNhbCBzbG90IGNhdGFsb2dfeG1pbiBu b3QgcGFzdCBkb3duc3RyZWFtIGNhdGFsb2dfeG1pbiB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7 CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBVcHN0cmVhbSBvbGRlc3RYaWQgc2hv dWxkIG5vdCBnbyBwYXN0IGRvd25zdHJlYW0gY2F0YWxvZ194bWluCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKyMgRmlyc3QgYnVybiBzb21lIHhpZHMgb24gdGhlIG1hc3RlciBpbiBh bm90aGVyIERCLCBzbyB3ZSBwdXNoIHRoZSBtYXN0ZXIncworIyBuZXh0WGlkIGFoZWFkLgor Zm9yZWFjaCBteSAkaSAoMSAuLiAxMDApCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKScpOworfQorCisjIEZvcmNlIHZh Y3V1bSBmcmVlemUgb24gdGhlIG1hc3RlciBhbmQgZW5zdXJlIGl0cyBvbGRlc3RYbWluIGRv ZXNuJ3QgYWR2YW5jZQorIyBwYXN0IG91ciBuZWVkZWQgeG1pbi4gVGhlIG9ubHkgd2F5IHdl IGhhdmUgdmlzaWJpbGl0eSBpbnRvIHRoYXQgaXMgdG8gZm9yY2UKKyMgYSBjaGVja3BvaW50 LgorJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSBwZ19kYXRh YmFzZSBTRVQgZGF0YWxsb3djb25uID0gdHJ1ZSBXSEVSRSBkYXRuYW1lID0gJ3RlbXBsYXRl MCciKTsKK2ZvcmVhY2ggbXkgJGRibmFtZSAoJ3RlbXBsYXRlMScsICdwb3N0Z3JlcycsICdw b3N0Z3JlcycsICd0ZW1wbGF0ZTAnKQoreworCSRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCRk Ym5hbWUsICdWQUNVVU0gRlJFRVpFJyk7Cit9Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAnQ0hFQ0tQT0lOVCcpOworSVBDOjpSdW46OnJ1bihbJ3BnX2NvbnRyb2xk YXRhJywgJG5vZGVfbWFzdGVyLT5kYXRhX2RpcigpXSwgJz4nLCBcJHN0ZG91dCkKKwlvciBk aWUgInBnX2NvbnRyb2xkYXRhIGZhaWxlZCB3aXRoICQ/IjsKK215IEBjaGVja3BvaW50ID0g c3BsaXQoJ1xuJywgJHN0ZG91dCk7CitteSAkb2xkZXN0WGlkID0gJyc7Citmb3JlYWNoIG15 ICRsaW5lIChAY2hlY2twb2ludCkKK3sKKwlpZiAoJGxpbmUgPX4gcXIvXkxhdGVzdCBjaGVj a3BvaW50J3Mgb2xkZXN0WElEOlxzKyhcZCspLykKKwl7CisJCSRvbGRlc3RYaWQgPSAkMTsK Kwl9Cit9CitkaWUgJ25vIG9sZGVzdFhJRCBmb3VuZCBpbiBjaGVja3BvaW50JyB1bmxlc3Mg JG9sZGVzdFhpZDsKKworY21wX29rKCRvbGRlc3RYaWQsICI8PSIsICRub2RlX3N0YW5kYnkt PnNsb3QoJHN0YW5kYnlfc2xvdG5hbWUpLT57J2NhdGFsb2dfeG1pbid9LAorCSAgICd1cHN0 cmVhbSBvbGRlc3RYaWQgbm90IHBhc3QgZG93bnN0cmVhbSBjYXRhbG9nX3htaW4gd2l0aCBo c19mZWVkYmFjayBvbicpOworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJVUERBVEUgcGdfZGF0YWJhc2UgU0VUIGRhdGFsbG93Y29ubiA9IGZhbHNlIFdIRVJF IGRhdG5hbWUgPSAndGVtcGxhdGUwJyIpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIERyb3Agc2xvdAorIyBNYWtlIHN1cmUg c3RhbmRieSBzbG90cyBhcmUgZHJvcHBhYmxlLCBhbmQgcHJvcGVybHkgY2xlYXIgdGhlIHVw c3RyZWFtJ3MgeG1pbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworaXMoJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdTSE9XIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrJyksICdvbicsICdoc19mZWVkYmFjayBpcyBv bicpOworCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVDVCBwZ19k cm9wX3JlcGxpY2F0aW9uX3Nsb3QoJyRzdGFuZGJ5X3Nsb3RuYW1lJyldKTsKKworaXMoJG5v ZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSktPnsnc2xvdF90eXBlJ30sICcn LCAnc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQgbWFudWFsbHknKTsKKworIyBlbnN1cmUgd2Fs cmVjZWl2ZXIgZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFu ZAorIyBjYXRhbG9nX3htaW4gb24gbWFzdGVyLiBjYXRhbG9nX3htaW4gc2hvdWxkIGJlY29t ZSBOVUxMIGJlY2F1c2Ugd2UgZHJvcHBlZAorIyB0aGUgbG9naWNhbCBzbG90Lgord2FpdF9m b3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLAorCQkJICAgInhtaW4g SVMgTk9UIE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxp Y3RzLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjNfc3RhbmRieV9sb2dpY2FsX2RlY29k aW5nX2NvbmZsaWN0cy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li4zMDk0ZTAwNmMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MjNfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX2NvbmZsaWN0cy5wbApAQCAtMCwwICsxLDIx NSBAQAorIyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSA6IHRlc3QgY29uZmxpY3Qg cmVjb3Zlcnk7IGFuZCBvdGhlciB0ZXN0cyB0aGF0CisjIHZlcmlmeSBzbG90cyBnZXQgZHJv cHBlZCBhcyBleHBlY3RlZC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNl IFBvc3RncmVzTm9kZTsKK3VzZSBUZXN0TGliOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4g MjQ7Cit1c2UgUmVjdXJzaXZlQ29weTsKK3VzZSBGaWxlOjpDb3B5OwordXNlIFRpbWU6Okhp UmVzIHF3KHVzbGVlcCk7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRyZXQs ICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfbWFzdGVyID0gZ2V0X25ld19ub2RlKCdt YXN0ZXInKTsKK215ICRub2RlX3N0YW5kYnkgPSBnZXRfbmV3X25vZGUoJ3N0YW5kYnknKTsK KworIyBOYW1lIGZvciB0aGUgcGh5c2ljYWwgc2xvdCBvbiBtYXN0ZXIKK215ICRtYXN0ZXJf c2xvdG5hbWUgPSAnbWFzdGVyX3BoeXNpY2FsJzsKKworIyBGZXRjaCB4bWluIGNvbHVtbnMg ZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xvdHMgcm93LCBhZnRlciB3YWl0aW5nIGZv cgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2 ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlCitzdWIgd2FpdF9mb3JfeG1pbnMKK3sKKwlt eSAoJG5vZGUsICRzbG90bmFtZSwgJGNoZWNrX2V4cHIpID0gQF87CisKKwkkbm9kZS0+cG9s bF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXFbCisJCVNFTEVDVCAkY2hlY2tfZXhw cgorCQlGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMKKwkJV0hFUkUgc2xv dF9uYW1lID0gJyRzbG90bmFtZSc7CisJXSkgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBm b3Igc2xvdCB4bWlucyB0byBhZHZhbmNlIjsKK30KKworIyBDcmVhdGUgdGhlIHJlcXVpcmVk IGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieS4KK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90cwor eworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9k ZV9tYXN0ZXIsICdkcm9wc2xvdCcsICd0ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVh dGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVyLCAnYWN0aXZlc2xvdCcs ICd0ZXN0ZGInKTsKK30KKworIyBBY3F1aXJlIG9uZSBvZiB0aGUgc3RhbmRieSBsb2dpY2Fs IHNsb3RzIGNyZWF0ZWQgYnkgY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKQorc3ViIG1ha2Vfc2xv dF9hY3RpdmUKK3sKKwlteSAkc2xvdF91c2VyX2hhbmRsZTsKKworCSMgbWFrZSBzdXJlIGFj dGl2ZXNsb3QgaXMgaW4gdXNlCisJcHJpbnQgInN0YXJ0aW5nIHBnX3JlY3Zsb2dpY2FsXG4i OworCSRzbG90X3VzZXJfaGFuZGxlID0gSVBDOjpSdW46OnN0YXJ0KFsncGdfcmVjdmxvZ2lj YWwnLCAnLWQnLCAkbm9kZV9zdGFuZGJ5LT5jb25uc3RyKCd0ZXN0ZGInKSwgJy1TJywgJ2Fj dGl2ZXNsb3QnLCAnLWYnLCAnLScsICctLW5vLWxvb3AnLCAnLS1zdGFydCddLCAnPicsIFwk c3Rkb3V0LCAnMj4nLCBcJHN0ZGVycik7CisKKwl3aGlsZSAoISRub2RlX3N0YW5kYnktPnNs b3QoJ2FjdGl2ZXNsb3QnKS0+eydhY3RpdmVfcGlkJ30pCisJeworCQl1c2xlZXAoMTAwXzAw MCk7CisJCXByaW50ICJ3YWl0aW5nIGZvciBzbG90IHRvIGJlY29tZSBhY3RpdmVcbiI7CisJ fQorCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsKK30KKworIyBDaGVjayBpZiBhbGwgdGhl IHNsb3RzIG9uIHN0YW5kYnkgYXJlIGRyb3BwZWQuIFRoZXNlIGluY2x1ZGUgdGhlICdhY3Rp dmVzbG90JworIyB0aGF0IHdhcyBhY3F1aXJlZCBieSBtYWtlX3Nsb3RfYWN0aXZlKCksIGFu ZCB0aGUgbm9uLWFjdGl2ZSAnZHJvcHNsb3QnLgorc3ViIGNoZWNrX3Nsb3RzX2Ryb3BwZWQK K3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisJbXkgJHJldHVybjsKKworCWlz KCRub2RlX3N0YW5kYnktPnNsb3QoJ2Ryb3BzbG90JyktPnsnc2xvdF90eXBlJ30sICcnLCAn ZHJvcHNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+c2xv dCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24gc3Rh bmRieSBkcm9wcGVkJyk7CisKKwkjIG91ciBjbGllbnQgc2hvdWxkJ3ZlIHRlcm1pbmF0ZWQg aW4gcmVzcG9uc2UgdG8gdGhlIHdhbHNlbmRlciBlcnJvcgorCWV2YWwgeworCQkkc2xvdF91 c2VyX2hhbmRsZS0+ZmluaXNoOworCX07CisJJHJldHVybiA9ICQ/OworCWNtcF9vaygkcmV0 dXJuLCAiIT0iLCAwLCAicGdfcmVjdmxvZ2ljYWwgZXhpdGVkIG5vbi16ZXJvXG4iKTsKKwlp ZiAoJHJldHVybikgeworCQlsaWtlKCRzdGRlcnIsIHFyL2NvbmZsaWN0IHdpdGggcmVjb3Zl cnkvLCAncmVjdmxvZ2ljYWwgcmVjb3ZlcnkgY29uZmxpY3QnKTsKKwkJbGlrZSgkc3RkZXJy LCBxci9tdXN0IGJlIGRyb3BwZWQvLCAncmVjdmxvZ2ljYWwgZXJyb3IgZGV0YWlsJyk7CisJ fQorCisJcmV0dXJuIDA7Cit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIElu aXRpYWxpemUgbWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9k ZV9tYXN0ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+ IDEpOworJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsK K3dhbF9sZXZlbCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4 X3dhbF9zZW5kZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJy b3JfdmVyYm9zaXR5ID0gdmVyYm9zZQorIyBzZW5kIHN0YXR1cyByYXBpZGx5IHNvIHdlIHBy b21wdGx5IGFkdmFuY2UgeG1pbiBvbiBtYXN0ZXIKK3dhbF9yZWNlaXZlcl9zdGF0dXNfaW50 ZXJ2YWwgPSAxCisjIHZlcnkgcHJvbXB0bHkgdGVybWluYXRlIGNvbmZsaWN0aW5nIGJhY2tl bmRzCittYXhfc3RhbmRieV9zdHJlYW1pbmdfZGVsYXkgPSAnMnMnCit9KTsKKyRub2RlX21h c3Rlci0+ZHVtcF9pbmZvOworJG5vZGVfbWFzdGVyLT5zdGFydDsKKworJG5vZGVfbWFzdGVy LT5wc3FsKCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNFIHRlc3RkYl0pOworCiskbm9k ZV9tYXN0ZXItPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNUICogRlJPTSBwZ19jcmVh dGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJG1hc3Rlcl9zbG90bmFtZScpO10pOwor bXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX21hc3Rlci0+YmFja3VwKCRiYWNrdXBf bmFtZSk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgc2xhdmUg bm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+aW5pdF9m cm9tX2JhY2t1cCgKKwkkbm9kZV9tYXN0ZXIsICRiYWNrdXBfbmFtZSwKKwloYXNfc3RyZWFt aW5nID0+IDEsCisJaGFzX3Jlc3RvcmluZyA9PiAxKTsKKyRub2RlX3N0YW5kYnktPmFwcGVu ZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCXFxW3ByaW1hcnlfc2xvdF9uYW1lID0gJyRt YXN0ZXJfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5LT5zdGFydDsKKyRub2RlX21hc3Rl ci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFz dGVyLT5sc24oJ2ZsdXNoJykpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0OiBEcm9wIGNvbmZs aWN0aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCisjIFNjZW5hcmlvIDEgOiBo b3Rfc3RhbmRieV9mZWVkYmFjayBvZmYKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMg T25lIHdheSB0byByZXByb2R1Y2UgcmVjb3ZlcnkgY29uZmxpY3QgaXMgdG8gcnVuIFZBQ1VV TSBGVUxMIHdpdGgKKyMgaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiBzbGF2 ZS4KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCito b3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0 OworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcgZm9yIGV4 cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0ZXIuIEJvdGggc2hvdWxk IGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlucygkbm9k ZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOVUxMIEFORCBj YXRhbG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgp OworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9kZV9tYXN0ZXIt PnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7CisKKyRub2RlX21hc3Rlci0+ d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVy LT5sc24oJ2ZsdXNoJykpOworCitjaGVja19zbG90c19kcm9wcGVkKCRoYW5kbGUpOworCisj IFR1cm4gaG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBw ZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0g b24KK10pOworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2 ZXIgZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBj YXRhbG9nX3htaW4gb24gbWFzdGVyLiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4 bWluIHNob3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCBy ZW1haW4gTlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94 bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO T1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxp Y3Q6IERyb3AgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMg U2NlbmFyaW8gMiA6IGluY29ycmVjdCB3YWxfbGV2ZWwgYXQgbWFzdGVyCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9n aWNhbF9zbG90cygpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgpOworCisjIE1h a2UgbWFzdGVyIHdhbF9sZXZlbCByZXBsaWNhLiBUaGlzIHdpbGwgdHJpZ2dlciBzbG90IGNv bmZsaWN0LgorJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxx Wword2FsX2xldmVsID0gJ3JlcGxpY2EnCitdKTsKKyRub2RlX21hc3Rlci0+cmVzdGFydDsK KworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBs YXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2NoZWNrX3Nsb3RzX2Ryb3Bw ZWQoJGhhbmRsZSk7CisKKyMgUmVzdG9yZSBtYXN0ZXIgd2FsX2xldmVsCiskbm9kZV9tYXN0 ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKK10pOworJG5vZGVfbWFzdGVyLT5yZXN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxz bignZmx1c2gnKSk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgRFJPUCBEQVRBQkFTRSBzaG91bGQgZHJvcHMgaXQncyBzbG90 cywgaW5jbHVkaW5nIGFjdGl2ZSBzbG90cy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGEgc2xvdCBvbiBhIGRhdGFi YXNlIHRoYXQgd291bGQgbm90IGJlIGRyb3BwZWQuIFRoaXMgc2xvdCBzaG91bGQgbm90Cisj IGdldCBkcm9wcGVkLgorJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9z dGFuZGJ5KCRub2RlX21hc3RlciwgJ290aGVyc2xvdCcsICdwb3N0Z3JlcycpOworY3JlYXRl X2xvZ2ljYWxfc2xvdHMoKTsKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMg ZHJvcGRiIG9uIHRoZSBtYXN0ZXIgdG8gdmVyaWZ5IHNsb3RzIGFyZSBkcm9wcGVkIG9uIHN0 YW5kYnkKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbRFJPUCBEQVRB QkFTRSB0ZXN0ZGJdKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2Rl X3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2lz KCRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXFbU0VMRUNUIEVYSVNU UyhTRUxFQ1QgMSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAndGVzdGRiJyld KSwgJ2YnLAorCSdkYXRhYmFzZSBkcm9wcGVkIG9uIHN0YW5kYnknKTsKKworY2hlY2tfc2xv dHNfZHJvcHBlZCgkaGFuZGxlKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnb3RoZXJz bG90JyktPnsnc2xvdF90eXBlJ30sICdsb2dpY2FsJywKKwknb3RoZXJzbG90IG9uIHN0YW5k Ynkgbm90IGRyb3BwZWQnKTsKKworIyBDbGVhbnVwIDogbWFudWFsbHkgZHJvcCB0aGUgc2xv dCB0aGF0IHdhcyBub3QgZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVz JywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdvdGhlcnNsb3QnKV0pOwot LSAKMi4xNC41Cgo= --------------474A7B3E559DABCE8495AB93 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v8-0003-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v8-0003-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSA3MzlkNzFiOGNlNmQ2N2NiNGQ3NGIwN2ZlNGZjMmIzNjY1OGEzZGU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyNiBKYW4gMjAyMSAwOToxMDozMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjggMy81XSBIYW5kbGUgbG9naWNhbCBzbG90IGNvbmZsaWN0cyBvbiBzdGFuZGJ5LgoK RHVyaW5nIFdBTCByZXBsYXkgb24gc3RhbmRieSwgd2hlbiBzbG90IGNvbmZsaWN0IGlzIGlk ZW50aWZpZWQsCmRyb3Agc3VjaCBzbG90cy4gQWxzbyBkbyB0aGUgc2FtZSB0aGluZyBpZiB3 YWxfbGV2ZWwgb24gbWFzdGVyCmlzIHJlZHVjZWQgdG8gYmVsb3cgbG9naWNhbCBhbmQgdGhl cmUgYXJlIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMKb24gc3RhbmRieS4gSW50cm9kdWNlIGEg bmV3IFByb2NTaWduYWxSZWFzb24gdmFsdWUgZm9yIHNsb3QKY29uZmxpY3QgcmVjb3Zlcnku IEFycmFuZ2UgZm9yIGEgbmV3IHBnX3N0YXRfZ2V0X2FjdGl2aXR5IGZpZWxkOgpjb25mbF9s b2dpY2Fsc2xvdC4KCkFtaXQgS2hhbmRla2FyLCByZXZpZXdlZCBieSBBbmRyZXMgRnJldW5k LgotLS0KIGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgICAgICAgICB8ICAxMCArKwog c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAgIHwgICA0ICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICB8ICAxMyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0eGxvZy5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd4bG9nLmMgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAg ICB8ICAxNCArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8ICAg MSArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jICAgICAgfCAgIDQgKwogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgIHwgMTg4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJy YXkuYyAgfCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIHwg ICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICB8ICAgNyArLQog c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgIHwgIDIyICsrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICB8ICAxNiArKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQu aCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xv dC5oICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCAgICAgICAgfCAgIDIg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICB8ICAgMSArCiAyMSBm aWxlcyBjaGFuZ2VkLCAyOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKICAgMy4w JSBkb2Mvc3JjL3NnbWwvCiAgIDYuOCUgc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvCiAgIDYu NCUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDYuMiUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogIDUyLjclIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uLwogICA0LjYlIHNyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjLwogICA4LjUlIHNyYy9iYWNrZW5kL3Rjb3AvCiAgIDMuMyUgc3Jj L2JhY2tlbmQvdXRpbHMvYWR0LwogICA1LjQlIHNyYy9pbmNsdWRlLwoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCmluZGV4IDk0OTZmNzZiMWYuLmExOWM3OTM4ZWMgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcu c2dtbApAQCAtMzkyMSw2ICszOTIxLDE2IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlw ZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBp CiAgICAgICAgZGVhZGxvY2tzCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmNvbmZsX2xvZ2ljYWxzbG90PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTnVtYmVyIG9mIHF1ZXJpZXMg aW4gdGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbiBjYW5jZWxlZCBkdWUgdG8KKyAgICAg ICBsb2dpY2FsIHNsb3RzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAg ICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R4bG9nLmMKaW5kZXggODIyNzFlZjhhOS4uMGZmNTAzYmZiNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC0xOTUsNyArMTk1LDggQEAgZ2lzdFJlZG9E ZWxldGVSZWNvcmQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJs b2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxMLCBOVUxMKTsKIAotCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxhdGVzdFJlbW92ZWRYaWQsIHJu b2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5s YXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bGRhdGEtPm9uQ2F0YWxvZ1RhYmxlLCBy bm9kZSk7CiAJfQogCiAJaWYgKFhMb2dSZWFkQnVmZmVyRm9yUmVkbyhyZWNvcmQsIDAsICZi dWZmZXIpID09IEJMS19ORUVEU19SRURPKQpAQCAtNDEzLDYgKzQxNCw3IEBAIGdpc3RSZWRv UGFnZVJldXNlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCQlsYXRlc3RSZW1vdmVk WGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGxhdGVzdFJlbW92ZWRGdWxsWGlkKTsK IAkJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRY aWQsCisJCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCQl4 bHJlYy0+bm9kZSk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNoX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5j CmluZGV4IDAyZDllNmNkZmQuLmIxZmY1OTZlYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNo L2hhc2hfeGxvZy5jCkBAIC0xMDAyLDcgKzEwMDIsOCBAQCBoYXNoX3hsb2dfdmFjdXVtX29u ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlSZWxGaWxlTm9kZSBybm9kZTsK IAogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwp OwotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxhdGVz dFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bGRhdGEtPm9u Q2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJG b3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAwLCBSQk1fTk9STUFMLCB0cnVlLCAmYnVmZmVyKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggMDI3YzA0NzkwNC4uYjZkOGVmZmMw MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTgzNjcsNyArODM2Nyw4IEBA IGhlYXBfeGxvZ19jbGVhbnVwX2luZm8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJeGxf aGVhcF9jbGVhbnVwX2luZm8gKnhscmVjID0gKHhsX2hlYXBfY2xlYW51cF9pbmZvICopIFhM b2dSZWNHZXREYXRhKHJlY29yZCk7CiAKIAlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwg eGxyZWMtPm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4 bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1Rh YmxlLCB4bHJlYy0+bm9kZSk7CiAKIAkvKgogCSAqIEFjdHVhbCBvcGVyYXRpb24gaXMgYSBu by1vcC4gUmVjb3JkIHR5cGUgZXhpc3RzIHRvIHByb3ZpZGUgYSBtZWFucyBmb3IKQEAgLTg0 MDMsNyArODQwNCw4IEBAIGhlYXBfeGxvZ19jbGVhbihYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAkgKiBsYXRlc3RSZW1vdmVkWGlkIGlzIGludmFsaWQsIHNraXAgY29uZmxpY3QgcHJv Y2Vzc2luZy4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5ICYmIFRyYW5zYWN0aW9uSWRJc1Zh bGlkKHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRY aWQsCisJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCiAJLyoK IAkgKiBJZiB3ZSBoYXZlIGEgZnVsbC1wYWdlIGltYWdlLCByZXN0b3JlIGl0ICh1c2luZyBh IGNsZWFudXAgbG9jaykgYW5kCkBAIC04NDk5LDcgKzg1MDEsOSBAQCBoZWFwX3hsb2dfdmlz aWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKiByYXRoZXIgdGhhbiBraWxsaW5n IHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQot CQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hp ZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJl Yy0+Y3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAorCQkJ CQkJCQkJCQlybm9kZSk7CiAKIAkvKgogCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQg c3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCkBAIC04NjM2 LDcgKzg2NDAsOCBAQCBoZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAJCVRyYW5zYWN0aW9uSWRSZXRyZWF0KGxhdGVzdFJlbW92ZWRYaWQpOwogCiAJ CVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7Ci0J CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQs IHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0 UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7 CiAJfQogCiAJaWYgKFhMb2dSZWFkQnVmZmVyRm9yUmVkbyhyZWNvcmQsIDAsICZidWZmZXIp ID09IEJMS19ORUVEU19SRURPKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpp bmRleCBjMWQ1NzhjYzAxLi4yYTYxZTAyMzQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHhsb2cuYwpAQCAtNjY5LDcgKzY2OSw4IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAs ICZybm9kZSwgTlVMTCwgTlVMTCk7CiAKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJ CQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCS8qCkBA IC05ODEsNiArOTgyLDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCWlmIChJbkhvdFN0YW5kYnkpCiAJewogCQlSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJ CQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAogCQkJCQkJCQkJCQl4bHJlYy0+bm9kZSk7CiAJ fQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCBkNDBjN2I1ODc3 Li4xYTVjODk1OWExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3Nw Z3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwpAQCAt ODgxLDYgKzg4MSw3IEBAIHNwZ1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAogCQkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJm5vZGUsIE5V TEwsIE5VTEwpOwogCQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxk YXRhLT5uZXdlc3RSZWRpcmVjdFhpZCwKKwkJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9n VGFibGUsCiAJCQkJCQkJCQkJCQlub2RlKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYwppbmRleCA4NmVlZGJmOWMzLi42OWRhMjQxNjBlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jCkBAIC0xMDMwNiw2ICsxMDMwNiwyMCBAQCB4bG9nX3JlZG8o WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCS8qIFVwZGF0ZSBvdXIgY29weSBvZiB0aGUg cGFyYW1ldGVycyBpbiBwZ19jb250cm9sICovCiAJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNH ZXREYXRhKHJlY29yZCksIHNpemVvZih4bF9wYXJhbWV0ZXJfY2hhbmdlKSk7CiAKKwkJLyoK KwkJICogRHJvcCBsb2dpY2FsIHNsb3RzIGlmIHdlIGFyZSBpbiBob3Qgc3RhbmRieSBhbmQg dGhlIHByaW1hcnkgZG9lcyBub3QKKwkJICogaGF2ZSBhIFdBTCBsZXZlbCBzdWZmaWNpZW50 IGZvciBsb2dpY2FsIGRlY29kaW5nLiBObyBuZWVkIHRvIHNlYXJjaAorCQkgKiBmb3IgcG90 ZW50aWFsbHkgY29uZmxpY3RpbmcgbG9naWNhbGx5IHNsb3RzIGlmIHN0YW5kYnkgaXMgcnVu bmluZworCQkgKiB3aXRoIHdhbF9sZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwsIGJlY2F1c2Ug aW4gdGhhdCBjYXNlLCB3ZSB3b3VsZAorCQkgKiBoYXZlIGVpdGhlciBkaXNhbGxvd2VkIGNy ZWF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgb3IgZHJvcHBlZCBleGlzdGluZworCQkgKiBvbmVz LgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5Ib3RTdGFuZGJ5ICYmCisJCQl4bHJl Yy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAmJgorCQkJd2FsX2xldmVsID49IFdB TF9MRVZFTF9MT0dJQ0FMKQorCQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9naWNh bFNsb3RzKEludmFsaWRPaWQsIEludmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCWdldHRleHRf bm9vcCgiTG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCA+ PSBsb2dpY2FsIG9uIG1hc3Rlci4iKSk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmls ZUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9 IHhscmVjLk1heENvbm5lY3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9j ZXNzZXMgPSB4bHJlYy5tYXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbAppbmRleCBmYTU4YWZkOWQ3Li5kOGY2MDZlZDQ5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC05NDUsNiArOTQ1LDcgQEAgQ1JF QVRFIFZJRVcgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMgQVMKICAgICAgICAgICAgIHBn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3RhYmxlc3BhY2UoRC5vaWQpIEFTIGNvbmZsX3RhYmxl c3BhY2UsCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKEQub2lk KSBBUyBjb25mbF9sb2NrLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf c25hcHNob3QoRC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAorICAgICAgICAgICAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxz bG90LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKEQu b2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jawogICAg IEZST00gcGdfZGF0YWJhc2UgRDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4IGY3 NWI1MjcxOWQuLmNmYzA3ODg3M2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwpAQCAt NTA2OCw2ICs1MDY4LDcgQEAgcmVzZXRfZGJlbnRyeV9jb3VudGVycyhQZ1N0YXRfU3RhdERC RW50cnkgKmRiZW50cnkpCiAJZGJlbnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlID0gMDsK IAlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvY2sgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rf c25hcHNob3QgPSAwOworCWRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QgPSAwOwog CWRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZs aWN0X3N0YXJ0dXBfZGVhZGxvY2sgPSAwOwogCWRiZW50cnktPm5fdGVtcF9maWxlcyA9IDA7 CkBAIC02OTQzLDYgKzY5NDQsOSBAQCBwZ3N0YXRfcmVjdl9yZWNvdmVyeWNvbmZsaWN0KFBn U3RhdF9Nc2dSZWNvdmVyeUNvbmZsaWN0ICptc2csIGludCBsZW4pCiAJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVDoKIAkJCWRiZW50cnktPm5fY29uZmxpY3Rf c25hcHNob3QrKzsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfTE9HSUNBTFNMT1Q6CisJCQlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90Kys7 CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJ TjoKIAkJCWRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA4YjAyZDJmNDM3Li40N2JlMjRiMTMxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAicGdz dGF0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvZmQuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIKICNpbmNsdWRlICJzdG9yYWdl L3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0 aWxzL2J1aWx0aW5zLmgiCkBAIC0xMDMsNiArMTA0LDcgQEAgc3RhdGljIGludCBSZXBsaWNh dGlvblNsb3RBY3F1aXJlSW50ZXJuYWwoUmVwbGljYXRpb25TbG90ICpzbG90LAogCQkJCQkJ CQkJCSAgY29uc3QgY2hhciAqbmFtZSwgU2xvdEFjcXVpcmVCZWhhdmlvciBiZWhhdmlvcik7 CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9pZCk7CiBzdGF0 aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7 CitzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wQ29uZmxpY3RpbmcoUmVwbGljYXRp b25TbG90ICpzbG90KTsKIAogLyogaW50ZXJuYWwgcGVyc2lzdGVuY3kgZnVuY3Rpb25zICov CiBzdGF0aWMgdm9pZCBSZXN0b3JlU2xvdEZyb21EaXNrKGNvbnN0IGNoYXIgKm5hbWUpOwpA QCAtNzExLDYgKzcxMyw2NCBAQCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9u U2xvdCAqc2xvdCkKIAlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdEFsbG9jYXRpb25M b2NrKTsKIH0KIAorLyoKKyAqIFBlcm1hbmVudGx5IGRyb3AgYSBjb25mbGljdGluZyByZXBs aWNhdGlvbiBzbG90LiBJZiBpdCdzIGFscmVhZHkgYWN0aXZlIGJ5CisgKiBhbm90aGVyIGJh Y2tlbmQsIHNlbmQgaXQgYSByZWNvdmVyeSBjb25mbGljdCBzaWduYWwsIGFuZCB0aGVuIHRy eSBhZ2Fpbi4KKyAqLworc3RhdGljIHZvaWQKK1JlcGxpY2F0aW9uU2xvdERyb3BDb25mbGlj dGluZyhSZXBsaWNhdGlvblNsb3QgKnNsb3QpCit7CisJcGlkX3QJCWFjdGl2ZV9waWQ7CisJ UEdQUk9DCSAgICpwcm9jOworCVZpcnR1YWxUcmFuc2FjdGlvbklkCXZ4aWQ7CisKKwlDb25k aXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZzbG90LT5hY3RpdmVfY3YpOworCXdoaWxl ICgxKQorCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCWFjdGl2ZV9w aWQgPSBzbG90LT5hY3RpdmVfcGlkOworCQlpZiAoYWN0aXZlX3BpZCA9PSAwKQorCQkJYWN0 aXZlX3BpZCA9IHNsb3QtPmFjdGl2ZV9waWQgPSBNeVByb2NQaWQ7CisJCVNwaW5Mb2NrUmVs ZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCS8qIERyb3AgdGhlIGFjcXVpcmVkIHNsb3QsIHVu bGVzcyBpdCBpcyBhY3F1aXJlZCBieSBhbm90aGVyIGJhY2tlbmQgKi8KKwkJaWYgKGFjdGl2 ZV9waWQgPT0gTXlQcm9jUGlkKQorCQl7CisJCQllbG9nKERFQlVHMSwgImFjcXVpcmVkIGNv bmZsaWN0aW5nIHNsb3QsIG5vdyBkcm9wcGluZyBpdCIpOworCQkJUmVwbGljYXRpb25TbG90 RHJvcFB0cihzbG90KTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogU2VuZCB0aGUgb3RoZXIg YmFja2VuZCwgYSBjb25mbGljdCByZWNvdmVyeSBzaWduYWwgKi8KKworCQlTZXRJbnZhbGlk VmlydHVhbFRyYW5zYWN0aW9uSWQodnhpZCk7CisJCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5 TG9jaywgTFdfU0hBUkVEKTsKKwkJcHJvYyA9IEJhY2tlbmRQaWRHZXRQcm9jV2l0aExvY2so YWN0aXZlX3BpZCk7CisJCWlmIChwcm9jKQorCQkJR0VUX1ZYSURfRlJPTV9QR1BST0Modnhp ZCwgKnByb2MpOworCQlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2spOworCisJCS8qCisJ CSAqIElmIGNvaW5jaWRlbnRseSB0aGF0IHByb2Nlc3MgZmluaXNoZWQsIHNvbWUgb3RoZXIg YmFja2VuZCBtYXkKKwkJICogYWNxdWlyZSB0aGUgc2xvdCBhZ2Fpbi4gU28gc3RhcnQgb3Zl ciBhZ2Fpbi4KKwkJICogTm90ZTogRXZlbiBpZiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCBp cyBpbnZhbGlkLCB3ZSBuZWVkIHRvIGNhbmNlbAorCQkgKiB0aGF0IGJhY2tlbmQsIGJlY2F1 c2UgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRvIG1ha2UgaXQgcmVsZWFzZSB0aGUKKwkJICog c2xvdC4gU28gZG9uJ3QgYm90aGVyIHRvIHZhbGlkYXRlIHZ4aWQubG9jYWxUcmFuc2FjdGlv bklkLgorCQkgKi8KKwkJaWYgKHZ4aWQuYmFja2VuZElkID09IEludmFsaWRCYWNrZW5kSWQp CisJCQljb250aW51ZTsKKworCQllbG9nKERFQlVHMSwgImNhbmNlbGxpbmcgcGlkICVkIChi YWNrZW5kSWQ6ICVkKSBmb3IgcmVsZWFzaW5nIHNsb3QiLAorCQkJCQkgYWN0aXZlX3BpZCwg dnhpZC5iYWNrZW5kSWQpOworCisJCUNhbmNlbFZpcnR1YWxUcmFuc2FjdGlvbih2eGlkLCBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKTsKKwkJQ29uZGl0aW9uVmFy aWFibGVTbGVlcCgmc2xvdC0+YWN0aXZlX2N2LAorCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVQ TElDQVRJT05fU0xPVF9EUk9QKTsKKwl9CisKKwlDb25kaXRpb25WYXJpYWJsZUNhbmNlbFNs ZWVwKCk7Cit9CisKIC8qCiAgKiBTZXJpYWxpemUgdGhlIGN1cnJlbnRseSBhY3F1aXJlZCBz bG90J3Mgc3RhdGUgZnJvbSBtZW1vcnkgdG8gZGlzaywgdGhlcmVieQogICogZ3VhcmFudGVl aW5nIHRoZSBjdXJyZW50IHN0YXRlIHdpbGwgc3Vydml2ZSBhIGNyYXNoLgpAQCAtMTE0MSwx MiArMTIwMSwyNSBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2FsKHZvaWQpCiAJCXsKIAkJ CVhMb2dSZWNQdHIJZmx1c2hwdHI7CiAKKwkJCS8qIHN0YXJ0IGF0IGN1cnJlbnQgaW5zZXJ0 IHBvc2l0aW9uICovCisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsK KwkJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQkJc2xvdC0+ZGF0YS5yZXN0 YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRl eCk7CisKIAkJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBz dGFydCAqLwogCQkJZmx1c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAogCQkJLyog YW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8gZGlzayAqLwogCQkJWExvZ0ZsdXNoKGZs dXNocHRyKTsKIAkJfQorCQllbHNlCisJCXsKKwkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1Jl Y1B0cigpOworCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCQlzbG90LT5k YXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247CisJCQlTcGluTG9ja1JlbGVhc2UoJnNs b3QtPm11dGV4KTsKKwkJfQogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBh cyBwb3NzaWJsZSAqLwogCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7 CkBAIC0xMTY0LDYgKzEyMzcsMTIxIEBAIFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwodm9p ZCkKIAl9CiB9CiAKKy8qCisgKiBSZXNvbHZlIHJlY292ZXJ5IGNvbmZsaWN0cyB3aXRoIGxv Z2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMgdmFsaWQsIGl0IG1lYW5zIHRoYXQg cm93cyBvbGRlciB0aGFuIHhpZCBtaWdodCBoYXZlIGJlZW4KKyAqIHJlbW92ZWQuIFRoZXJl Zm9yZSB3ZSBuZWVkIHRvIGRyb3Agc2xvdHMgdGhhdCBkZXBlbmQgb24gc2VlaW5nIHRob3Nl IHJvd3MuCisgKiBXaGVuIHhpZCBpcyBpbnZhbGlkLCBkcm9wIGFsbCBsb2dpY2FsIHNsb3Rz LiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4gdGhlCisgKiBtYXN0ZXIgd2FsX2xldmVsIGlzIHNl dCBiYWNrIHRvIHJlcGxpY2EsIHNvIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgbmVlZCB0bwor ICogYmUgZHJvcHBlZC4gQWxzbywgd2hlbiB4aWQgaXMgaW52YWxpZCwgYSBjb21tb24gJ2Nv bmZsaWN0X3JlYXNvbicgaXMKKyAqIHByb3ZpZGVkIGZvciB0aGUgZXJyb3IgZGV0YWlsOyBv dGhlcndpc2UgaXQgaXMgTlVMTCwgaW4gd2hpY2ggY2FzZSBpdCBpcworICogY29uc3RydWN0 ZWQgb3V0IG9mIHRoZSB4aWQgdmFsdWUuCisgKi8KK3ZvaWQKK1Jlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkLAor CQkJCQkJCQkJCWNoYXIgKmNvbmZsaWN0X3JlYXNvbikKK3sKKwlpbnQJCQlpOworCWJvb2wJ CWZvdW5kX2NvbmZsaWN0ID0gZmFsc2U7CisKKwlpZiAobWF4X3JlcGxpY2F0aW9uX3Nsb3Rz IDw9IDApCisJCXJldHVybjsKKworcmVzdGFydDoKKwlpZiAoZm91bmRfY29uZmxpY3QpCisJ eworCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCQlmb3VuZF9jb25mbGljdCA9IGZhbHNl OworCX0KKworCUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExX X1NIQVJFRCk7CisJZm9yIChpID0gMDsgaSA8IG1heF9yZXBsaWNhdGlvbl9zbG90czsgaSsr KQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzOworCisJCXMgPSAmUmVwbGljYXRpb25TbG90 Q3RsLT5yZXBsaWNhdGlvbl9zbG90c1tpXTsKKworCQkvKiBjYW5ub3QgY2hhbmdlIHdoaWxl IFJlcGxpY2F0aW9uU2xvdEN0bExvY2sgaXMgaGVsZCAqLworCQlpZiAoIXMtPmluX3VzZSkK KwkJCWNvbnRpbnVlOworCisJCS8qIFdlIGFyZSBvbmx5IGRlYWxpbmcgd2l0aCAqbG9naWNh bCogc2xvdCBjb25mbGljdHMuICovCisJCWlmICghU2xvdElzTG9naWNhbChzKSkKKwkJCWNv bnRpbnVlOworCisJCS8qIEludmFsaWQgeGlkIG1lYW5zIGNhbGxlciBpcyBhc2tpbmcgdG8g ZHJvcCBhbGwgbG9naWNhbCBzbG90cyAqLworCQlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KHhpZCkpCisJCQlmb3VuZF9jb25mbGljdCA9IHRydWU7CisJCWVsc2UKKwkJeworCQkJVHJh bnNhY3Rpb25JZCBzbG90X3htaW47CisJCQlUcmFuc2FjdGlvbklkIHNsb3RfY2F0YWxvZ194 bWluOworCQkJU3RyaW5nSW5mb0RhdGEJY29uZmxpY3Rfc3RyLCBjb25mbGljdF94bWluczsK KwkJCWNoYXIJICAgKmNvbmZsaWN0X3NlbnRlbmNlID0KKwkJCQlnZXR0ZXh0X25vb3AoIlNs b3QgY29uZmxpY3RlZCB3aXRoIHhpZCBob3Jpem9uIHdoaWNoIHdhcyBiZWluZyBpbmNyZWFz ZWQgdG8iKTsKKworCQkJLyogbm90IG91ciBkYXRhYmFzZSwgc2tpcCAqLworCQkJaWYgKHMt PmRhdGEuZGF0YWJhc2UgIT0gSW52YWxpZE9pZCAmJiBzLT5kYXRhLmRhdGFiYXNlICE9IGRi b2lkKQorCQkJCWNvbnRpbnVlOworCisJCQlTcGluTG9ja0FjcXVpcmUoJnMtPm11dGV4KTsK KwkJCXNsb3RfeG1pbiA9IHMtPmRhdGEueG1pbjsKKwkJCXNsb3RfY2F0YWxvZ194bWluID0g cy0+ZGF0YS5jYXRhbG9nX3htaW47CisJCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsK KworCQkJLyoKKwkJCSAqIEJ1aWxkIHRoZSBjb25mbGljdF9zdHIgd2hpY2ggd2lsbCBsb29r IGxpa2UgOgorCQkJICogIlNsb3QgY29uZmxpY3RlZCB3aXRoIHhpZCBob3Jpem9uIHdoaWNo IHdhcyBiZWluZyBpbmNyZWFzZWQKKwkJCSAqIHRvIDkwMTIgKHNsb3QgeG1pbjogMTIzNCwg c2xvdCBjYXRhbG9nX3htaW46IDU2NzgpLiIKKwkJCSAqLworCQkJaW5pdFN0cmluZ0luZm8o JmNvbmZsaWN0X3htaW5zKTsKKwkJCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X3ht aW4pICYmCisJCQkJVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF94bWluLCB4 aWQpKQorCQkJeworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmNvbmZsaWN0X3htaW5zLCAic2xv dCB4bWluOiAlZCIsIHNsb3RfeG1pbik7CisJCQl9CisJCQlpZiAoVHJhbnNhY3Rpb25JZElz VmFsaWQoc2xvdF9jYXRhbG9nX3htaW4pICYmCisJCQkJVHJhbnNhY3Rpb25JZFByZWNlZGVz T3JFcXVhbHMoc2xvdF9jYXRhbG9nX3htaW4sIHhpZCkpCisJCQkJYXBwZW5kU3RyaW5nSW5m bygmY29uZmxpY3RfeG1pbnMsICIlc3Nsb3QgY2F0YWxvZ194bWluOiAlZCIsCisJCQkJCQkJ CSBjb25mbGljdF94bWlucy5sZW4gPiAwID8gIiwgIiA6ICIiLAorCQkJCQkJCQkgc2xvdF9j YXRhbG9nX3htaW4pOworCisJCQlpZiAoY29uZmxpY3RfeG1pbnMubGVuID4gMCkKKwkJCXsK KwkJCQlpbml0U3RyaW5nSW5mbygmY29uZmxpY3Rfc3RyKTsKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZjb25mbGljdF9zdHIsICIlcyAlZCAoJXMpLiIsCisJCQkJCQkJCSBjb25mbGljdF9z ZW50ZW5jZSwgeGlkLCBjb25mbGljdF94bWlucy5kYXRhKTsKKwkJCQlmb3VuZF9jb25mbGlj dCA9IHRydWU7CisJCQkJY29uZmxpY3RfcmVhc29uID0gY29uZmxpY3Rfc3RyLmRhdGE7CisJ CQl9CisJCX0KKworCQlpZiAoZm91bmRfY29uZmxpY3QpCisJCXsKKwkJCU5hbWVEYXRhCXNs b3RuYW1lOworCisJCQlTcGluTG9ja0FjcXVpcmUoJnMtPm11dGV4KTsKKwkJCXNsb3RuYW1l ID0gcy0+ZGF0YS5uYW1lOworCQkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJ CS8qIFJlcGxpY2F0aW9uU2xvdERyb3BDb25mbGljdGluZygpIHdpbGwgYWNxdWlyZSB0aGUg bG9jayBiZWxvdyAqLworCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jayk7CisKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BDb25mbGljdGluZyhzKTsKKworCQkJ ZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImRyb3BwZWQgY29uZmxpY3Rpbmcgc2xvdCAl cyIsIE5hbWVTdHIoc2xvdG5hbWUpKSwKKwkJCQkJIGVycmRldGFpbCgiJXMiLCBjb25mbGlj dF9yZWFzb24pKSk7CisKKwkJCS8qIFdlIHJlbGVhc2VkIHRoZSBsb2NrIGFib3ZlOyBzbyBy ZS1zY2FuIHRoZSBzbG90cy4gKi8KKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0KKworCUxX TG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworfQorCiAvKgogICog TWFyayBhbnkgc2xvdCB0aGF0IHBvaW50cyB0byBhbiBMU04gb2xkZXIgdGhhbiB0aGUgZ2l2 ZW4gc2VnbWVudAogICogYXMgaW52YWxpZDsgaXQgcmVxdWlyZXMgV0FMIHRoYXQncyBhYm91 dCB0byBiZSByZW1vdmVkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv cHJvY2FycmF5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwppbmRl eCBjZjEyZWRhNTA0Li4zNDM5MDI2ZWIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9j YXJyYXkuYwpAQCAtMzM0Niw2ICszMzQ2LDEwIEBAIFNpZ25hbFZpcnR1YWxUcmFuc2FjdGlv bihWaXJ0dWFsVHJhbnNhY3Rpb25JZCB2eGlkLCBQcm9jU2lnbmFsUmVhc29uIHNpZ21vZGUs CiAKIAkJR0VUX1ZYSURfRlJPTV9QR1BST0MocHJvY3Z4aWQsICpwcm9jKTsKIAorCQkvKgor CQkgKiBOb3RlOiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCBjYW4gYmUgaW52YWxpZCwgd2hp Y2ggbWVhbnMgdGhlCisJCSAqIHJlcXVlc3QgaXMgdG8gc2lnbmFsIHRoZSBwaWQgdGhhdCBp cyBub3QgcnVubmluZyBhIHRyYW5zYWN0aW9uLgorCQkgKi8KIAkJaWYgKHByb2N2eGlkLmJh Y2tlbmRJZCA9PSB2eGlkLmJhY2tlbmRJZCAmJgogCQkJcHJvY3Z4aWQubG9jYWxUcmFuc2Fj dGlvbklkID09IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkKQogCQl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggYzQzY2RkNjg1Yi4uNDc0MGU4MzUyYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtNjgwLDYgKzY4MCw5IEBA IHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05BTF9BUkdTKQogCWlmIChDaGVja1By b2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCkpCiAJCVJlY292 ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hP VCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf TE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVD T1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOworCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0spKQogCQlSZWNvdmVy eUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9E RUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5k YnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCAzOWEzMGMw MGY3Li4wMDg3YjIxODBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9z dGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCkBAIC0y Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dpbnNlcnQuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJyZXBsaWNh dGlvbi9zbG90LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJz dG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTQyNSw3ICs0 MjYsOCBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhWaXJ0dWFsWElEcyhWaXJ0dWFs VHJhbnNhY3Rpb25JZCAqd2FpdGxpc3QsCiB9CiAKIHZvaWQKLVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwgUmVs RmlsZU5vZGUgbm9kZSkKK1Jlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRy YW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCWJvb2wgb25DYXRhbG9n VGFibGUsIFJlbEZpbGVOb2RlIG5vZGUpCiB7CiAJVmlydHVhbFRyYW5zYWN0aW9uSWQgKmJh Y2tlbmRzOwogCkBAIC00NTAsNiArNDUyLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLCBSZWxGaWxlTm9k ZQogCQkJCQkJCQkJCSAgIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJ CQkJCQkJCQkJICAgV0FJVF9FVkVOVF9SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCwKIAkJ CQkJCQkJCQkgICB0cnVlKTsKKworCWlmIChvbkNhdGFsb2dUYWJsZSkKKwkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoTG9naWNhbFNsb3RzKG5vZGUuZGJOb2RlLCBsYXRlc3RSZW1v dmVkWGlkLCBOVUxMKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IGNiNWE5 NjExN2YuLjhhZWVkZGYwYTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTI0NjYsNiArMjQ2 Niw5IEBAIGVycmRldGFpbF9yZWNvdmVyeV9jb25mbGljdCh2b2lkKQogCQljYXNlIFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVl cnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUg cmVtb3ZlZC4iKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfTE9HSUNBTFNMT1Q6CisJCQllcnJkZXRhaWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dp Y2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRyb3BwZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRh aWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292 ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0yOTc5LDYgKzI5ODIsMjUgQEAgUmVjb3ZlcnlDb25m bGljdEludGVycnVwdChQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0NLOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf U05BUFNIT1Q6CisJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNM T1Q6CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2lj YWwgc2xvdCB0byBiZSBkcm9wcGVkLCB0aGUKKwkJCQkgKiByZXF1aXJlbWVudCBpcyBmb3Ig dGhlIHNpZ25hbCByZWNlaXZlciB0byByZWxlYXNlIHRoZSBzbG90LAorCQkJCSAqIHNvIHRo YXQgaXQgY291bGQgYmUgZHJvcHBlZCBieSB0aGUgc2lnbmFsIHNlbmRlci4gU28gZm9yCisJ CQkJICogbm9ybWFsIGJhY2tlbmRzLCB0aGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIGFib3J0 ZWQsIGp1c3QKKwkJCQkgKiBsaWtlIGZvciBvdGhlciByZWNvdmVyeSBjb25mbGljdHMuIEJ1 dCBpZiBpdCdzIHdhbHNlbmRlciBvbgorCQkJCSAqIHN0YW5kYnksIHRoZW4gaXQgaGFzIHRv IGJlIGtpbGxlZCBzbyBhcyB0byByZWxlYXNlIGFuCisJCQkJICogYWNxdWlyZWQgbG9naWNh bCBzbG90LgorCQkJCSAqLworCQkJCWlmIChhbV9jYXNjYWRpbmdfd2Fsc2VuZGVyICYmCisJ CQkJCXJlYXNvbiA9PSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UICYm CisJCQkJCU15UmVwbGljYXRpb25TbG90ICYmIFNsb3RJc0xvZ2ljYWwoTXlSZXBsaWNhdGlv blNsb3QpKQorCQkJCXsKKwkJCQkJUmVjb3ZlcnlDb25mbGljdFBlbmRpbmcgPSB0cnVlOwor CQkJCQlRdWVyeUNhbmNlbFBlbmRpbmcgPSB0cnVlOworCQkJCQlJbnRlcnJ1cHRQZW5kaW5n ID0gdHJ1ZTsKKwkJCQkJYnJlYWs7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBJZiB3ZSBh cmVuJ3QgaW4gYSB0cmFuc2FjdGlvbiBhbnkgbG9uZ2VyIHRoZW4gaWdub3JlLgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA2MmJmZjUyNjM4Li43NmJhODBmNWNh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMTQ5Niw2ICsxNDk2 LDIxIEBAIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KFBHX0ZVTkNUSU9OX0FS R1MpCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJ CWRiaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWludDY0CQlyZXN1bHQ7CisJUGdTdGF0X1N0 YXREQkVudHJ5ICpkYmVudHJ5OworCisJaWYgKChkYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0 YXRfZGJlbnRyeShkYmlkKSkgPT0gTlVMTCkKKwkJcmVzdWx0ID0gMDsKKwllbHNlCisJCXJl c3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QpOworCisJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7Cit9CisKIERhdHVtCiBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9idWZmZXJwaW4oUEdfRlVOQ1RJT05fQVJHUykKIHsKQEAgLTE1MzksNiArMTU1 NCw3IEBAIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2FsbChQR19GVU5DVElPTl9BUkdTKQog CQlyZXN1bHQgPSAoaW50NjQpIChkYmVudHJ5LT5uX2NvbmZsaWN0X3RhYmxlc3BhY2UgKwog CQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5u X2NvbmZsaWN0X3NuYXBzaG90ICsKKwkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9sb2dp Y2Fsc2xvdCArCiAJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluICsKIAkJ CQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggYjVmNTJkNGU0YS4uMjg5ZTgwNzhkYSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01MzkxLDYgKzUzOTEsMTEgQEAKICAgcHJvbmFt ZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnLCBwcm92b2xhdGlsZSA9 PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHBy b2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZs aWN0X3NuYXBzaG90JyB9LAoreyBvaWQgPT4gJzQ1NDMnLAorICBkZXNjciA9PiAnc3RhdGlz dGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNlIGNhdXNlZCBieSBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3QnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25m bGljdF9sb2dpY2Fsc2xvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwg PT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisg IHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnIH0sCiB7 IG9pZCA9PiAnMzA2OCcsCiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25m bGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IHNoYXJlZCBidWZmZXIgcGluJywKICAgcHJv bmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluJywgcHJvdm9sYXRp bGUgPT4gJ3MnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5j bHVkZS9wZ3N0YXQuaAppbmRleCA3MjQwNjhjZjg3Li5lYjNlZmEzYmJlIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAt NzE0LDYgKzcxNCw3IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRyeQogCVBn U3RhdF9Db3VudGVyIG5fY29uZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBu X2NvbmZsaWN0X2xvY2s7CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9zbmFwc2hvdDsK KwlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3Vu dGVyIG5fY29uZmxpY3RfYnVmZmVycGluOwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3Rf c3RhcnR1cF9kZWFkbG9jazsKIAlQZ1N0YXRfQ291bnRlciBuX3RlbXBfZmlsZXM7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNTNmNjM2YzU2Zi4uNmY2NTExNmE2NCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE3LDQgKzIxNyw2IEBAIGV4dGVybiB2b2lkIENo ZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpOwogCiBleHRlcm4gdm9pZCBDaGVja1Ns b3RSZXF1aXJlbWVudHModm9pZCk7CiAKK2V4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkLCBj aGFyICpyZWFzb24pOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3Jh Z2UvcHJvY3NpZ25hbC5oCmluZGV4IDRhZTdkYzMzYjguLjI3MDM1YjA3NWIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBiL3NyYy9pbmNsdWRl L3N0b3JhZ2UvcHJvY3NpZ25hbC5oCkBAIC00MCw2ICs0MCw3IEBAIHR5cGVkZWYgZW51bQog CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFDRSwKIAlQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX0xPQ0ssCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hP VCwKKwlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9ULAogCVBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfU1RBUlRVUF9ERUFETE9DSywKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9zdGFuZGJ5LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaAppbmRleCA5NGQz Mzg1MWQwLi44MDI0ODJlMWNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0 YW5kYnkuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaApAQCAtMzAsNyAr MzAsNyBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50 KHZvaWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJv bm1lbnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKLQkJCQkJCQkJCQkJ CVJlbEZpbGVOb2RlIG5vZGUpOworCQkJCQkJCQkJYm9vbCBvbkNhdGFsb2dUYWJsZSwgUmVs RmlsZU5vZGUgbm9kZSk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhUYWJsZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAppbmRleCA2MTczNDczZGU5Li5mYjAyZTdiZTUyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTg2Nyw2ICsxODY3LDcgQEAgcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHN8IFNFTEVDVCBkLm9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF90YWJsZXNwYWNlKGQub2lkKSBBUyBjb25mbF90YWJsZXNwYWNl LAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xv Y2ssCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoZC5vaWQpIEFTIGNv bmZsX3NuYXBzaG90LAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90 KGQub2lkKSBBUyBjb25mbF9sb2dpY2Fsc2xvdCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25m bGljdF9idWZmZXJwaW4oZC5vaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwKICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFk bG9jawogICAgRlJPTSBwZ19kYXRhYmFzZSBkOwotLSAKMi4xNC41Cgo= --------------474A7B3E559DABCE8495AB93 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v8-0002-Add-info-in-WAL-records-in-preparation-for-logica.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v8-0002-Add-info-in-WAL-records-in-preparation-for-logica.pa"; filename*1="tch" RnJvbSBhZTYzYWZmMGZlNTNlMGM2YTY2YmY1Mzc1MzRmZTBlMjQ1Y2ExOGE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyNiBKYW4gMjAyMSAwOTowOToxOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjggMi81XSBBZGQgaW5mbyBpbiBXQUwgcmVjb3JkcyBpbiBwcmVwYXJhdGlvbiBmb3Ig bG9naWNhbAogc2xvdCBjb25mbGljdCBoYW5kbGluZy4KCldoZW4gYSBXQUwgcmVwbGF5IG9u IHN0YW5kYnkgaW5kaWNhdGVzIHRoYXQgYSBjYXRhbG9nIHRhYmxlIHR1cGxlIGlzCnRvIGJl IGRlbGV0ZWQgYnkgYW4geGlkIHRoYXQgaXMgZ3JlYXRlciB0aGFuIGEgbG9naWNhbCBzbG90 J3MKY2F0YWxvZ194bWluLCB0aGVuIHRoYXQgbWVhbnMgdGhlIHNsb3QncyBjYXRhbG9nX3ht aW4gY29uZmxpY3RzIHdpdGgKdGhlIHhpZCwgYW5kIHdlIG5lZWQgdG8gaGFuZGxlIHRoZSBj b25mbGljdC4gIFdoaWxlIHN1YnNlcXVlbnQgY29tbWl0cwp3aWxsIGRvIHRoZSBhY3R1YWwg Y29uZmxpY3QgaGFuZGxpbmcsIHRoaXMgY29tbWl0IGFkZHMgYSBuZXcgZmllbGQKb25DYXRh bG9nVGFibGUgaW4gc3VjaCBXQUwgcmVjb3JkcywgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9n IHRhYmxlcywKc28gYXMgdG8gYXJyYW5nZSBmb3IgY29uZmxpY3QgaGFuZGxpbmcuCgpBbmRy ZXMgRnJldW5kLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYyAgICAgICAg ICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyAgICAgfCAg MiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgIHwgIDQgKyst LQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAgICAgIHwgIDQgKysrLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jICAgIHwgIDIgKysKIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8IDEwICsrKysrKystLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRwYWdlLmMgICAgIHwgIDQgKysrKwogc3JjL2JhY2tlbmQvYWNj ZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDggKysrKysrKysKIHNyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICB8IDE2ICsrKysrKysrKysrKysrKysKIHNyYy9p bmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaCAgICAgICB8ICA2ICsrKy0tLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggICAgICAgICAgIHwgIDMgKystCiBzcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaF94bG9nLmggICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgOCArKysrKystLQogc3JjL2luY2x1ZGUvYWNj ZXNzL25idHhsb2cuaCAgICAgICAgICAgIHwgIDIgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9z cGd4bG9nLmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAg ICAgICAgICB8ICA5ICsrKysrKysrKwogMTkgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pCiAgMTYuNiUgc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv CiAgMjIuNyUgc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvCiAgIDUuMCUgc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS8KICAgOC4yJSBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0LwogICA3 LjUlIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlLwogIDIxLjUlIHNyYy9pbmNsdWRlL2FjY2Vz cy8KICAxNS41JSBzcmMvaW5jbHVkZS91dGlscy8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMK aW5kZXggZjIwM2JiNTk0Yy4uMGVhMzMzMGZmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Qu YwpAQCAtMzQ4LDcgKzM0OCw3IEBAIGdpc3RwbGFjZXRvcGFnZShSZWxhdGlvbiByZWwsIFNp emUgZnJlZXNwYWNlLCBHSVNUU1RBVEUgKmdpc3RzdGF0ZSwKIAkJZm9yICg7IHB0cjsgcHRy ID0gcHRyLT5uZXh0KQogCQl7CiAJCQkvKiBBbGxvY2F0ZSBuZXcgcGFnZSAqLwotCQkJcHRy LT5idWZmZXIgPSBnaXN0TmV3QnVmZmVyKHJlbCk7CisJCQlwdHItPmJ1ZmZlciA9IGdpc3RO ZXdCdWZmZXIoaGVhcFJlbCwgcmVsKTsKIAkJCUdJU1RJbml0QnVmZmVyKHB0ci0+YnVmZmVy LCAoaXNfbGVhZikgPyBGX0xFQUYgOiAwKTsKIAkJCXB0ci0+cGFnZSA9IEJ1ZmZlckdldFBh Z2UocHRyLT5idWZmZXIpOwogCQkJcHRyLT5ibG9jay5ibGtubyA9IEJ1ZmZlckdldEJsb2Nr TnVtYmVyKHB0ci0+YnVmZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3RidWlsZC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMK aW5kZXggMTA1NGY2ZjFmMi4uOGIwNjRmMzJhYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdGJ1aWxkLmMKQEAgLTI5MCw3ICsyOTAsNyBAQCBnaXN0YnVpbGQoUmVsYXRpb24gaGVh cCwgUmVsYXRpb24gaW5kZXgsIEluZGV4SW5mbyAqaW5kZXhJbmZvKQogCQlQYWdlCQlwYWdl OwogCiAJCS8qIGluaXRpYWxpemUgdGhlIHJvb3QgcGFnZSAqLwotCQlidWZmZXIgPSBnaXN0 TmV3QnVmZmVyKGluZGV4KTsKKwkJYnVmZmVyID0gZ2lzdE5ld0J1ZmZlcihoZWFwLCBpbmRl eCk7CiAJCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpID09IEdJU1RfUk9P VF9CTEtOTyk7CiAJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IGNmNTNkYWQ0NzQuLjQ0NmE2MWJjYTYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtODIzLDcgKzgyMyw3IEBAIGdp c3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmKQogICogQ2FsbGVyIGlzIHJl c3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgdGhlIHBhZ2UgYnkgY2FsbGluZyBHSVNUSW5p dEJ1ZmZlcgogICovCiBCdWZmZXIKLWdpc3ROZXdCdWZmZXIoUmVsYXRpb24gcikKK2dpc3RO ZXdCdWZmZXIoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcikKIHsKIAlCdWZmZXIJCWJ1 ZmZlcjsKIAlib29sCQluZWVkTG9jazsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBnaXN0TmV3QnVm ZmVyKFJlbGF0aW9uIHIpCiAJCQkJICogcGFnZSdzIGRlbGV0ZVhpZC4KIAkJCQkgKi8KIAkJ CQlpZiAoWExvZ1N0YW5kYnlJbmZvQWN0aXZlKCkgJiYgUmVsYXRpb25OZWVkc1dBTChyKSkK LQkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UociwgYmxrbm8sIEdpc3RQYWdlR2V0RGVsZXRlWGlk KHBhZ2UpKTsKKwkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UoaGVhcFJlbCwgciwgYmxrbm8sIEdp c3RQYWdlR2V0RGVsZXRlWGlkKHBhZ2UpKTsKIAogCQkJCXJldHVybiBidWZmZXI7CiAJCQl9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCBjMWQ0YjVkNGYyLi44MjI3 MWVmOGE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTYxNiw3ICs2 MTYsOCBAQCBnaXN0WExvZ0Fzc2lnbkxTTih2b2lkKQogICogV3JpdGUgWExPRyByZWNvcmQg YWJvdXQgcmV1c2Ugb2YgYSBkZWxldGVkIHBhZ2UuCiAgKi8KIHZvaWQKLWdpc3RYTG9nUGFn ZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlv bklkIGxhdGVzdFJlbW92ZWRYaWQpCitnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiBoZWFw UmVsLCBSZWxhdGlvbiByZWwsCisJCQkJICBCbG9ja051bWJlciBibGtubywgRnVsbFRyYW5z YWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAlnaXN0eGxvZ1BhZ2VSZXVzZSB4bHJl Y19yZXVzZTsKIApAQCAtNjI3LDYgKzYyOCw3IEBAIGdpc3RYTG9nUGFnZVJldXNlKFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92CiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uub25DYXRhbG9n VGFibGUgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKGhlYXBSZWwp OwogCXhscmVjX3JldXNlLm5vZGUgPSByZWwtPnJkX25vZGU7CiAJeGxyZWNfcmV1c2UuYmxv Y2sgPSBibGtubzsKIAl4bHJlY19yZXVzZS5sYXRlc3RSZW1vdmVkRnVsbFhpZCA9IGxhdGVz dFJlbW92ZWRYaWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo aW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKaW5kZXgg ZDI1NGEwMGI2YS4uNTcxMTk1MmZjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hhc2gvaGFzaGluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hp bnNlcnQuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL2hhc2guaCIK ICNpbmNsdWRlICJhY2Nlc3MvaGFzaF94bG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRh bG9nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZf aW50ZXJuYWxzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sd2xvY2suaCIKQEAgLTM5OCw2ICsz OTksNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBo cmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hfdmFjdXVtX29u ZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLm9uQ2F0 YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhocmVs KTsKIAkJCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCQkJ eGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMKaW5kZXggOTkyNmUyYmQ1NC4uMDI3YzA0NzkwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMKQEAgLTc4MDksMTIgKzc4MDksMTMgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hy aW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogICogc2VlIGNvbW1lbnRzIGZvciB2 YWN1dW1fbG9nX2NsZWFudXBfaW5mbygpLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF9j bGVhbnVwX2luZm8oUmVsRmlsZU5vZGUgcm5vZGUsIFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVt b3ZlZFhpZCkKK2xvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxhdGlvbiByZWwsIFRyYW5zYWN0 aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAl4bF9oZWFwX2NsZWFudXBfaW5mbyB4bHJl YzsKIAlYTG9nUmVjUHRyCXJlY3B0cjsKIAotCXhscmVjLm5vZGUgPSBybm9kZTsKKwl4bHJl Yy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcocmVsKTsKKwl4bHJlYy5ub2RlID0gcmVsLT5yZF9ub2RlOwogCXhscmVjLmxhdGVzdFJl bW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCiAJWExvZ0JlZ2luSW5zZXJ0KCk7CkBA IC03ODUwLDYgKzc4NTEsNyBAQCBsb2dfaGVhcF9jbGVhbihSZWxhdGlvbiByZWxuLCBCdWZm ZXIgYnVmZmVyLAogCS8qIENhbGxlciBzaG91bGQgbm90IGNhbGwgbWUgb24gYSBub24tV0FM LWxvZ2dlZCByZWxhdGlvbiAqLwogCUFzc2VydChSZWxhdGlvbk5lZWRzV0FMKHJlbG4pKTsK IAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2lj YWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVt b3ZlZFhpZDsKIAl4bHJlYy5ucmVkaXJlY3RlZCA9IG5yZWRpcmVjdGVkOwogCXhscmVjLm5k ZWFkID0gbmRlYWQ7CkBAIC03OTAwLDYgKzc5MDIsNyBAQCBsb2dfaGVhcF9mcmVlemUoUmVs YXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAog CS8qIG5vciB3aGVuIHRoZXJlIGFyZSBubyB0dXBsZXMgdG8gZnJlZXplICovCiAJQXNzZXJ0 KG50dXBsZXMgPiAwKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5jdXRvZmZfeGlkID0g Y3V0b2ZmX3hpZDsKIAl4bHJlYy5udHVwbGVzID0gbnR1cGxlczsKIApAQCAtNzkzMCw3ICs3 OTMzLDcgQEAgbG9nX2hlYXBfZnJlZXplKFJlbGF0aW9uIHJlbG4sIEJ1ZmZlciBidWZmZXIs IFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKICAqIGhlYXBfYnVmZmVyLCBpZiBuZWNlc3Nh cnkuCiAgKi8KIFhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZU5vZGUgcm5v ZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKK2xvZ19oZWFwX3Zp c2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZm ZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggdm1mbGFncykKIHsK IAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC03OTQwLDYgKzc5NDMsNyBAQCBsb2dfaGVh cF92aXNpYmxlKFJlbEZpbGVOb2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZl ciB2bV9idWZmZXIsCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKIAlB c3NlcnQoQnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1Rh YmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhs cmVjLmN1dG9mZl94aWQgPSBjdXRvZmZfeGlkOwogCXhscmVjLmZsYWdzID0gdm1mbGFnczsK IAlYTG9nQmVnaW5JbnNlcnQoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwppbmRleCBmM2QyMjY1ZmFkLi5hNDJmZjA0YzI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCkBAIC03MTgsNyArNzE4LDcgQEAgdmFjdXVtX2xvZ19jbGVhbnVw X2luZm8oUmVsYXRpb24gcmVsLCBMVlJlbFN0YXRzICp2YWNyZWxzdGF0cykKIAkgKiBObyBu ZWVkIHRvIHdyaXRlIHRoZSByZWNvcmQgYXQgYWxsIHVubGVzcyBpdCBjb250YWlucyBhIHZh bGlkIHZhbHVlCiAJICovCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZhY3JlbHN0YXRz LT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJKHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhy ZWwtPnJkX25vZGUsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKTsKKwkJKHZvaWQp IGxvZ19oZWFwX2NsZWFudXBfaW5mbyhyZWwsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVk WGlkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zp c2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAu YwppbmRleCBlMTk4ZGY2NWQ4Li42ZTg5YTA4YzUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0yODIsNyArMjgyLDcgQEAgdmlzaWJpbGl0eW1h cF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1 ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7CiAJCQkJQXNz ZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxlKHJlbC0+ cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYsCisJCQkJcmVjcHRyID0gbG9nX2hlYXBfdmlzaWJs ZShyZWwsIGhlYXBCdWYsIHZtQnVmLAogCQkJCQkJCQkJCSAgY3V0b2ZmX3hpZCwgZmxhZ3Mp OwogCiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMKaW5kZXggZTIz MGY5MTJjMi4uOGY3ODFjZmNhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnRwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdl LmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2luZGV4ZnNtLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcmVkaWNhdGUu aCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1k ZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKIApAQCAtNzc0LDYgKzc3NSw3 IEBAIF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25v LCBUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYCiAJICovCiAKIAkvKiBYTE9HIHN0dWZm ICovCisJeGxyZWNfcmV1c2Uub25DYXRhbG9nVGFibGUgPSBnZXRfcmVsX2xvZ2ljYWxfY2F0 YWxvZyhyZWwtPnJkX2luZGV4LT5pbmRyZWxpZCk7CiAJeGxyZWNfcmV1c2Uubm9kZSA9IHJl bC0+cmRfbm9kZTsKIAl4bHJlY19yZXVzZS5ibG9jayA9IGJsa25vOwogCXhscmVjX3JldXNl LmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwpAQCAtMTMyMyw2ICsxMzI1 LDggQEAgX2J0X2RlbGl0ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsIFRy YW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJ CXhsX2J0cmVlX2RlbGV0ZSB4bHJlY19kZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRlLm9uQ2F0 YWxvZ1RhYmxlID0KKwkJCVJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmco aGVhcFJlbCk7CiAJCXhscmVjX2RlbGV0ZS5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVt b3ZlZFhpZDsKIAkJeGxyZWNfZGVsZXRlLm5kZWxldGVkID0gbmRlbGV0YWJsZTsKIAkJeGxy ZWNfZGVsZXRlLm51cGRhdGVkID0gbnVwZGF0YWJsZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3ZhY3V1bS5jCmluZGV4IDBkMDJhMDIyMjIuLjM5NzY0OGQyYWEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtMjcsNiArMjcsNyBAQAogI2lu Y2x1ZGUgInN0b3JhZ2UvaW5kZXhmc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIK ICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hl LmgiCiAKIAogLyogRW50cnkgaW4gcGVuZGluZy1saXN0IG9mIFRJRHMgd2UgbmVlZCB0byBy ZXZpc2l0ICovCkBAIC01MDMsNiArNTA0LDEzIEBAIHZhY3V1bVJlZGlyZWN0QW5kUGxhY2Vo b2xkZXIoUmVsYXRpb24gaW5kZXgsIEJ1ZmZlciBidWZmZXIpCiAJc3BneGxvZ1ZhY3V1bVJl ZGlyZWN0IHhscmVjOwogCUdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0OwogCisJLyoKKwkgKiBU aGVyZSBpcyBubyBjaGFuY2Ugb2YgZW5kbGVzcyByZWN1cnNpb24gZXZlbiB3aGVuIHdlIGFy ZSBkb2luZyBjYXRhbG9nCisJICogYWNjZXNlcyBoZXJlOyBiZWNhdXNlLCBzcGdpc3QgaXMg bmV2ZXIgdXNlZCBmb3IgY2F0YWxvZ3MuIENoZWNrCisJICogY29tbWVudHMgaW4gUmVsYXRp b25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZygpLgorCSAqLworCXhscmVjLm9uQ2F0 YWxvZ1RhYmxlID0gZ2V0X3JlbF9sb2dpY2FsX2NhdGFsb2coaW5kZXgtPnJkX2luZGV4LT5p bmRyZWxpZCk7CisKIAl4bHJlYy5uVG9QbGFjZWhvbGRlciA9IDA7CiAJeGxyZWMubmV3ZXN0 UmVkaXJlY3RYaWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwppbmRleCA4NWM0NThiYzQ2Li42NWNjMzc4OTQ3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1 ZGUgImFjY2Vzcy9oYXNoLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgog I2luY2x1ZGUgImFjY2Vzcy9uYnRyZWUuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIK ICNpbmNsdWRlICJib290c3RyYXAvYm9vdHN0cmFwLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9j YXRhbG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbW9wLmgiCkBAIC0yMDM1 LDYgKzIwMzcsMjAgQEAgZ2V0X3JlbF9wZXJzaXN0ZW5jZShPaWQgcmVsaWQpCiAJcmV0dXJu IHJlc3VsdDsKIH0KIAorYm9vbAorZ2V0X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lkIHJlbGlk KQoreworCWJvb2wJcmVzOworCVJlbGF0aW9uIHJlbDsKKworCS8qIGFzc3VtZSBwcmV2aW91 c2x5IGxvY2tlZCAqLworCXJlbCA9IHRhYmxlX29wZW4ocmVsaWQsIE5vTG9jayk7CisJcmVz ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOworCXRhYmxl X2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCXJldHVybiByZXM7Cit9CisKIAogLyoJCQkJLS0t LS0tLS0tLSBUUkFOU0ZPUk0gQ0FDSEUgLS0tLS0tLS0tLQkJCQkJCSAqLwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdF9wcml2YXRlLmgKaW5kZXggNTUzZDM2NGUyZC4uYTBmNDAxNTU1NiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaApAQCAtNDQwLDggKzQ0MCw4IEBAIGV4dGVy biBYTG9nUmVjUHRyIGdpc3RYTG9nUGFnZURlbGV0ZShCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CQkJIEZ1bGxUcmFuc2FjdGlvbklkIHhpZCwgQnVmZmVyIHBhcmVudEJ1ZmZlciwKIAkJCQkJ CQkJCSBPZmZzZXROdW1iZXIgZG93bmxpbmtPZmZzZXQpOwogCi1leHRlcm4gdm9pZCBnaXN0 WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLAotCQkJCQkJ CSAgRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCk7CitleHRlcm4gdm9pZCBn aXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJ ICBCbG9ja051bWJlciBibGtubywgRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhp ZCk7CiAKIGV4dGVybiBYTG9nUmVjUHRyIGdpc3RYTG9nVXBkYXRlKEJ1ZmZlciBidWZmZXIs CiAJCQkJCQkJCSBPZmZzZXROdW1iZXIgKnRvZGVsZXRlLCBpbnQgbnRvZGVsZXRlLApAQCAt NDg1LDcgKzQ4NSw3IEBAIGV4dGVybiBib29sIGdpc3Rwcm9wZXJ0eShPaWQgaW5kZXhfb2lk LCBpbnQgYXR0bm8sCiBleHRlcm4gYm9vbCBnaXN0Zml0cGFnZShJbmRleFR1cGxlICppdHZl YywgaW50IGxlbik7CiBleHRlcm4gYm9vbCBnaXN0bm9zcGFjZShQYWdlIHBhZ2UsIEluZGV4 VHVwbGUgKml0dmVjLCBpbnQgbGVuLCBPZmZzZXROdW1iZXIgdG9kZWxldGUsIFNpemUgZnJl ZXNwYWNlKTsKIGV4dGVybiB2b2lkIGdpc3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZm ZXIgYnVmKTsKLWV4dGVybiBCdWZmZXIgZ2lzdE5ld0J1ZmZlcihSZWxhdGlvbiByKTsKK2V4 dGVybiBCdWZmZXIgZ2lzdE5ld0J1ZmZlcihSZWxhdGlvbiBoZWFwUmVsLCBSZWxhdGlvbiBy KTsKIGV4dGVybiBib29sIGdpc3RQYWdlUmVjeWNsYWJsZShQYWdlIHBhZ2UpOwogZXh0ZXJu IHZvaWQgZ2lzdGZpbGxidWZmZXIoUGFnZSBwYWdlLCBJbmRleFR1cGxlICppdHVwLCBpbnQg bGVuLAogCQkJCQkJICAgT2Zmc2V0TnVtYmVyIG9mZik7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5o CmluZGV4IGZkNTE0NGYyNTguLjczOTk5ZGRjNzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2FjY2Vzcy9naXN0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5o CkBAIC00OSw5ICs0OSw5IEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVVwZGF0ZQog ICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ0RlbGV0ZQogeworCWJvb2wJCW9uQ2F0YWxv Z1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAl1aW50MTYJCW50 b2RlbGV0ZTsJCS8qIG51bWJlciBvZiBkZWxldGVkIG9mZnNldHMgKi8KLQogCS8qCiAJICog SW4gcGF5bG9hZCBvZiBibGsgMCA6IHRvZGVsZXRlIE9mZnNldE51bWJlcnMKIAkgKi8KQEAg LTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dQYWdlRGVsZXRlCiAgKi8K IHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVJldXNlCiB7CisJYm9vbAkJb25DYXRhbG9n VGFibGU7CiAJUmVsRmlsZU5vZGUgbm9kZTsKIAlCbG9ja051bWJlciBibG9jazsKIAlGdWxs VHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkRnVsbFhpZDsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hs b2cuaAppbmRleCA0MzUzYTMyZGJiLi45NGMzMjkyYzFlIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hf eGxvZy5oCkBAIC0yNTAsNiArMjUwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF9pbml0 X2JpdG1hcF9wYWdlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hhc2hfdmFjdXVtX29uZV9w YWdlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RS ZW1vdmVkWGlkOwogCWludAkJCW50dXBsZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9n LmgKaW5kZXggMTc4ZDQ5NzEwYS4uNmM0YzI2YzJmZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bV94bG9nLmgKQEAgLTIzOSw2ICsyMzksNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Vw ZGF0ZQogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2NsZWFuCiB7CisJYm9vbAkJb25D YXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQx NgkJbnJlZGlyZWN0ZWQ7CiAJdWludDE2CQluZGVhZDsKQEAgLTI1NCw2ICsyNTUsNyBAQCB0 eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2NsZWFuCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hl YXBfY2xlYW51cF9pbmZvCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5v ZGUgbm9kZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiB9IHhsX2hlYXBf Y2xlYW51cF9pbmZvOwpAQCAtMzM0LDYgKzMzNiw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hl YXBfZnJlZXplX3R1cGxlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3Bh Z2UKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGN1dG9mZl94 aWQ7CiAJdWludDE2CQludHVwbGVzOwogfSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwpAQCAtMzQ4 LDYgKzM1MSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKICAqLwog dHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFi bGU7CiAJVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkOwogCXVpbnQ4CQlmbGFnczsKIH0geGxf aGVhcF92aXNpYmxlOwpAQCAtMzk3LDcgKzQwMSw3IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rl c2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBj b25zdCBjaGFyICpoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhl YXBfeGxvZ19sb2dpY2FsX3Jld3JpdGUoWExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJu IFhMb2dSZWNQdHIgbG9nX2hlYXBfY2xlYW51cF9pbmZvKFJlbEZpbGVOb2RlIHJub2RlLAor ZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfY2xlYW51cF9pbmZvKFJlbGF0aW9uIHJlbCwK IAkJCQkJCQkJCQlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpOwogZXh0ZXJuIFhM b2dSZWNQdHIgbG9nX2hlYXBfY2xlYW4oUmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkJIE9mZnNldE51bWJlciAqcmVkaXJlY3RlZCwgaW50IG5yZWRpcmVjdGVkLApA QCAtNDE2LDcgKzQyMCw3IEBAIGV4dGVybiBib29sIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVw bGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLAogCQkJCQkJCQkJICBib29sICp0b3RhbGx5X2Zy b3plbik7CiBleHRlcm4gdm9pZCBoZWFwX2V4ZWN1dGVfZnJlZXplX3R1cGxlKEhlYXBUdXBs ZUhlYWRlciB0dXBsZSwKIAkJCQkJCQkJCSAgeGxfaGVhcF9mcmVlemVfdHVwbGUgKnhscmVj X3RwKTsKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZU5vZGUg cm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFw X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJCSAg IEJ1ZmZlciB2bV9idWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggZmxh Z3MpOwogCiAjZW5kaWYJCQkJCQkJLyogSEVBUEFNX1hMT0dfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4 bG9nLmgKaW5kZXggN2FlNWM5OGMyYi4uNjk5NWRjMjU1OCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxv Zy5oCkBAIC0xODUsNiArMTg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVkdXAK ICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfcmV1c2VfcGFnZQogeworCWJvb2wJCW9u Q2F0YWxvZ1RhYmxlOwogCVJlbEZpbGVOb2RlIG5vZGU7CiAJQmxvY2tOdW1iZXIgYmxvY2s7 CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwpAQCAtMjMyLDYgKzIzMyw3IEBA IHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX3ZhY3V1bQogCiB0eXBlZGVmIHN0cnVjdCB4bF9i dHJlZV9kZWxldGUKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWludDE2CQluZGVsZXRlZDsKIAl1aW50MTYJCW51cGRh dGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKaW5kZXggNjk0MDViNTc1MC4uMDZiOTFmNGQwNCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgdHlwZWRlZiBzdHJ1 Y3Qgc3BneGxvZ1ZhY3V1bVJvb3QKIAogdHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJl ZGlyZWN0CiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJdWludDE2CQluVG9QbGFjZWhv bGRlcjsgLyogbnVtYmVyIG9mIHJlZGlyZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAqLwog CU9mZnNldE51bWJlciBmaXJzdFBsYWNlaG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRlciB0 dXBsZSB0byByZW1vdmUgKi8KIAlUcmFuc2FjdGlvbklkIG5ld2VzdFJlZGlyZWN0WGlkOwkv KiBuZXdlc3QgWElEIG9mIHJlbW92ZWQgcmVkaXJlY3RzICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oCmluZGV4IGFlNzIwYzE0OTYuLjhmZDMxMjllYWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oCkBAIC0xMzgsNiArMTM4LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X3JlbF9yZWxraW5kKE9p ZCByZWxpZCk7CiBleHRlcm4gYm9vbCBnZXRfcmVsX3JlbGlzcGFydGl0aW9uKE9pZCByZWxp ZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdGFibGVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJu IGNoYXIgZ2V0X3JlbF9wZXJzaXN0ZW5jZShPaWQgcmVsaWQpOworZXh0ZXJuIGJvb2wgZ2V0 X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5z Zm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwog ZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX3Rvc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwg TGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlw aWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVk ZS91dGlscy9yZWwuaAppbmRleCAxMGI2Mzk4MmMwLi5mODAwNmE3MTI1IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwu aApAQCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3R1cGRlc2MuaCIKICNp bmNsdWRlICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2lu ZGV4LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtMzQ1LDYg KzM0Niw5IEBAIHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0aW9ucwogICogUmVsYXRpb25Jc1Vz ZWRBc0NhdGFsb2dUYWJsZQogICoJCVJldHVybnMgd2hldGhlciB0aGUgcmVsYXRpb24gc2hv dWxkIGJlIHRyZWF0ZWQgYXMgYSBjYXRhbG9nIHRhYmxlCiAgKgkJZnJvbSB0aGUgcG92IG9m IGxvZ2ljYWwgZGVjb2RpbmcuICBOb3RlIG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisg KgkJVGhpcyBkZWZpbml0aW9uIHNob3VsZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVy Zm9ybXMgY2F0YWxvZworICoJCWFjY2Vzczsgb3RoZXJ3aXNlIGl0IG1heSBjYXVzZSBpbmZp bml0ZSByZWN1cnNpb24uIENoZWNrIHRoZSBjb21tZW50cworICoJCWluIFJlbGF0aW9uSXNB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoKSBmb3IgZGV0YWlscy4KICAqLwogI2RlZmlu ZSBSZWxhdGlvbklzVXNlZEFzQ2F0YWxvZ1RhYmxlKHJlbGF0aW9uKQlcCiAJKChyZWxhdGlv biktPnJkX29wdGlvbnMgJiYgXApAQCAtNjE2LDYgKzYyMCwxMSBAQCB0eXBlZGVmIHN0cnVj dCBWaWV3T3B0aW9ucwogICogUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGlu ZwogICoJCVRydWUgaWYgd2UgbmVlZCB0byBsb2cgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGhh dmUgYWNjZXNzIHZpYQogICoJCWRlY29kaW5nIHNuYXBzaG90LgorICoJCVRoaXMgZGVmaW5p dGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cK KyAqCQlhY2Nlc3MuIE90aGVyd2lzZSwgZS5nLiBsb2dnaW5nIGEgV0FMIGVudHJ5IGZvciBj YXRhbG9nIHJlbGF0aW9uIG1heQorICoJCWludm9rZSB0aGlzIGZ1bmN0aW9uLCB3aGljaCB3 aWxsIGluIHR1cm4gZG8gY2F0YWxvZyBhY2Nlc3MsIHdoaWNoIG1heQorICoJCWluIHR1cm4g Y2F1c2UgYW5vdGhlciBzaW1pbGFyIFdBTCBlbnRyeSB0byBiZSBsb2dnZWQsIGxlYWRpbmcg dG8KKyAqCQlpbmZpbml0ZSByZWN1cnNpb24uCiAgKi8KICNkZWZpbmUgUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNhbElu Zm9BY3RpdmUoKSAmJiBcCi0tIAoyLjE0LjUKCg== --------------474A7B3E559DABCE8495AB93 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v8-0001-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v8-0001-Allow-logical-decoding-on-standby.patch" RnJvbSA5N2YxMWRmY2ZhYmU2MTY2MGExOTJjMWUzY2U4ZTVlNzljMWQ0NTg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyNiBKYW4gMjAyMSAwOTowODo0NiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjggMS81XSBBbGxvdyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkuCgpBbGxvdyBh IGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkIG9uIHN0YW5kYnkuIFJlc3RyaWN0IGl0cyB1 c2FnZQpvciBpdHMgY3JlYXRpb24gaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgbGVzcyB0 aGFuIGxvZ2ljYWwuCkR1cmluZyBzbG90IGNyZWF0aW9uLCBpdCdzIHJlc3RhcnRfbHNuIGlz IHNldCB0byB0aGUgbGFzdCByZXBsYXllZApMU04uIEVmZmVjdGl2ZWx5LCBhIGxvZ2ljYWwg c2xvdCBjcmVhdGlvbiBvbiBzdGFuZGJ5IHdhaXRzIGZvciBhbgp4bF9ydW5uaW5nX3hhY3Qg cmVjb3JkIHRvIGFycml2ZSBmcm9tIHByaW1hcnkuIENvbmZsaWN0aW5nIHNsb3RzCndvdWxk IGJlIGhhbmRsZWQgaW4gbmV4dCBjb21taXRzLgoKQW5kcmVzIEZyZXVuZCBhbmQgQW1pdCBL aGFuZGVrYXIuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAg ICAgfCAxMSArKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMgIHwgMjIgKysrKysrKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2xvZ2ljYWwuYyB8IDM3ICsrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90LmMgICAgICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwg MTAgKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8 ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25z KC0pCiAgIDUuNiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDUuOCUgc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA0Ny43JSBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggY2MwMDdiODk2My4u ODZlZWRiZjljMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTA2MSw2 ICs1MDYxLDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVh ZENvbnRyb2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRo ZSBjb250cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisg KiBjb25zaWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBi ZSBkaWZmZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9u IHN0YW5kYnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZlbCh2b2lkKQorewor CXJldHVybiBDb250cm9sRmlsZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5pdGlhbGl6 YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCBhZmExZGYwMGQwLi5mMDFjYjJlYzk0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIx NCwxMSArMjE0LDMxIEBAIERlY29kZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpj dHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhl cmUuCiAJCQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToK KwkJeworCQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0 ZXJfY2hhbmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJ CSAqIElmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxv Z2ljYWwsIHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2Fs IHNsb3RzIGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMg b24gc3RhbmRieSBnZXQgZHJvcHBlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMg cmVwbGF5ZWQ7IGFuZCBmdXJ0aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJ CQkgKiB3YWwgbGV2ZWwgaXMgbm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0 aW9ucyBhcmUgbm90CisJCQkgKiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1h eSBjcmVlcCBpbiB3aGlsZSB0aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2Vk LiAgSGVuY2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYgKHhscmVjLT53YWxf bGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJ CQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgor CQkJCQkJCQkid2FsX2xldmVsID49IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwkJCWJyZWFr OworCQl9CiAJCWNhc2UgWExPR19OT09QOgogCQljYXNlIFhMT0dfTkVYVE9JRDoKIAkJY2Fz ZSBYTE9HX1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JBQ0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19Q QVJBTUVURVJfQ0hBTkdFOgogCQljYXNlIFhMT0dfUkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBY TE9HX0ZQV19DSEFOR0U6CiAJCWNhc2UgWExPR19GUElfRk9SX0hJTlQ6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IDA5NzdhZWM3MTEuLjY3 YTAzZTBmYmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCkBAIC0xMTksMjMgKzExOSwyMiBAQCBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVt ZW50cyh2b2lkKQogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFV SVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMg YSBkYXRhYmFzZSBjb25uZWN0aW9uIikpKTsKIAotCS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBn b3QgdG8gY2hhbmdlIHRoYXQgc29tZWRheSBzb29uLi4uCi0JICoKLQkgKiBUaGVyZSdzIGJh c2ljYWxseSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0byBhbGxvdyB0aGlzOgotCSAqIDEpIFdl IG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkgYW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhl IHRpbWVsaW5lIGEKLQkgKgkgIExTTiBiZWxvbmdzIHRvCi0JICogMikgV2UgbmVlZCB0byBm b3JjZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0byBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBz bwotCSAqCSAgdGhlIHByaW1hcnkgY2Fubm90IHJlbW92ZSByb3dzIHdlIG5lZWQuCi0JICog Mykgc3VwcG9ydCBkcm9wcGluZyByZXBsaWNhdGlvbiBzbG90cyByZWZlcnJpbmcgdG8gYSBk YXRhYmFzZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8uIFRoZXJlIGNhbid0IGJlIGFueSBhY3Rp dmUgb25lcyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkgKgkgIGNvbmZsaWN0cywgc28gdGhhdCBz aG91bGQgYmUgcmVsYXRpdmVseSBlYXN5LgotCSAqIC0tLS0KLQkgKi8KIAlpZiAoUmVjb3Zl cnlJblByb2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2Rp bmcgY2Fubm90IGJlIHVzZWQgd2hpbGUgaW4gcmVjb3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJ ICogVGhpcyBjaGVjayBtYXkgaGF2ZSByYWNlIGNvbmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgor CQkgKiBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5kaWNhdGVzIHRoYXQgd2FsX2xldmVsIGhh cyBjaGFuZ2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gZXhpc3Rpbmcg bG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gQW5kIHRvCisJCSAqIGF2b2lkIHJhY2VzIGFy b3VuZCBjcmVhdGluZyBhIG5ldyBzbG90LAorCQkgKiBDaGVja0xvZ2ljYWxEZWNvZGluZ1Jl cXVpcmVtZW50cygpIGlzIGNhbGxlZCBvbmNlIGJlZm9yZSBjcmVhdGluZworCQkgKiB0aGUg c2xvdCwgYW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRlY29kaW5nIGlzIGluaXRpYWxseSBzdGFy dGluZyB1cC4KKwkJICovCisJCWlmIChHZXRBY3RpdmVXYWxMZXZlbCgpIDwgV0FMX0xFVkVM X0xPR0lDQUwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09C SkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNh bCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsID49 IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzAsNiArMzI5LDEy IEBAIENyZWF0ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxv Z2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0 OwogCisJLyoKKwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQg d2hpbGUgY3JlYXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRo aXMgZnVuY3Rpb24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMo KTsKKwogCS8qIHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNs b3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCBlMDBjN2ZmYzAxLi44YjAyZDJm NDM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xMDk3LDM3ICsxMDk3LDU2IEBA IFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwodm9pZCkKIAkJLyoKIAkJICogRm9yIGxvZ2lj YWwgc2xvdHMgbG9nIGEgc3RhbmRieSBzbmFwc2hvdCBhbmQgc3RhcnQgbG9naWNhbCBkZWNv ZGluZwogCQkgKiBhdCBleGFjdGx5IHRoYXQgcG9zaXRpb24uIFRoYXQgYWxsb3dzIHRoZSBz bG90IHRvIHN0YXJ0IHVwIG1vcmUKLQkJICogcXVpY2tseS4KKwkJICogcXVpY2tseS4gQnV0 IG9uIGEgc3RhbmRieSB3ZSBjYW5ub3QgZG8gV0FMIHdyaXRlcywgc28ganVzdCB1c2UgdGhl CisJCSAqIHJlcGxheSBwb2ludGVyOyBlZmZlY3RpdmVseSwgYW4gYXR0ZW1wdCB0byBjcmVh dGUgYSBsb2dpY2FsIHNsb3Qgb24KKwkJICogc3RhbmRieSB3aWxsIGNhdXNlIGl0IHRvIHdh aXQgZm9yIGFuIHhsX3J1bm5pbmdfeGFjdCByZWNvcmQgdG8gYmUKKwkJICogbG9nZ2VkIGlu ZGVwZW5kZW50bHkgb24gdGhlIHByaW1hcnksIHNvIHRoYXQgYSBzbmFwc2hvdCBjYW4gYmUg YnVpbHQKKwkJICogdXNpbmcgdGhlIHJlY29yZC4KIAkJICoKLQkJICogVGhhdCdzIG5vdCBu ZWVkZWQgKG9yIGluZGVlZCBoZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMgdGhleSds bAotCQkgKiBzdGFydCByZXBsYXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55 d2F5LiBJbnN0ZWFkIHJldHVybgotCQkgKiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVk byBMU04uIFdoaWxlIHRoYXQgc2xpZ2h0bHkgaW5jcmVhc2VzCi0JCSAqIHRoZSBjaGFuY2Ug dGhhdCB3ZSBoYXZlIHRvIHJldHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAgaGFzIHRv Ci0JCSAqIHN0YXJ0IHJlcGxheSBhdC4KKwkJICogTm9uZSBvZiB0aGlzIGlzIG5lZWRlZCAo b3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlzaWNhbCBzbG90cyBhcworCQkgKiB0aGV5J2xs IHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIElu c3RlYWQKKwkJICogcmV0dXJuIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4g V2hpbGUgdGhhdCBzbGlnaHRseQorCQkgKiBpbmNyZWFzZXMgdGhlIGNoYW5jZSB0aGF0IHdl IGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cAorCQkgKiBoYXMgdG8g c3RhcnQgcmVwbGF5IGF0LgogCQkgKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNsb3QpKQor CQkJcmVzdGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJlY292ZXJ5 SW5Qcm9ncmVzcygpKQorCQl7CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQ dHIoTlVMTCk7CisJCQkvKgorCQkJICogUmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBw YXN0IHRoZSBlbmQgb2YgdGhlIHJlY29yZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBh Z2UgYm91bmRhcnksIGl0IHdpbGwgbm90IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAq IHN0YXJ0IG9mIGEgcmVjb3JkLCBzbyBidW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVy LgorCQkJICovCisJCQlpZiAoIVhSZWNPZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsK KwkJCQlpZiAocmVzdGFydF9sc24gJSBYTE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVS Uk9SLCAiaW52YWxpZCByZXBsYXkgcG9pbnRlciIpOworCQkJCS8qIEZvciB0aGUgZmlyc3Qg cGFnZSBvZiBhIHNlZ21lbnQgZmlsZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYg KFhMb2dTZWdtZW50T2Zmc2V0KHJlc3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAw KQorCQkJCQlyZXN0YXJ0X2xzbiArPSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJ CQkJCXJlc3RhcnRfbHNuICs9IFNpemVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KKwkJfQorCQll bHNlCisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGlu TG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9 IHJlc3RhcnRfbHNuOworCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwogCQlp ZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCiAJCXsK IAkJCVhMb2dSZWNQdHIJZmx1c2hwdHI7CiAKLQkJCS8qIHN0YXJ0IGF0IGN1cnJlbnQgaW5z ZXJ0IHBvc2l0aW9uICovCi0JCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIo KTsKLQkJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5y ZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5t dXRleCk7Ci0KIAkJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0 byBzdGFydCAqLwogCQkJZmx1c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAogCQkJ LyogYW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8gZGlzayAqLwogCQkJWExvZ0ZsdXNo KGZsdXNocHRyKTsKIAkJfQotCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNuID0gR2V0UmVk b1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90 LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2Uo JnNsb3QtPm11dGV4KTsKLQkJfQogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFz dCBhcyBwb3NzaWJsZSAqLwogCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNO KCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDg1NDVjNmM0MjMu LjY3OTllNjdmMTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0y ODc4LDEwICsyODc4LDEyIEBAIFhMb2dTZW5kTG9naWNhbCh2b2lkKQogCSAqIElmIGZpcnN0 IHRpbWUgdGhyb3VnaCBpbiB0aGlzIHNlc3Npb24sIGluaXRpYWxpemUgZmx1c2hQdHIuICBP dGhlcndpc2UsCiAJICogd2Ugb25seSBuZWVkIHRvIHVwZGF0ZSBmbHVzaFB0ciBpZiBFbmRS ZWNQdHIgaXMgcGFzdCBpdC4KIAkgKi8KLQlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dS ZWNQdHIpCi0JCWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoKTsKLQllbHNlIGlmIChsb2dp Y2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0JCWZs dXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhM b2dSZWNQdHIgfHwKKwkJbG9naWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRy ID49IGZsdXNoUHRyKQorCXsKKwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dhbHNlbmRl ciA/CisJCQkJCUdldFN0YW5kYnlGbHVzaFJlY1B0cigpIDogR2V0Rmx1c2hSZWNQdHIoKSk7 CisJfQogCiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qgb3VyIGZsdXNoUHRyLCBp dCBtZWFucyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5y ZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2FjY2Vzcy94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDc1ZWMx MDczYmQuLjE2Y2EwMDMxZDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9n LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaApAQCAtMzI0LDYgKzMyNCw3IEBA IGV4dGVybiBTaXplIFhMT0dTaG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBYTE9HU2ht ZW1Jbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lkKTsKIGV4dGVy biB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOworZXh0ZXJuIFdh bExldmVsIEdldEFjdGl2ZVdhbExldmVsKHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnR1cFhM T0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERhdHVtIGFy Zyk7CiBleHRlcm4gdm9pZCBJbml0WExPR0FjY2Vzcyh2b2lkKTsKLS0gCjIuMTQuNQoK --------------474A7B3E559DABCE8495AB93--