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 1l1T2C-0007EP-SO for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Jan 2021 11:49:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l1T2B-0001fm-Py for pgsql-hackers@arkaria.postgresql.org; Mon, 18 Jan 2021 11:49:23 +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 1l1T1k-0007Wc-Mh for pgsql-hackers@lists.postgresql.org; Mon, 18 Jan 2021 11:48:57 +0000 Received: from smtp-fw-6001.amazon.com ([52.95.48.154]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l1T1f-0006hC-Gl for pgsql-hackers@postgresql.org; Mon, 18 Jan 2021 11:48:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1610970532; x=1642506532; h=to:cc:references:from:message-id:date:mime-version: in-reply-to:subject; bh=5PhT60+hdK60HXin/yBN+mz/nykjbJLdmf6nvJDxixM=; b=r6RYXMBL/UUgxY9pSPlrVGV2/7nMn1iqineaQdXAL4iGGSvWTBqtQ2UY k32Zfq5+d9kRIRAH5orsn2WHNM5EJttxvwEsRT6oPvLITXWghKD0/bwuY pWDZ/lQW8XLMbAiFxHbiTJSpQzhAVvuXF2DIQGQ4bpIHeQjOqpjJdFXX2 8=; X-Amazon-filename: v8-0001-Allow-logical-decoding-on-standby.patch, v8-0002-Add-info-in-WAL-records-in-preparation-for-logica.patch, v8-0003-Handle-logical-slot-conflicts-on-standby.patch, v8-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v8-0005-Doc-changes-describing-details-about-logical-deco.patch X-IronPort-AV: E=Sophos;i="5.79,356,1602547200"; d="scan'208,217,223";a="79741864" Subject: Re: [UNVERIFIED SENDER] Re: Minimal logical decoding on standbys Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1d-e69428c4.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-6001.iad6.amazon.com with ESMTP; 18 Jan 2021 11:48:44 +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-e69428c4.us-east-1.amazon.com (Postfix) with ESMTPS id 7646DC262D; Mon, 18 Jan 2021 11:48:40 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.161.8) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 18 Jan 2021 11:48:36 +0000 To: , Alvaro Herrera CC: 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: Mon, 18 Jan 2021 12:48:31 +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="------------7F51D856A8B82A6093A90135" Content-Language: en-US X-Originating-IP: [10.43.161.8] X-ClientProxiedBy: EX13D25UWB001.ant.amazon.com (10.43.161.245) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --------------7F51D856A8B82A6093A90135 Content-Type: multipart/alternative; boundary="------------CADD18565F97226158BA4296" --------------CADD18565F97226158BA4296 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi, On 12/15/20 7:24 PM, Fabrízio de Royes Mello wrote: > > On Wed, Mar 18, 2020 at 4:50 PM Alvaro Herrera > > wrote: > > > > > > well, not "forever", but: > > > > $ make check PROVE_TESTS=t/019_standby_logical_decoding_conflicts.pl > PROVE_FLAGS=-v > > ... > > cd /pgsql/source/master/src/test/recovery && > TESTDIR='/home/alvherre/mnt/crypt/alvherre/Code/pgsql/build/master/src/test/recovery' > PATH="/pgsql/build/master/tmp_install/pgsql/install/master/bin:$PATH" > LD_LIBRARY_PATH="/pgsql/build/master/tmp_install/pgsql/install/master/lib" >  PGPORT='655432' > PG_REGRESS='/home/alvherre/mnt/crypt/alvherre/Code/pgsql/build/master/src/test/recovery/../../../src/test/regress/pg_regress' > REGRESS_SHLIB='/pgsql/build/master/src/test/regress/regress.so' > /usr/bin/prove -I /pgsql/source/master/src/test/perl/ -I > /pgsql/source/master/src/test/recovery -v > t/019_standby_logical_decoding_conflicts.pl > > > t/019_standby_logical_decoding_conflicts.pl > .. > > 1..24 > > ok 1 - dropslot on standby created > > ok 2 - activeslot on standby created > > # poll_query_until timed out executing this query: > > # SELECT '0/35C9190' <= replay_lsn AND state = 'streaming' FROM > pg_catalog.pg_stat_replication WHERE application_name = 'standby'; > > # expecting this output: > > # t > > # last actual query output: > > # > > # with stderr: > > Bailout called.  Further testing stopped:  system pg_ctl failed > > Bail out!  system pg_ctl failed > > FAILED--Further testing stopped: system pg_ctl failed > > make: *** [Makefile:19: check] Error 255 > > > > After rebase and did minimal tweaks (duplicated oid, TAP tests > numbering) I'm facing similar problem but in other place: > > > make -C src/test/recovery check > PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl > PROVE_FLAGS=-v > ... > /usr/bin/mkdir -p '/data/src/pg/main/src/test/recovery'/tmp_check > cd . && TESTDIR='/data/src/pg/main/src/test/recovery' > PATH="/d/src/pg/main/tmp_install/home/fabrizio/pgsql/logical-decoding-standby/bin:$PATH" > LD_LIBRARY_PATH="/d/src/pg/main/tmp_install/home/fabrizio/pgsql/logical-decoding-standby/lib" >  PGPORT='65432' > PG_REGRESS='/data/src/pg/main/src/test/recovery/../../../src/test/regress/pg_regress' > REGRESS_SHLIB='/d/src/pg/main/src/test/regress/regress.so' > /usr/bin/prove -I ../../../src/test/perl/ -I . -v > t/023_standby_logical_decoding_conflicts.pl > > t/023_standby_logical_decoding_conflicts.pl > .. > 1..24 > ok 1 - dropslot on standby created > ok 2 - activeslot on standby created > not ok 3 - dropslot on standby dropped > > #   Failed test 'dropslot on standby dropped' > #   at t/023_standby_logical_decoding_conflicts.pl > line 67. > #          got: 'logical' > #     expected: '' > not ok 4 - activeslot on standby dropped > > #   Failed test 'activeslot on standby dropped' > #   at t/023_standby_logical_decoding_conflicts.pl > line 68. > #          got: 'logical' > #     expected: '' > > > TAP tests hang forever in `check_slots_dropped` exactly here: > >     # our client should've terminated in response to the walsender error >     eval { >         $slot_user_handle->finish; >     }; 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) So that now the tests are passing: t/023_standby_logical_decoding_conflicts.pl .. 1..24 ok 1 - dropslot on standby created ok 2 - activeslot on standby created ok 3 - dropslot on standby dropped ok 4 - activeslot on standby dropped ok 5 - pg_recvlogical exited non-zero # ok 6 - recvlogical recovery conflict ok 7 - recvlogical error detail ok 8 - dropslot on standby created ok 9 - activeslot on standby created ok 10 - dropslot on standby dropped ok 11 - activeslot on standby dropped ok 12 - pg_recvlogical exited non-zero # ok 13 - recvlogical recovery conflict ok 14 - recvlogical error detail ok 15 - otherslot on standby created ok 16 - dropslot on standby created ok 17 - activeslot on standby created ok 18 - database dropped on standby ok 19 - dropslot on standby dropped ok 20 - activeslot on standby dropped ok 21 - pg_recvlogical exited non-zero # ok 22 - recvlogical recovery conflict ok 23 - recvlogical error detail ok 24 - otherslot on standby not dropped ok All tests successful. Files=1, Tests=24,  4 wallclock secs ( 0.02 usr  0.00 sys + 1.27 cusr  0.37 csys =  1.66 CPU) Result: PASS Attached is the new version. Bertrand --------------CADD18565F97226158BA4296 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit

Hi,

On 12/15/20 7:24 PM, Fabrízio de Royes Mello wrote:

On Wed, Mar 18, 2020 at 4:50 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
>
>
> well, not "forever", but:
>
> $ make check PROVE_TESTS=t/019_standby_logical_decoding_conflicts.pl PROVE_FLAGS=-v
> ...
> cd /pgsql/source/master/src/test/recovery && TESTDIR='/home/alvherre/mnt/crypt/alvherre/Code/pgsql/build/master/src/test/recovery' PATH="/pgsql/build/master/tmp_install/pgsql/install/master/bin:$PATH" LD_LIBRARY_PATH="/pgsql/build/master/tmp_install/pgsql/install/master/lib"  PGPORT='655432' PG_REGRESS='/home/alvherre/mnt/crypt/alvherre/Code/pgsql/build/master/src/test/recovery/../../../src/test/regress/pg_regress' REGRESS_SHLIB='/pgsql/build/master/src/test/regress/regress.so' /usr/bin/prove -I /pgsql/source/master/src/test/perl/ -I /pgsql/source/master/src/test/recovery -v t/019_standby_logical_decoding_conflicts.pl
> t/019_standby_logical_decoding_conflicts.pl ..
> 1..24
> ok 1 - dropslot on standby created
> ok 2 - activeslot on standby created
> # poll_query_until timed out executing this query:
> # SELECT '0/35C9190' <= replay_lsn AND state = 'streaming' FROM pg_catalog.pg_stat_replication WHERE application_name = 'standby';
> # expecting this output:
> # t
> # last actual query output:
> #
> # with stderr:
> Bailout called.  Further testing stopped:  system pg_ctl failed
> Bail out!  system pg_ctl failed
> FAILED--Further testing stopped: system pg_ctl failed
> make: *** [Makefile:19: check] Error 255
>

After rebase and did minimal tweaks (duplicated oid, TAP tests numbering) I'm facing similar problem but in other place:


make -C src/test/recovery check PROVE_TESTS=t/023_standby_logical_decoding_conflicts.pl PROVE_FLAGS=-v
...
/usr/bin/mkdir -p '/data/src/pg/main/src/test/recovery'/tmp_check
cd . && TESTDIR='/data/src/pg/main/src/test/recovery' PATH="/d/src/pg/main/tmp_install/home/fabrizio/pgsql/logical-decoding-standby/bin:$PATH" LD_LIBRARY_PATH="/d/src/pg/main/tmp_install/home/fabrizio/pgsql/logical-decoding-standby/lib"  PGPORT='65432' PG_REGRESS='/data/src/pg/main/src/test/recovery/../../../src/test/regress/pg_regress' REGRESS_SHLIB='/d/src/pg/main/src/test/regress/regress.so' /usr/bin/prove -I ../../../src/test/perl/ -I . -v t/023_standby_logical_decoding_conflicts.pl
t/023_standby_logical_decoding_conflicts.pl ..
1..24
ok 1 - dropslot on standby created
ok 2 - activeslot on standby created
not ok 3 - dropslot on standby dropped

#   Failed test 'dropslot on standby dropped'
#   at t/023_standby_logical_decoding_conflicts.pl line 67.
#          got: 'logical'
#     expected: ''
not ok 4 - activeslot on standby dropped

#   Failed test 'activeslot on standby dropped'
#   at t/023_standby_logical_decoding_conflicts.pl line 68.
#          got: 'logical'
#     expected: ''


TAP tests hang forever in `check_slots_dropped` exactly here:

    # our client should've terminated in response to the walsender error
    eval {
        $slot_user_handle->finish;
    };

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)

So that now the tests are passing:

t/023_standby_logical_decoding_conflicts.pl ..
1..24
ok 1 - dropslot on standby created
ok 2 - activeslot on standby created
ok 3 - dropslot on standby dropped
ok 4 - activeslot on standby dropped
ok 5 - pg_recvlogical exited non-zero
#
ok 6 - recvlogical recovery conflict
ok 7 - recvlogical error detail
ok 8 - dropslot on standby created
ok 9 - activeslot on standby created
ok 10 - dropslot on standby dropped
ok 11 - activeslot on standby dropped
ok 12 - pg_recvlogical exited non-zero
#
ok 13 - recvlogical recovery conflict
ok 14 - recvlogical error detail
ok 15 - otherslot on standby created
ok 16 - dropslot on standby created
ok 17 - activeslot on standby created
ok 18 - database dropped on standby
ok 19 - dropslot on standby dropped
ok 20 - activeslot on standby dropped
ok 21 - pg_recvlogical exited non-zero
#
ok 22 - recvlogical recovery conflict
ok 23 - recvlogical error detail
ok 24 - otherslot on standby not dropped
ok
All tests successful.
Files=1, Tests=24,  4 wallclock secs ( 0.02 usr  0.00 sys +  1.27 cusr  0.37 csys =  1.66 CPU)
Result: PASS

Attached is the new version.

Bertrand

--------------CADD18565F97226158BA4296-- --------------7F51D856A8B82A6093A90135 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" RnJvbSBhM2U0MmYyZmM1M2FmZDJiY2JlNmRhOWQwMjlkOTE2OTRhMzQ1NjJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IEtoYW5kZWthciA8YW1pdC5raGFuZGVrYXJA ZW50ZXJwcmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAxNiBKYW4gMjAyMCAxMDowNToxNSArMDUz MApTdWJqZWN0OiBbUEFUQ0ggdjcgMS81XSBBbGxvdyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0 YW5kYnkuCgpBbGxvdyBhIGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkIG9uIHN0YW5kYnku IFJlc3RyaWN0IGl0cyB1c2FnZQpvciBpdHMgY3JlYXRpb24gaWYgd2FsX2xldmVsIG9uIHBy aW1hcnkgaXMgbGVzcyB0aGFuIGxvZ2ljYWwuCkR1cmluZyBzbG90IGNyZWF0aW9uLCBpdCdz IHJlc3RhcnRfbHNuIGlzIHNldCB0byB0aGUgbGFzdCByZXBsYXllZApMU04uIEVmZmVjdGl2 ZWx5LCBhIGxvZ2ljYWwgc2xvdCBjcmVhdGlvbiBvbiBzdGFuZGJ5IHdhaXRzIGZvciBhbgp4 bF9ydW5uaW5nX3hhY3QgcmVjb3JkIHRvIGFycml2ZSBmcm9tIHByaW1hcnkuIENvbmZsaWN0 aW5nIHNsb3RzCndvdWxkIGJlIGhhbmRsZWQgaW4gbmV4dCBjb21taXRzLgoKQW5kcmVzIEZy ZXVuZCBhbmQgQW1pdCBLaGFuZGVrYXIuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9kZWNvZGUuYyAgfCAyMiArKysrKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbC5jIHwgMzcgKysrKysrKystLS0tLS0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKy0t LS0tLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDEw ICsrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgIHwgIDEg KwogNiBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggOGRkMjI1YzJlMS4uNjA5ZWRi YWNhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTAzOCw2ICs1MDM4 LDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVhZENvbnRy b2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRoZSBjb250 cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisgKiBjb25z aWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBiZSBkaWZm ZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9uIHN0YW5k YnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZlbCh2b2lkKQoreworCXJldHVy biBDb250cm9sRmlsZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5pdGlhbGl6YXRpb24g b2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYwppbmRleCAzZjg0ZWU5OWI4Li5iYjdjODBkNmNjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIwMywxMSAr MjAzLDMxIEBAIERlY29kZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhM b2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhlcmUuCiAJ CQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToKKwkJewor CQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0ZXJfY2hh bmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJCSAqIElm IHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxvZ2ljYWws IHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2FsIHNsb3Rz IGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgb24gc3Rh bmRieSBnZXQgZHJvcHBlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5 ZWQ7IGFuZCBmdXJ0aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3 YWwgbGV2ZWwgaXMgbm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBh cmUgbm90CisJCQkgKiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVl cCBpbiB3aGlsZSB0aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiAgSGVu Y2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYgKHhscmVjLT53YWxfbGV2ZWwg PCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkg ZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJ CQkid2FsX2xldmVsID49IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9 CiAJCWNhc2UgWExPR19OT09QOgogCQljYXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9H X1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JBQ0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVU RVJfQ0hBTkdFOgogCQljYXNlIFhMT0dfUkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQ V19DSEFOR0U6CiAJCWNhc2UgWExPR19GUElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IGYxZjRkZjdkNzAuLmVjNGY3Yjk1 ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBA IC0xMTAsMjMgKzExMCwyMiBAQCBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2 b2lkKQogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVf U1RBVEUpLAogCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRh YmFzZSBjb25uZWN0aW9uIikpKTsKIAotCS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8g Y2hhbmdlIHRoYXQgc29tZWRheSBzb29uLi4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxs eSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQg dG8gYmUgYWJsZSB0byBjb3JyZWN0bHkgYW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVs aW5lIGEKLQkgKgkgIExTTiBiZWxvbmdzIHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBo b3Rfc3RhbmRieV9mZWVkYmFjayB0byBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAq CSAgdGhlIHByaW1hcnkgY2Fubm90IHJlbW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3Vw cG9ydCBkcm9wcGluZyByZXBsaWNhdGlvbiBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFz ZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8uIFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25l cyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkgKgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQg YmUgcmVsYXRpdmVseSBlYXN5LgotCSAqIC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblBy b2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fu bm90IGJlIHVzZWQgd2hpbGUgaW4gcmVjb3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhp cyBjaGVjayBtYXkgaGF2ZSByYWNlIGNvbmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBY TE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5kaWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFu Z2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNh bCByZXBsaWNhdGlvbiBzbG90cy4gQW5kIHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBj cmVhdGluZyBhIG5ldyBzbG90LAorCQkgKiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVt ZW50cygpIGlzIGNhbGxlZCBvbmNlIGJlZm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwg YW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRlY29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1 cC4KKwkJICovCisJCWlmIChHZXRBY3RpdmVXYWxMZXZlbCgpIDwgV0FMX0xFVkVMX0xPR0lD QUwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9O T1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNv ZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsID49IGxvZ2lj YWwgb24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0yOTUsNiArMjk0LDEyIEBAIENy ZWF0ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxE ZWNvZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJ LyoKKwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUg Y3JlYXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVu Y3Rpb24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwog CS8qIHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA5YzdjZjEzZDRkLi44YTBmNTE5MDdiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xMDk3LDM3ICsxMDk3LDU2IEBAIFJlcGxp Y2F0aW9uU2xvdFJlc2VydmVXYWwodm9pZCkKIAkJLyoKIAkJICogRm9yIGxvZ2ljYWwgc2xv dHMgbG9nIGEgc3RhbmRieSBzbmFwc2hvdCBhbmQgc3RhcnQgbG9naWNhbCBkZWNvZGluZwog CQkgKiBhdCBleGFjdGx5IHRoYXQgcG9zaXRpb24uIFRoYXQgYWxsb3dzIHRoZSBzbG90IHRv IHN0YXJ0IHVwIG1vcmUKLQkJICogcXVpY2tseS4KKwkJICogcXVpY2tseS4gQnV0IG9uIGEg c3RhbmRieSB3ZSBjYW5ub3QgZG8gV0FMIHdyaXRlcywgc28ganVzdCB1c2UgdGhlCisJCSAq IHJlcGxheSBwb2ludGVyOyBlZmZlY3RpdmVseSwgYW4gYXR0ZW1wdCB0byBjcmVhdGUgYSBs b2dpY2FsIHNsb3Qgb24KKwkJICogc3RhbmRieSB3aWxsIGNhdXNlIGl0IHRvIHdhaXQgZm9y IGFuIHhsX3J1bm5pbmdfeGFjdCByZWNvcmQgdG8gYmUKKwkJICogbG9nZ2VkIGluZGVwZW5k ZW50bHkgb24gdGhlIHByaW1hcnksIHNvIHRoYXQgYSBzbmFwc2hvdCBjYW4gYmUgYnVpbHQK KwkJICogdXNpbmcgdGhlIHJlY29yZC4KIAkJICoKLQkJICogVGhhdCdzIG5vdCBuZWVkZWQg KG9yIGluZGVlZCBoZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMgdGhleSdsbAotCQkg KiBzdGFydCByZXBsYXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJ bnN0ZWFkIHJldHVybgotCQkgKiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04u IFdoaWxlIHRoYXQgc2xpZ2h0bHkgaW5jcmVhc2VzCi0JCSAqIHRoZSBjaGFuY2UgdGhhdCB3 ZSBoYXZlIHRvIHJldHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAgaGFzIHRvCi0JCSAq IHN0YXJ0IHJlcGxheSBhdC4KKwkJICogTm9uZSBvZiB0aGlzIGlzIG5lZWRlZCAob3IgaW5k ZWVkIGhlbHBmdWwpIGZvciBwaHlzaWNhbCBzbG90cyBhcworCQkgKiB0aGV5J2xsIHN0YXJ0 IHJlcGxheSBhdCB0aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQK KwkJICogcmV0dXJuIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUg dGhhdCBzbGlnaHRseQorCQkgKiBpbmNyZWFzZXMgdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUg dG8gcmV0cnksIGl0J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cAorCQkgKiBoYXMgdG8gc3RhcnQg cmVwbGF5IGF0LgogCQkgKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQkJcmVz dGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJlY292ZXJ5SW5Qcm9n cmVzcygpKQorCQl7CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVM TCk7CisJCQkvKgorCQkJICogUmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBwYXN0IHRo ZSBlbmQgb2YgdGhlIHJlY29yZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBhZ2UgYm91 bmRhcnksIGl0IHdpbGwgbm90IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAqIHN0YXJ0 IG9mIGEgcmVjb3JkLCBzbyBidW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVyLgorCQkJ ICovCisJCQlpZiAoIVhSZWNPZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsKKwkJCQlp ZiAocmVzdGFydF9sc24gJSBYTE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVSUk9SLCAi aW52YWxpZCByZXBsYXkgcG9pbnRlciIpOworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBv ZiBhIHNlZ21lbnQgZmlsZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dT ZWdtZW50T2Zmc2V0KHJlc3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJ CQlyZXN0YXJ0X2xzbiArPSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJl c3RhcnRfbHNuICs9IFNpemVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KKwkJfQorCQllbHNlCisJ CQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3Rh cnRfbHNuOworCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwogCQlpZiAoIVJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCiAJCXsKIAkJCVhM b2dSZWNQdHIJZmx1c2hwdHI7CiAKLQkJCS8qIHN0YXJ0IGF0IGN1cnJlbnQgaW5zZXJ0IHBv c2l0aW9uICovCi0JCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKLQkJ CVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0 X2xzbiA9IHJlc3RhcnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7 Ci0KIAkJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFy dCAqLwogCQkJZmx1c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAogCQkJLyogYW5k IG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8gZGlzayAqLwogCQkJWExvZ0ZsdXNoKGZsdXNo cHRyKTsKIAkJfQotCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0 cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRh LnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3Qt Pm11dGV4KTsKLQkJfQogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBhcyBw b3NzaWJsZSAqLwogCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGQ1YzliYzMxZDguLmQ4MzA4 ZDdkMjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0yODc4LDEw ICsyODc4LDEyIEBAIFhMb2dTZW5kTG9naWNhbCh2b2lkKQogCSAqIElmIGZpcnN0IHRpbWUg dGhyb3VnaCBpbiB0aGlzIHNlc3Npb24sIGluaXRpYWxpemUgZmx1c2hQdHIuICBPdGhlcndp c2UsCiAJICogd2Ugb25seSBuZWVkIHRvIHVwZGF0ZSBmbHVzaFB0ciBpZiBFbmRSZWNQdHIg aXMgcGFzdCBpdC4KIAkgKi8KLQlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQdHIp Ci0JCWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoKTsKLQllbHNlIGlmIChsb2dpY2FsX2Rl Y29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0JCWZsdXNoUHRy ID0gR2V0Rmx1c2hSZWNQdHIoKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQ dHIgfHwKKwkJbG9naWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZs dXNoUHRyKQorCXsKKwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciA/CisJ CQkJCUdldFN0YW5kYnlGbHVzaFJlY1B0cigpIDogR2V0Rmx1c2hSZWNQdHIoKSk7CisJfQog CiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qgb3VyIGZsdXNoUHRyLCBpdCBtZWFu cyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXIt PkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDIyMWFmODdlNzEu LmRkYzE2N2QyYzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaApAQCAtMzI0LDYgKzMyNCw3IEBAIGV4dGVy biBTaXplIFhMT0dTaG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBYTE9HU2htZW1Jbml0 KHZvaWQpOwogZXh0ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lk IExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOworZXh0ZXJuIFdhbExldmVs IEdldEFjdGl2ZVdhbExldmVsKHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9p ZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERhdHVtIGFyZyk7CiBl eHRlcm4gdm9pZCBJbml0WExPR0FjY2Vzcyh2b2lkKTsKLS0gCjIuMjUuMQoKCg== --------------7F51D856A8B82A6093A90135 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" IHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYyAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyAgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAgICAgIHwgIDQgKysrLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaGluc2VydC5jICAgIHwgIDIgKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jICAgICAgICB8IDEwICsrKysrKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92aXNpYmlsaXR5bWFwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRwYWdlLmMgICAgIHwgIDQgKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYyAgIHwgIDggKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jICAgICB8IDE2ICsrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0X3ByaXZhdGUuaCAgICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dp c3R4bG9nLmggICAgICAgICAgIHwgIDMgKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94 bG9nLmggICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cu aCAgICAgICAgfCAgOCArKysrKystLQogc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCAg ICAgICAgICAgIHwgIDIgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmggICAgICAg ICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICB8 ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICB8ICA5ICsr KysrKysrKwogMTkgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKaW5kZXggOTkyOTM2Y2ZhOC4uMGQzMDBm NjY5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwpAQCAtMzQ1LDcgKzM0NSw3IEBAIGdp c3RwbGFjZXRvcGFnZShSZWxhdGlvbiByZWwsIFNpemUgZnJlZXNwYWNlLCBHSVNUU1RBVEUg Kmdpc3RzdGF0ZSwKIAkJZm9yICg7IHB0cjsgcHRyID0gcHRyLT5uZXh0KQogCQl7CiAJCQkv KiBBbGxvY2F0ZSBuZXcgcGFnZSAqLwotCQkJcHRyLT5idWZmZXIgPSBnaXN0TmV3QnVmZmVy KHJlbCk7CisJCQlwdHItPmJ1ZmZlciA9IGdpc3ROZXdCdWZmZXIoaGVhcFJlbCwgcmVsKTsK IAkJCUdJU1RJbml0QnVmZmVyKHB0ci0+YnVmZmVyLCAoaXNfbGVhZikgPyBGX0xFQUYgOiAw KTsKIAkJCXB0ci0+cGFnZSA9IEJ1ZmZlckdldFBhZ2UocHRyLT5idWZmZXIpOwogCQkJcHRy LT5ibG9jay5ibGtubyA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHB0ci0+YnVmZmVyKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKaW5kZXggMTA1NGY2ZjFmMi4uOGIwNjRm MzJhYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKQEAgLTI5MCw3ICsy OTAsNyBAQCBnaXN0YnVpbGQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsIEluZGV4 SW5mbyAqaW5kZXhJbmZvKQogCQlQYWdlCQlwYWdlOwogCiAJCS8qIGluaXRpYWxpemUgdGhl IHJvb3QgcGFnZSAqLwotCQlidWZmZXIgPSBnaXN0TmV3QnVmZmVyKGluZGV4KTsKKwkJYnVm ZmVyID0gZ2lzdE5ld0J1ZmZlcihoZWFwLCBpbmRleCk7CiAJCUFzc2VydChCdWZmZXJHZXRC bG9ja051bWJlcihidWZmZXIpID09IEdJU1RfUk9PVF9CTEtOTyk7CiAJCXBhZ2UgPSBCdWZm ZXJHZXRQYWdlKGJ1ZmZlcik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R1dGlsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmlu ZGV4IGNmNTNkYWQ0NzQuLjQ0NmE2MWJjYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHV0aWwuYwpAQCAtODIzLDcgKzgyMyw3IEBAIGdpc3RjaGVja3BhZ2UoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmKQogICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXpp bmcgdGhlIHBhZ2UgYnkgY2FsbGluZyBHSVNUSW5pdEJ1ZmZlcgogICovCiBCdWZmZXIKLWdp c3ROZXdCdWZmZXIoUmVsYXRpb24gcikKK2dpc3ROZXdCdWZmZXIoUmVsYXRpb24gaGVhcFJl bCwgUmVsYXRpb24gcikKIHsKIAlCdWZmZXIJCWJ1ZmZlcjsKIAlib29sCQluZWVkTG9jazsK QEAgLTg2Nyw3ICs4NjcsNyBAQCBnaXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIpCiAJCQkJICog cGFnZSdzIGRlbGV0ZVhpZC4KIAkJCQkgKi8KIAkJCQlpZiAoWExvZ1N0YW5kYnlJbmZvQWN0 aXZlKCkgJiYgUmVsYXRpb25OZWVkc1dBTChyKSkKLQkJCQkJZ2lzdFhMb2dQYWdlUmV1c2Uo ciwgYmxrbm8sIEdpc3RQYWdlR2V0RGVsZXRlWGlkKHBhZ2UpKTsKKwkJCQkJZ2lzdFhMb2dQ YWdlUmV1c2UoaGVhcFJlbCwgciwgYmxrbm8sIEdpc3RQYWdlR2V0RGVsZXRlWGlkKHBhZ2Up KTsKIAogCQkJCXJldHVybiBidWZmZXI7CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHhsb2cuYwppbmRleCBjMWQ0YjVkNGYyLi44MjI3MWVmOGE5IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3R4bG9nLmMKQEAgLTYxNiw3ICs2MTYsOCBAQCBnaXN0WExvZ0Fzc2lnbkxT Tih2b2lkKQogICogV3JpdGUgWExPRyByZWNvcmQgYWJvdXQgcmV1c2Ugb2YgYSBkZWxldGVk IHBhZ2UuCiAgKi8KIHZvaWQKLWdpc3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxv Y2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpCitn aXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJ ICBCbG9ja051bWJlciBibGtubywgRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhp ZCkKIHsKIAlnaXN0eGxvZ1BhZ2VSZXVzZSB4bHJlY19yZXVzZTsKIApAQCAtNjI3LDYgKzYy OCw3IEBAIGdpc3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxr bm8sIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92CiAJICovCiAKIAkvKiBYTE9HIHN0 dWZmICovCisJeGxyZWNfcmV1c2Uub25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nKGhlYXBSZWwpOwogCXhscmVjX3JldXNlLm5vZGUgPSBy ZWwtPnJkX25vZGU7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJlY19yZXVz ZS5sYXRlc3RSZW1vdmVkRnVsbFhpZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKaW5kZXggZDI1NGEwMGI2YS4uNTcxMTk1MmZjNyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwpAQCAtMTcsNiArMTcsNyBA QAogCiAjaW5jbHVkZSAiYWNjZXNzL2hhc2guaCIKICNpbmNsdWRlICJhY2Nlc3MvaGFzaF94 bG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZfaW50ZXJuYWxzLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9sd2xvY2suaCIKQEAgLTM5OCw2ICszOTksNyBAQCBfaGFzaF92YWN1dW1fb25l X3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBocmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVm ZmVyIGJ1ZikKIAkJCXhsX2hhc2hfdmFjdXVtX29uZV9wYWdlIHhscmVjOwogCQkJWExvZ1Jl Y1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhocmVsKTsKIAkJCXhscmVjLmxhdGVzdFJlbW92 ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCQkJeGxyZWMubnR1cGxlcyA9IG5kZWxldGFi bGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNWI5Y2ZiMjZjZi4uZDZk ZGZjMzA2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTc2NzYsMTIgKzc2 NzYsMTMgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRl bHN0YXRlKQogICogc2VlIGNvbW1lbnRzIGZvciB2YWN1dW1fbG9nX2NsZWFudXBfaW5mbygp LgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsRmlsZU5vZGUg cm5vZGUsIFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKK2xvZ19oZWFwX2NsZWFu dXBfaW5mbyhSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkK IHsKIAl4bF9oZWFwX2NsZWFudXBfaW5mbyB4bHJlYzsKIAlYTG9nUmVjUHRyCXJlY3B0cjsK IAotCXhscmVjLm5vZGUgPSBybm9kZTsKKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0 aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKKwl4bHJlYy5ub2RlID0g cmVsLT5yZF9ub2RlOwogCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVk WGlkOwogCiAJWExvZ0JlZ2luSW5zZXJ0KCk7CkBAIC03NzE3LDYgKzc3MTgsNyBAQCBsb2df aGVhcF9jbGVhbihSZWxhdGlvbiByZWxuLCBCdWZmZXIgYnVmZmVyLAogCS8qIENhbGxlciBz aG91bGQgbm90IGNhbGwgbWUgb24gYSBub24tV0FMLWxvZ2dlZCByZWxhdGlvbiAqLwogCUFz c2VydChSZWxhdGlvbk5lZWRzV0FMKHJlbG4pKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxl ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJl Yy5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsKIAl4bHJlYy5ucmVkaXJl Y3RlZCA9IG5yZWRpcmVjdGVkOwogCXhscmVjLm5kZWFkID0gbmRlYWQ7CkBAIC03NzY3LDYg Kzc3NjksNyBAQCBsb2dfaGVhcF9mcmVlemUoUmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZl ciwgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAogCS8qIG5vciB3aGVuIHRoZXJlIGFyZSBu byB0dXBsZXMgdG8gZnJlZXplICovCiAJQXNzZXJ0KG50dXBsZXMgPiAwKTsKIAorCXhscmVj Lm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGlu ZyhyZWxuKTsKIAl4bHJlYy5jdXRvZmZfeGlkID0gY3V0b2ZmX3hpZDsKIAl4bHJlYy5udHVw bGVzID0gbnR1cGxlczsKIApAQCAtNzc5Nyw3ICs3ODAwLDcgQEAgbG9nX2hlYXBfZnJlZXpl KFJlbGF0aW9uIHJlbG4sIEJ1ZmZlciBidWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hp ZCwKICAqIGhlYXBfYnVmZmVyLCBpZiBuZWNlc3NhcnkuCiAgKi8KIFhMb2dSZWNQdHIKLWxv Z19oZWFwX3Zpc2libGUoUmVsRmlsZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwg QnVmZmVyIHZtX2J1ZmZlciwKK2xvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZm ZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQg Y3V0b2ZmX3hpZCwgdWludDggdm1mbGFncykKIHsKIAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7 CkBAIC03ODA3LDYgKzc4MTAsNyBAQCBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVOb2RlIHJu b2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJQXNzZXJ0KEJ1 ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKIAlBc3NlcnQoQnVmZmVySXNWYWxpZCh2bV9i dWZmZXIpKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjLmN1dG9mZl94aWQgPSBjdXRvZmZf eGlkOwogCXhscmVjLmZsYWdzID0gdm1mbGFnczsKIAlYTG9nQmVnaW5JbnNlcnQoKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBmM2QyMjY1ZmFkLi5hNDJm ZjA0YzI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC03MTgs NyArNzE4LDcgQEAgdmFjdXVtX2xvZ19jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLCBMVlJl bFN0YXRzICp2YWNyZWxzdGF0cykKIAkgKiBObyBuZWVkIHRvIHdyaXRlIHRoZSByZWNvcmQg YXQgYWxsIHVubGVzcyBpdCBjb250YWlucyBhIHZhbGlkIHZhbHVlCiAJICovCiAJaWYgKFRy YW5zYWN0aW9uSWRJc1ZhbGlkKHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJ KHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhyZWwtPnJkX25vZGUsIHZhY3JlbHN0YXRz LT5sYXRlc3RSZW1vdmVkWGlkKTsKKwkJKHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhy ZWwsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKTsKIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCBlMTk4ZGY2NWQ4Li42ZTg5 YTA4YzUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5 bWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBA IC0yODIsNyArMjgyLDcgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9j a051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJ bnZhbGlkKHJlY3B0cikpCiAJCQl7CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQly ZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxlKHJlbC0+cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYs CisJCQkJcmVjcHRyID0gbG9nX2hlYXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLAog CQkJCQkJCQkJCSAgY3V0b2ZmX3hpZCwgZmxhZ3MpOwogCiAJCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRwYWdlLmMKaW5kZXggZTIzMGY5MTJjMi4uOGY3ODFjZmNhMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNp bmNsdWRlICJzdG9yYWdlL2luZGV4ZnNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9wcmVkaWNhdGUuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKIApAQCAtNzc0LDYgKzc3NSw3IEBAIF9idF9sb2dfcmV1c2VfcGFnZShS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBUcmFuc2FjdGlvbklkIGxhdGVzdFJl bW92ZWRYCiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uub25DYXRh bG9nVGFibGUgPSBnZXRfcmVsX2xvZ2ljYWxfY2F0YWxvZyhyZWwtPnJkX2luZGV4LT5pbmRy ZWxpZCk7CiAJeGxyZWNfcmV1c2Uubm9kZSA9IHJlbC0+cmRfbm9kZTsKIAl4bHJlY19yZXVz ZS5ibG9jayA9IGJsa25vOwogCXhscmVjX3JldXNlLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRl c3RSZW1vdmVkWGlkOwpAQCAtMTMyMyw2ICsxMzI1LDggQEAgX2J0X2RlbGl0ZW1zX2RlbGV0 ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsIFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3Zl ZFhpZCwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJCXhsX2J0cmVlX2RlbGV0ZSB4bHJlY19k ZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRlLm9uQ2F0YWxvZ1RhYmxlID0KKwkJCVJlbGF0aW9u SXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaGVhcFJlbCk7CiAJCXhscmVjX2RlbGV0 ZS5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsKIAkJeGxyZWNfZGVsZXRl Lm5kZWxldGVkID0gbmRlbGV0YWJsZTsKIAkJeGxyZWNfZGVsZXRlLm51cGRhdGVkID0gbnVw ZGF0YWJsZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFj dXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCmluZGV4IDBk MDJhMDIyMjIuLjM5NzY0OGQyYWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9z cGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvaW5kZXhmc20u aCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdy LmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAKIAogLyogRW50cnkgaW4gcGVu ZGluZy1saXN0IG9mIFRJRHMgd2UgbmVlZCB0byByZXZpc2l0ICovCkBAIC01MDMsNiArNTA0 LDEzIEBAIHZhY3V1bVJlZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIEJ1 ZmZlciBidWZmZXIpCiAJc3BneGxvZ1ZhY3V1bVJlZGlyZWN0IHhscmVjOwogCUdsb2JhbFZp c1N0YXRlICp2aXN0ZXN0OwogCisJLyoKKwkgKiBUaGVyZSBpcyBubyBjaGFuY2Ugb2YgZW5k bGVzcyByZWN1cnNpb24gZXZlbiB3aGVuIHdlIGFyZSBkb2luZyBjYXRhbG9nCisJICogYWNj ZXNlcyBoZXJlOyBiZWNhdXNlLCBzcGdpc3QgaXMgbmV2ZXIgdXNlZCBmb3IgY2F0YWxvZ3Mu IENoZWNrCisJICogY29tbWVudHMgaW4gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxE ZWNvZGluZygpLgorCSAqLworCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gZ2V0X3JlbF9sb2dp Y2FsX2NhdGFsb2coaW5kZXgtPnJkX2luZGV4LT5pbmRyZWxpZCk7CisKIAl4bHJlYy5uVG9Q bGFjZWhvbGRlciA9IDA7CiAJeGxyZWMubmV3ZXN0UmVkaXJlY3RYaWQgPSBJbnZhbGlkVHJh bnNhY3Rpb25JZDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA4 NWM0NThiYzQ2Li42NWNjMzc4OTQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1ZGUgImFjY2Vzcy9oYXNoLmgiCiAjaW5j bHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy9uYnRyZWUu aCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJib290c3RyYXAvYm9v dHN0cmFwLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hbW9wLmgiCkBAIC0yMDM1LDYgKzIwMzcsMjAgQEAgZ2V0X3JlbF9w ZXJzaXN0ZW5jZShPaWQgcmVsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbAorZ2V0 X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lkIHJlbGlkKQoreworCWJvb2wJcmVzOworCVJlbGF0 aW9uIHJlbDsKKworCS8qIGFzc3VtZSBwcmV2aW91c2x5IGxvY2tlZCAqLworCXJlbCA9IHRh YmxlX29wZW4ocmVsaWQsIE5vTG9jayk7CisJcmVzID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJ bkxvZ2ljYWxEZWNvZGluZyhyZWwpOworCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwor CXJldHVybiByZXM7Cit9CisKIAogLyoJCQkJLS0tLS0tLS0tLSBUUkFOU0ZPUk0gQ0FDSEUg LS0tLS0tLS0tLQkJCQkJCSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv Z2lzdF9wcml2YXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKaW5k ZXggNTUzZDM2NGUyZC4uYTBmNDAxNTU1NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2dpc3RfcHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZh dGUuaApAQCAtNDQwLDggKzQ0MCw4IEBAIGV4dGVybiBYTG9nUmVjUHRyIGdpc3RYTG9nUGFn ZURlbGV0ZShCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkJIEZ1bGxUcmFuc2FjdGlvbklkIHhp ZCwgQnVmZmVyIHBhcmVudEJ1ZmZlciwKIAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgZG93bmxp bmtPZmZzZXQpOwogCi1leHRlcm4gdm9pZCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiBy ZWwsIEJsb2NrTnVtYmVyIGJsa25vLAotCQkJCQkJCSAgRnVsbFRyYW5zYWN0aW9uSWQgbGF0 ZXN0UmVtb3ZlZFhpZCk7CitleHRlcm4gdm9pZCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlv biBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJICBCbG9ja051bWJlciBibGtubywgRnVs bFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCk7CiAKIGV4dGVybiBYTG9nUmVjUHRy IGdpc3RYTG9nVXBkYXRlKEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCSBPZmZzZXROdW1iZXIg KnRvZGVsZXRlLCBpbnQgbnRvZGVsZXRlLApAQCAtNDg1LDcgKzQ4NSw3IEBAIGV4dGVybiBi b29sIGdpc3Rwcm9wZXJ0eShPaWQgaW5kZXhfb2lkLCBpbnQgYXR0bm8sCiBleHRlcm4gYm9v bCBnaXN0Zml0cGFnZShJbmRleFR1cGxlICppdHZlYywgaW50IGxlbik7CiBleHRlcm4gYm9v bCBnaXN0bm9zcGFjZShQYWdlIHBhZ2UsIEluZGV4VHVwbGUgKml0dmVjLCBpbnQgbGVuLCBP ZmZzZXROdW1iZXIgdG9kZWxldGUsIFNpemUgZnJlZXNwYWNlKTsKIGV4dGVybiB2b2lkIGdp c3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmKTsKLWV4dGVybiBCdWZmZXIg Z2lzdE5ld0J1ZmZlcihSZWxhdGlvbiByKTsKK2V4dGVybiBCdWZmZXIgZ2lzdE5ld0J1ZmZl cihSZWxhdGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByKTsKIGV4dGVybiBib29sIGdpc3RQYWdl UmVjeWNsYWJsZShQYWdlIHBhZ2UpOwogZXh0ZXJuIHZvaWQgZ2lzdGZpbGxidWZmZXIoUGFn ZSBwYWdlLCBJbmRleFR1cGxlICppdHVwLCBpbnQgbGVuLAogCQkJCQkJICAgT2Zmc2V0TnVt YmVyIG9mZik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCmluZGV4IGZkNTE0NGYyNTguLjczOTk5 ZGRjNzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCkBAIC00OSw5ICs0OSw5IEBAIHR5cGVk ZWYgc3RydWN0IGdpc3R4bG9nUGFnZVVwZGF0ZQogICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0 eGxvZ0RlbGV0ZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQg bGF0ZXN0UmVtb3ZlZFhpZDsKIAl1aW50MTYJCW50b2RlbGV0ZTsJCS8qIG51bWJlciBvZiBk ZWxldGVkIG9mZnNldHMgKi8KLQogCS8qCiAJICogSW4gcGF5bG9hZCBvZiBibGsgMCA6IHRv ZGVsZXRlIE9mZnNldE51bWJlcnMKIAkgKi8KQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgZ2lzdHhsb2dQYWdlRGVsZXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9n UGFnZVJldXNlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5vZGUgbm9k ZTsKIAlCbG9ja051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1v dmVkRnVsbFhpZDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAppbmRleCA0MzUzYTMyZGJiLi45 NGMzMjkyYzFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCkBAIC0yNTAsNiArMjUwLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF9pbml0X2JpdG1hcF9wYWdlCiAgKi8KIHR5cGVk ZWYgc3RydWN0IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlCiB7CisJYm9vbAkJb25DYXRhbG9n VGFibGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCWludAkJCW50dXBs ZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggNTE1ODZiODgzZC4uNzI2 MGU5MmVkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTIzNiw2ICsyMzYs NyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3VwZGF0ZQogICovCiB0eXBlZGVmIHN0cnVj dCB4bF9oZWFwX2NsZWFuCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rp b25JZCBsYXRlc3RSZW1vdmVkWGlkOwogCXVpbnQxNgkJbnJlZGlyZWN0ZWQ7CiAJdWludDE2 CQluZGVhZDsKQEAgLTI1MSw2ICsyNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2Ns ZWFuCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfY2xlYW51cF9pbmZvCiB7CisJYm9v bAkJb25DYXRhbG9nVGFibGU7CiAJUmVsRmlsZU5vZGUgbm9kZTsKIAlUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92ZWRYaWQ7CiB9IHhsX2hlYXBfY2xlYW51cF9pbmZvOwpAQCAtMzMxLDYg KzMzMyw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3R1cGxlCiAgKi8KIHR5 cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKIHsKKwlib29sCQlvbkNhdGFsb2dU YWJsZTsKIAlUcmFuc2FjdGlvbklkIGN1dG9mZl94aWQ7CiAJdWludDE2CQludHVwbGVzOwog fSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwpAQCAtMzQ1LDYgKzM0OCw3IEBAIHR5cGVkZWYgc3Ry dWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92 aXNpYmxlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNhY3Rpb25JZCBjdXRv ZmZfeGlkOwogCXVpbnQ4CQlmbGFnczsKIH0geGxfaGVhcF92aXNpYmxlOwpAQCAtMzk0LDcg KzM5OCw3IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBjaGFyICpoZWFwMl9pZGVudGlm eSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19sb2dpY2FsX3Jld3JpdGUo WExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfY2xl YW51cF9pbmZvKFJlbEZpbGVOb2RlIHJub2RlLAorZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hl YXBfY2xlYW51cF9pbmZvKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCQlUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92ZWRYaWQpOwogZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfY2xlYW4o UmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJIE9mZnNldE51bWJlciAq cmVkaXJlY3RlZCwgaW50IG5yZWRpcmVjdGVkLApAQCAtNDEzLDcgKzQxNyw3IEBAIGV4dGVy biBib29sIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxl LAogCQkJCQkJCQkJICBib29sICp0b3RhbGx5X2Zyb3plbik7CiBleHRlcm4gdm9pZCBoZWFw X2V4ZWN1dGVfZnJlZXplX3R1cGxlKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwKIAkJCQkJCQkJ CSAgeGxfaGVhcF9mcmVlemVfdHVwbGUgKnhscmVjX3RwKTsKLWV4dGVybiBYTG9nUmVjUHRy IGxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZl ciwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBC dWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIsIFRyYW5z YWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggZmxhZ3MpOwogCiAjZW5kaWYJCQkJCQkJLyog SEVBUEFNX1hMT0dfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKaW5kZXggN2FlNWM5OGMyYi4u Njk5NWRjMjU1OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCkBAIC0xODUsNiArMTg1LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVkdXAKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxf YnRyZWVfcmV1c2VfcGFnZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVJlbEZpbGVO b2RlIG5vZGU7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RS ZW1vdmVkWGlkOwpAQCAtMjMyLDYgKzIzMyw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVl X3ZhY3V1bQogCiB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9kZWxldGUKIHsKKwlib29sCQlv bkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWlu dDE2CQluZGVsZXRlZDsKIAl1aW50MTYJCW51cGRhdGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgK aW5kZXggNjk0MDViNTc1MC4uMDZiOTFmNGQwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL3NwZ3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBA IC0yMzcsNiArMjM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJvb3QKIAog dHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJlZGlyZWN0CiB7CisJYm9vbAkJb25DYXRh bG9nVGFibGU7CiAJdWludDE2CQluVG9QbGFjZWhvbGRlcjsgLyogbnVtYmVyIG9mIHJlZGly ZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAqLwogCU9mZnNldE51bWJlciBmaXJzdFBsYWNl aG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRlciB0dXBsZSB0byByZW1vdmUgKi8KIAlUcmFu c2FjdGlvbklkIG5ld2VzdFJlZGlyZWN0WGlkOwkvKiBuZXdlc3QgWElEIG9mIHJlbW92ZWQg cmVkaXJlY3RzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGFlNzIwYzE0OTYuLjhm ZDMxMjllYWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xMzgsNiArMTM4LDcgQEAg ZXh0ZXJuIGNoYXIgZ2V0X3JlbF9yZWxraW5kKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBn ZXRfcmVsX3JlbGlzcGFydGl0aW9uKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxf dGFibGVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIGNoYXIgZ2V0X3JlbF9wZXJzaXN0ZW5j ZShPaWQgcmVsaWQpOworZXh0ZXJuIGJvb2wgZ2V0X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lk IHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwg T2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3Jt X3Rvc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJu IGJvb2wgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlwaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCAxMGI2 Mzk4MmMwLi5mODAwNmE3MTI1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMTYsNiArMTYsNyBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3R1cGRlc2MuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgor I2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xh c3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luZGV4LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtMzQ1LDYgKzM0Niw5IEBAIHR5cGVkZWYgc3RydWN0 IFN0ZFJkT3B0aW9ucwogICogUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZQogICoJCVJl dHVybnMgd2hldGhlciB0aGUgcmVsYXRpb24gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYXRh bG9nIHRhYmxlCiAgKgkJZnJvbSB0aGUgcG92IG9mIGxvZ2ljYWwgZGVjb2RpbmcuICBOb3Rl IG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz czsgb3RoZXJ3aXNlIGl0IG1heSBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24uIENoZWNrIHRo ZSBjb21tZW50cworICoJCWluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcoKSBmb3IgZGV0YWlscy4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKQlcCiAJKChyZWxhdGlvbiktPnJkX29wdGlvbnMgJiYgXApAQCAt NjE2LDYgKzYyMCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBWaWV3T3B0aW9ucwogICogUmVsYXRp b25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZwogICoJCVRydWUgaWYgd2UgbmVlZCB0 byBsb2cgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGhhdmUgYWNjZXNzIHZpYQogICoJCWRlY29k aW5nIHNuYXBzaG90LgorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBh bnl0aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nlc3MuIE90aGVyd2lzZSwg ZS5nLiBsb2dnaW5nIGEgV0FMIGVudHJ5IGZvciBjYXRhbG9nIHJlbGF0aW9uIG1heQorICoJ CWludm9rZSB0aGlzIGZ1bmN0aW9uLCB3aGljaCB3aWxsIGluIHR1cm4gZG8gY2F0YWxvZyBh Y2Nlc3MsIHdoaWNoIG1heQorICoJCWluIHR1cm4gY2F1c2UgYW5vdGhlciBzaW1pbGFyIFdB TCBlbnRyeSB0byBiZSBsb2dnZWQsIGxlYWRpbmcgdG8KKyAqCQlpbmZpbml0ZSByZWN1cnNp b24uCiAgKi8KICNkZWZpbmUgUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGlu ZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNhbEluZm9BY3RpdmUoKSAmJiBcCg== --------------7F51D856A8B82A6093A90135 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" IGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgICAgICAgICB8ICAxMCArKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jICAgICB8ICAxMyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0eGxvZy5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9n LmMgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICB8ICAx NCArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8ICAgMSArCiBz cmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jICAgICAgfCAgIDQgKwogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgIHwgMTg4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAg fCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIHwgICAzICsK IHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICB8ICAgNyArLQogc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgIHwgIDIyICsrKysKIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICB8ICAxNiArKysKIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oICAg ICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCAgICAgICAgfCAgIDIgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICB8ICAgMSArCiAyMSBmaWxlcyBj aGFuZ2VkLCAyOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCmluZGV4IDNjZGIxYWZmM2MuLmVjZDY4OThlMGEgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcu c2dtbApAQCAtMzg0OCw2ICszODQ4LDE2IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlw 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 Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZDZkZGZjMzA2Yy4uOGRhYTMzMWJi MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTgyMzQsNyArODIzNCw4IEBA IGhlYXBfeGxvZ19jbGVhbnVwX2luZm8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJeGxf aGVhcF9jbGVhbnVwX2luZm8gKnhscmVjID0gKHhsX2hlYXBfY2xlYW51cF9pbmZvICopIFhM b2dSZWNHZXREYXRhKHJlY29yZCk7CiAKIAlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwg eGxyZWMtPm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4 bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1Rh YmxlLCB4bHJlYy0+bm9kZSk7CiAKIAkvKgogCSAqIEFjdHVhbCBvcGVyYXRpb24gaXMgYSBu by1vcC4gUmVjb3JkIHR5cGUgZXhpc3RzIHRvIHByb3ZpZGUgYSBtZWFucyBmb3IKQEAgLTgy NzAsNyArODI3MSw4IEBAIGhlYXBfeGxvZ19jbGVhbihYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAkgKiBsYXRlc3RSZW1vdmVkWGlkIGlzIGludmFsaWQsIHNraXAgY29uZmxpY3QgcHJv Y2Vzc2luZy4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5ICYmIFRyYW5zYWN0aW9uSWRJc1Zh bGlkKHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRY aWQsCisJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCiAJLyoK IAkgKiBJZiB3ZSBoYXZlIGEgZnVsbC1wYWdlIGltYWdlLCByZXN0b3JlIGl0ICh1c2luZyBh IGNsZWFudXAgbG9jaykgYW5kCkBAIC04MzY2LDcgKzgzNjgsOSBAQCBoZWFwX3hsb2dfdmlz aWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKiByYXRoZXIgdGhhbiBraWxsaW5n IHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQot CQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hp ZCwgcm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJl Yy0+Y3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAorCQkJ CQkJCQkJCQlybm9kZSk7CiAKIAkvKgogCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQg c3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCkBAIC04NTAz LDcgKzg1MDcsOCBAQCBoZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpy 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 c2FtL3hsb2cuYwppbmRleCA1ODA4NWZkY2Y3Li44YTAwOTc3YTgzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jCkBAIC0xMDI4Myw2ICsxMDI4MywyMCBAQCB4bG9nX3JlZG8o WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCS8qIFVwZGF0ZSBvdXIgY29weSBvZiB0aGUg cGFyYW1ldGVycyBpbiBwZ19jb250cm9sICovCiAJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNH ZXREYXRhKHJlY29yZCksIHNpemVvZih4bF9wYXJhbWV0ZXJfY2hhbmdlKSk7CiAKKwkJLyoK KwkJICogRHJvcCBsb2dpY2FsIHNsb3RzIGlmIHdlIGFyZSBpbiBob3Qgc3RhbmRieSBhbmQg dGhlIHByaW1hcnkgZG9lcyBub3QKKwkJICogaGF2ZSBhIFdBTCBsZXZlbCBzdWZmaWNpZW50 IGZvciBsb2dpY2FsIGRlY29kaW5nLiBObyBuZWVkIHRvIHNlYXJjaAorCQkgKiBmb3IgcG90 ZW50aWFsbHkgY29uZmxpY3RpbmcgbG9naWNhbGx5IHNsb3RzIGlmIHN0YW5kYnkgaXMgcnVu bmluZworCQkgKiB3aXRoIHdhbF9sZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwsIGJlY2F1c2Ug aW4gdGhhdCBjYXNlLCB3ZSB3b3VsZAorCQkgKiBoYXZlIGVpdGhlciBkaXNhbGxvd2VkIGNy ZWF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgb3IgZHJvcHBlZCBleGlzdGluZworCQkgKiBvbmVz LgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5Ib3RTdGFuZGJ5ICYmCisJCQl4bHJl Yy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAmJgorCQkJd2FsX2xldmVsID49IFdB TF9MRVZFTF9MT0dJQ0FMKQorCQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9naWNh bFNsb3RzKEludmFsaWRPaWQsIEludmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCWdldHRleHRf bm9vcCgiTG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCA+ PSBsb2dpY2FsIG9uIG1hc3Rlci4iKSk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmls ZUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9 IHhscmVjLk1heENvbm5lY3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9j ZXNzZXMgPSB4bHJlYy5tYXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbAppbmRleCA1ZDg5ZTc3ZGJlLi40NjBkYzMwNDJhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC05MzgsNiArOTM4LDcgQEAgQ1JF QVRFIFZJRVcgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMgQVMKICAgICAgICAgICAgIHBn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3RhYmxlc3BhY2UoRC5vaWQpIEFTIGNvbmZsX3RhYmxl c3BhY2UsCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKEQub2lk KSBBUyBjb25mbF9sb2NrLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf c25hcHNob3QoRC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAorICAgICAgICAgICAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxz bG90LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKEQu b2lkKSBBUyBjb25mbF9idWZmZXJwaW4sCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jawogICAg IEZST00gcGdfZGF0YWJhc2UgRDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4IDNm MjRhMzNlZjEuLjExN2FjYzg3ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwpAQCAt NDk4NCw2ICs0OTg0LDcgQEAgcmVzZXRfZGJlbnRyeV9jb3VudGVycyhQZ1N0YXRfU3RhdERC RW50cnkgKmRiZW50cnkpCiAJZGJlbnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlID0gMDsK IAlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvY2sgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rf c25hcHNob3QgPSAwOworCWRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QgPSAwOwog CWRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZs aWN0X3N0YXJ0dXBfZGVhZGxvY2sgPSAwOwogCWRiZW50cnktPm5fdGVtcF9maWxlcyA9IDA7 CkBAIC02ODUyLDYgKzY4NTMsOSBAQCBwZ3N0YXRfcmVjdl9yZWNvdmVyeWNvbmZsaWN0KFBn 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 YWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggNTgzZWZhZWNmZi4uNTY4NTNjMWE3NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtNTc5LDYgKzU3OSw5IEBA 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 cC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDI4MDU1 NjgwYWEuLmYzYTRmMWI1ODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTI0NjYsNiArMjQ2 Niw5IEBAIGVycmRldGFpbF9yZWNvdmVyeV9jb25mbGljdCh2b2lkKQogCQljYXNlIFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVl cnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUg cmVtb3ZlZC4iKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfTE9HSUNBTFNMT1Q6CisJCQllcnJkZXRhaWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dp Y2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRyb3BwZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRh aWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292 ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0yOTc2LDYgKzI5NzksMjUgQEAgUmVjb3ZlcnlDb25m bGljdEludGVycnVwdChQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0NLOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf U05BUFNIT1Q6CisJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNM T1Q6CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2lj YWwgc2xvdCB0byBiZSBkcm9wcGVkLCB0aGUKKwkJCQkgKiByZXF1aXJlbWVudCBpcyBmb3Ig dGhlIHNpZ25hbCByZWNlaXZlciB0byByZWxlYXNlIHRoZSBzbG90LAorCQkJCSAqIHNvIHRo YXQgaXQgY291bGQgYmUgZHJvcHBlZCBieSB0aGUgc2lnbmFsIHNlbmRlci4gU28gZm9yCisJ CQkJICogbm9ybWFsIGJhY2tlbmRzLCB0aGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIGFib3J0 ZWQsIGp1c3QKKwkJCQkgKiBsaWtlIGZvciBvdGhlciByZWNvdmVyeSBjb25mbGljdHMuIEJ1 dCBpZiBpdCdzIHdhbHNlbmRlciBvbgorCQkJCSAqIHN0YW5kYnksIHRoZW4gaXQgaGFzIHRv IGJlIGtpbGxlZCBzbyBhcyB0byByZWxlYXNlIGFuCisJCQkJICogYWNxdWlyZWQgbG9naWNh bCBzbG90LgorCQkJCSAqLworCQkJCWlmIChhbV9jYXNjYWRpbmdfd2Fsc2VuZGVyICYmCisJ CQkJCXJlYXNvbiA9PSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UICYm CisJCQkJCU15UmVwbGljYXRpb25TbG90ICYmIFNsb3RJc0xvZ2ljYWwoTXlSZXBsaWNhdGlv blNsb3QpKQorCQkJCXsKKwkJCQkJUmVjb3ZlcnlDb25mbGljdFBlbmRpbmcgPSB0cnVlOwor CQkJCQlRdWVyeUNhbmNlbFBlbmRpbmcgPSB0cnVlOworCQkJCQlJbnRlcnJ1cHRQZW5kaW5n ID0gdHJ1ZTsKKwkJCQkJYnJlYWs7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBJZiB3ZSBh cmVuJ3QgaW4gYSB0cmFuc2FjdGlvbiBhbnkgbG9uZ2VyIHRoZW4gaWdub3JlLgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA1YzEyYTE2NWExLi4xYjk5OGI0Mjhl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMTQ5Niw2ICsxNDk2 LDIxIEBAIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KFBHX0ZVTkNUSU9OX0FS R1MpCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJ CWRiaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWludDY0CQlyZXN1bHQ7CisJUGdTdGF0X1N0 YXREQkVudHJ5ICpkYmVudHJ5OworCisJaWYgKChkYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0 YXRfZGJlbnRyeShkYmlkKSkgPT0gTlVMTCkKKwkJcmVzdWx0ID0gMDsKKwllbHNlCisJCXJl c3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QpOworCisJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7Cit9CisKIERhdHVtCiBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9idWZmZXJwaW4oUEdfRlVOQ1RJT05fQVJHUykKIHsKQEAgLTE1MzksNiArMTU1 NCw3IEBAIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2FsbChQR19GVU5DVElPTl9BUkdTKQog CQlyZXN1bHQgPSAoaW50NjQpIChkYmVudHJ5LT5uX2NvbmZsaWN0X3RhYmxlc3BhY2UgKwog CQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5u X2NvbmZsaWN0X3NuYXBzaG90ICsKKwkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9sb2dp Y2Fsc2xvdCArCiAJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluICsKIAkJ CQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZDI3MzM2YWRjZC4uZmQyMzVjZGU0MiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01MzkxLDYgKzUzOTEsMTEgQEAKICAgcHJvbmFt ZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnLCBwcm92b2xhdGlsZSA9 PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHBy b2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZs aWN0X3NuYXBzaG90JyB9LAoreyBvaWQgPT4gJzQ1NDMnLAorICBkZXNjciA9PiAnc3RhdGlz dGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNlIGNhdXNlZCBieSBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3QnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25m bGljdF9sb2dpY2Fsc2xvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwg PT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisg IHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnIH0sCiB7 IG9pZCA9PiAnMzA2OCcsCiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25m bGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IHNoYXJlZCBidWZmZXIgcGluJywKICAgcHJv bmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluJywgcHJvdm9sYXRp bGUgPT4gJ3MnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5j bHVkZS9wZ3N0YXQuaAppbmRleCBjMzhiNjg5NzEwLi41YWRhNDFjMGU3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAt Njg3LDYgKzY4Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRyeQogCVBn U3RhdF9Db3VudGVyIG5fY29uZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBu X2NvbmZsaWN0X2xvY2s7CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9zbmFwc2hvdDsK KwlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3Vu dGVyIG5fY29uZmxpY3RfYnVmZmVycGluOwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3Rf c3RhcnR1cF9kZWFkbG9jazsKIAlQZ1N0YXRfQ291bnRlciBuX3RlbXBfZmlsZXM7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNTNmNjM2YzU2Zi4uNmY2NTExNmE2NCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE3LDQgKzIxNyw2IEBAIGV4dGVybiB2b2lkIENo ZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpOwogCiBleHRlcm4gdm9pZCBDaGVja1Ns b3RSZXF1aXJlbWVudHModm9pZCk7CiAKK2V4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkLCBj aGFyICpyZWFzb24pOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3Jh Z2UvcHJvY3NpZ25hbC5oCmluZGV4IDRhZTdkYzMzYjguLjI3MDM1YjA3NWIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBiL3NyYy9pbmNsdWRl L3N0b3JhZ2UvcHJvY3NpZ25hbC5oCkBAIC00MCw2ICs0MCw3IEBAIHR5cGVkZWYgZW51bQog CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFDRSwKIAlQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX0xPQ0ssCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hP VCwKKwlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9ULAogCVBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfU1RBUlRVUF9ERUFETE9DSywKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9zdGFuZGJ5LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaAppbmRleCAyYjFm MzQwYjgyLi40Zjg3OGU0OWE1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0 YW5kYnkuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaApAQCAtMjksNyAr MjksNyBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50 KHZvaWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJv bm1lbnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKLQkJCQkJCQkJCQkJ CVJlbEZpbGVOb2RlIG5vZGUpOworCQkJCQkJCQkJYm9vbCBvbkNhdGFsb2dUYWJsZSwgUmVs RmlsZU5vZGUgbm9kZSk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhUYWJsZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAppbmRleCBhNjg3ZTk5ZDFlLi5jODYzYzczNTE5IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTg2MCw2ICsxODYwLDcgQEAgcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHN8IFNFTEVDVCBkLm9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF90YWJsZXNwYWNlKGQub2lkKSBBUyBjb25mbF90YWJsZXNwYWNl LAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xv Y2ssCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoZC5vaWQpIEFTIGNv bmZsX3NuYXBzaG90LAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90 KGQub2lkKSBBUyBjb25mbF9sb2dpY2Fsc2xvdCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25m bGljdF9idWZmZXJwaW4oZC5vaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwKICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFk bG9jawogICAgRlJPTSBwZ19kYXRhYmFzZSBkOwo= --------------7F51D856A8B82A6093A90135 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" IHNyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtICAgICAgICAgICAgICAgICAgICAgIHwg IDM3ICsrKwogLi4uL3QvMDIyX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5wbCAg ICAgICAgfCAyNzIgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vdC8wMjNfc3RhbmRieV9s b2dpY2FsX2RlY29kaW5nX2NvbmZsaWN0cy5wbCAgICB8IDIxNSArKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDUyNCBpbnNlcnRpb25zKCspCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2Rl LnBtCmluZGV4IDk2NjdmNzY2N2UuLjFkNjI3MDBjYTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3BlcmwvUG9zdGdyZXNOb2RlLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2Rl LnBtCkBAIC0yMjIzLDYgKzIyMjMsNDMgQEAgc3ViIHBnX3JlY3Zsb2dpY2FsX3VwdG8KIAog PXBvZAogCis9aXRlbSAkbm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNl bGYsIG1hc3Rlciwgc2xvdF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxp Y2F0aW9uIHNsb3Qgb24gZ2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25h bWUsICRkYm5hbWUpID0gQF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhh bmRsZTsKKworCSRoYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcs ICctZCcsICRzZWxmLT5jb25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycs ICctUycsICRzbG90X25hbWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcy PicsIFwkc3RkZXJyKTsKKworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQs IHRoZSBzdGFuZGJ5IGxvb2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3Jk IGZyb20gdGhlIHJlc3RhcnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwg dGhlIHNsb3QKKwkjIHJlc3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xs X3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNu IElTIE5PVCBOVUxMCisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBX SEVSRSBzbG90X25hbWUgPSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3 YWl0aW5nIGZvciBsb2dpY2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7 CisKKwkjIE5vdyBhcnJhbmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9y IHdoaWNoIHBnX3JlY3Zsb2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7 CisKKwlpcygkc2VsZi0+c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2lj YWwnLCAkc2xvdF9uYW1lIC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNv dWxkIG5vdCBjcmVhdGUgc2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNr CiAKID1jdXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDIyX3N0YW5kYnlf bG9naWNhbF9kZWNvZGluZ194bWlucy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDIyX3N0 YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5kNjU0ZDc5NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX3htaW5zLnBsCkBA IC0wLDAgKzEsMjcyIEBACisjIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5IDogZW5z dXJlIHhtaW5zIGFyZSBhcHByb3ByaWF0ZWx5IHVwZGF0ZWQKKwordXNlIHN0cmljdDsKK3Vz ZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVzTm9kZTsKK3VzZSBUZXN0TGliOwordXNlIFRl c3Q6Ok1vcmUgdGVzdHMgPT4gMjM7Cit1c2UgUmVjdXJzaXZlQ29weTsKK3VzZSBGaWxlOjpD b3B5OwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CisKK215ICgkc3RkaW4sICRzdGRv dXQsICRzdGRlcnIsICRyZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfbWFzdGVy ID0gZ2V0X25ld19ub2RlKCdtYXN0ZXInKTsKK215ICRub2RlX3N0YW5kYnkgPSBnZXRfbmV3 X25vZGUoJ3N0YW5kYnknKTsKKworIyBOYW1lIGZvciB0aGUgcGh5c2ljYWwgc2xvdCBvbiBt YXN0ZXIKK215ICRtYXN0ZXJfc2xvdG5hbWUgPSAnbWFzdGVyX3BoeXNpY2FsJzsKKyMgTmFt ZSBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5CitteSAkc3RhbmRieV9zbG90bmFt ZSA9ICdzdGFuZGJ5X2xvZ2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNs b3QncyBwZ19yZXBsaWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdp dmVuIGJvb2xlYW4gY29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNo ZWQgYSBxdWllc2NlbnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15ICgkbm9k ZSwgJHNsb3RuYW1lLCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xsX3F1ZXJ5 X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHByCisJCUZS T00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90X25hbWUg PSAnJHNsb3RuYW1lJzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBzbG90 IHhtaW5zIHRvIGFkdmFuY2UiOworfQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBJbml0aWFsaXplIG1hc3RlciBub2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor JG5vZGVfbWFzdGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gMSwgaGFzX2FyY2hpdmlu ZyA9PiAxKTsKKyRub2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics IHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQK K21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5fbWVzc2FnZXMgPSAnZGVidWcyJworbG9n X2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKKyMgdmVyeSBwcm9tcHRseSB0ZXJtaW5hdGUg Y29uZmxpY3RpbmcgYmFja2VuZHMKK21heF9zdGFuZGJ5X3N0cmVhbWluZ19kZWxheSA9ICcy cycKK30pOworJG5vZGVfbWFzdGVyLT5kdW1wX2luZm87Ciskbm9kZV9tYXN0ZXItPnN0YXJ0 OworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtTRUxFQ1QgKiBG Uk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckbWFzdGVyX3Nsb3Ru YW1lJyk7XSk7CitteSAkYmFja3VwX25hbWUgPSAnYjEnOworJG5vZGVfbWFzdGVyLT5iYWNr dXAoJGJhY2t1cF9uYW1lKTsKKworIyBBZnRlciBzbG90IGNyZWF0aW9uLCB4bWlucyBtdXN0 IGJlIG51bGwKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUp OworaXMoJHNsb3QtPnsneG1pbid9LCAnJywgInhtaW4gbnVsbCIpOworaXMoJHNsb3QtPnsn Y2F0YWxvZ194bWluJ30sICcnLCAiY2F0YWxvZ194bWluIG51bGwiKTsKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBub2RlCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAorCSRub2Rl X21hc3RlciwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVz dG9yaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsCisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJG1hc3Rlcl9zbG90bmFtZSddKTsK KyRub2RlX3N0YW5kYnktPnN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVw KCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7 CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgeG1pbi9jYXRhbG9n X3htaW4gdmVyaWZpY2F0aW9uIGJlZm9yZSBhbmQgYWZ0ZXIgc3RhbmRieS1sb2dpY2FsLXNs b3QgY3JlYXRpb24uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFdp dGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLCB4bWluIGFuZCBjYXRhbG9nX3htaW4gbXVz dCBzdGlsbCBiZSBudWxsCiskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Ns b3RuYW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycsICJ4bWluIG51bGwgYWZ0ZXIgc3Rh bmRieSBqb2luIik7Citpcygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwgJycsICJjYXRhbG9n X3htaW4gbnVsbCBhZnRlciBzdGFuZGJ5IGpvaW4iKTsKKworJG5vZGVfc3RhbmRieS0+YXBw ZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0g b24KKyMgc2VuZCBzdGF0dXMgcmFwaWRseSBzbyB3ZSBwcm9tcHRseSBhZHZhbmNlIHhtaW4g b24gbWFzdGVyCit3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsID0gMQorXSk7Ciskbm9k ZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBz ZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBv biBtYXN0ZXIuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFk dmFuY2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNp bmNlIHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX21h c3RlciwgJG1hc3Rlcl9zbG90bmFtZSwgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNhdGFsb2df eG1pbiBJUyBOVUxMIik7CisKKyMgQ3JlYXRlIG5ldyBzbG90cyBvbiB0aGUgc3RhbmRieSwg aWdub3JpbmcgdGhlIG9uZXMgb24gdGhlIG1hc3RlciBjb21wbGV0ZWx5LgorIworIyBUaGlz IG11c3Qgc3VjY2VlZCBzaW5jZSB3ZSBrbm93IHdlIGhhdmUgYSBjYXRhbG9nX3htaW4gcmVz ZXJ2YXRpb24uIFdlCisjIG1pZ2h0J3ZlIGFscmVhZHkgc2VudCBob3Qgc3RhbmRieSBmZWVk YmFjayB0byBhZHZhbmNlIG91ciBwaHlzaWNhbCBzbG90J3MKKyMgY2F0YWxvZ194bWluIGJ1 dCBub3QgcmVjZWl2ZWQgdGhlIGNvcnJlc3BvbmRpbmcgeGxvZyBmb3IgdGhlIGNhdGFsb2cg eG1pbgorIyBhZHZhbmNlLCBpbiB3aGljaCBjYXNlIHdlJ2xsIGNyZWF0ZSBhIHNsb3QgdGhh dCBpc24ndCB1c2FibGUuIFRoZSBjYWxsaW5nCisjIGFwcGxpY2F0aW9uIGNhbiBwcmV2ZW50 IHRoaXMgYnkgY3JlYXRpbmcgYSB0ZW1wb3Jhcnkgc2xvdCBvbiB0aGUgbWFzdGVyIHRvCisj IGxvY2sgaW4gaXRzIGNhdGFsb2dfeG1pbi4gRm9yIGEgdHJ1bHkgcmFjZS1mcmVlIHNvbHV0 aW9uIHdlJ2QgbmVlZAorIyBtYXN0ZXItdG8tc3RhbmRieSBob3Rfc3RhbmRieV9mZWVkYmFj ayByZXBsaWVzLgorIworIyBJbiB0aGlzIGNhc2UgaXQgd29uJ3QgcmFjZSBiZWNhdXNlIHRo ZXJlJ3Mgbm8gY29uY3VycmVudCBhY3Rpdml0eSBvbiB0aGUKKyMgbWFzdGVyLgorIworJG5v ZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2RlX21hc3Rl ciwgJHN0YW5kYnlfc2xvdG5hbWUsICdwb3N0Z3JlcycpOworCiskbm9kZV9tYXN0ZXItPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+ bHNuKCdmbHVzaCcpKTsKKworIyBOb3cgdGhhdCBzbG90IGlzIGNyZWF0ZWQgb24gc3RhbmRi eSwgeG1pbiBhbmQgY2F0YWxvZ194bWluIHNob3VsZCBiZSBub24gTlVMTAorIyBvbiBib3Ro IG1hc3RlciBhbmQgc3RhbmRieS4gQnV0IG9uIG1hc3RlciwgdGhlIHhtaW5zIHdpbGwgYmUg dXBkYXRlZCBvbmx5CisjIGFmdGVyIGhvdCBzdGFuZGJ5IGZlZWRiYWNrIGlzIHJlY2VpdmVk Lgord2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLCAieG1p biBJUyBOT1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5PVCBOVUxMIik7CisKKyRzbG90 ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSk7Citpcygkc2xvdC0+ eyd4bWluJ30sICcnLCAibG9naWNhbCB4bWluIG51bGwiKTsKK2lzbnQoJHNsb3QtPnsnY2F0 YWxvZ194bWluJ30sICcnLCAibG9naWNhbCBjYXRhbG9nX3htaW4gbm90IG51bGwiKTsKKwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBTdGFuZGJ5IGxvZ2ljYWwg c2xvdCBzaG91bGQgYmUgYWJsZSB0byBmZXRjaCB0aGUgdGFibGUgY2hhbmdlcyBldmVuIHdo ZW4gdGhlCisjIHRhYmxlIGlzIGRyb3BwZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoaWQgc2VyaWFsIHByaW1hcnkga2V5LCBibGFoIHRleHQpJyk7 Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxW0lOU0VSVCBJTlRPIHRl c3RfdGFibGUoYmxhaCkgdmFsdWVzICgnaXR3b3JrcycpXSk7Ciskbm9kZV9tYXN0ZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBUQUJMRSB0ZXN0X3RhYmxlJyk7Ciskbm9kZV9t YXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVkFDVVVNJyk7CisKKyRub2RlX21hc3Rl ci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFz dGVyLT5sc24oJ2ZsdXNoJykpOworCisjIFNob3VsZCBzaG93IHRoZSBpbnNlcnRzIGV2ZW4g d2hlbiB0aGUgdGFibGUgaXMgZHJvcHBlZCBvbiBtYXN0ZXIKKygkcmV0LCAkc3Rkb3V0LCAk c3RkZXJyKSA9ICRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VMRUNUIGRh dGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Nsb3RuYW1l JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMn LCAnMScsICdpbmNsdWRlLXRpbWVzdGFtcCcsICcwJyldKTsKK2lzKCRzdGRlcnIsICcnLCAn c3RkZXJyIGlzIGVtcHR5Jyk7CitpcygkcmV0LCAwLCAncmVwbGF5IGZyb20gc2xvdCBzdWNj ZWVkZWQnKQorCW9yIGRpZSAnY2Fubm90IGNvbnRpbnVlIGlmIHNsb3QgcmVwbGF5IGZhaWxz JzsKK2lzKCRzdGRvdXQsIHF7QkVHSU4KK3RhYmxlIHB1YmxpYy50ZXN0X3RhYmxlOiBJTlNF UlQ6IGlkW2ludGVnZXJdOjEgYmxhaFt0ZXh0XTonaXR3b3JrcycKK0NPTU1JVH0sICdyZXBs YXkgcmVzdWx0cyBtYXRjaCcpOworCiskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAo JG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsK KworJHNsb3QgPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSk7Citpc250 KCRzbG90LT57J3htaW4nfSwgJycsICJwaHlzaWNhbCB4bWluIG5vdCBudWxsIik7CitteSAk c2F2ZWRfcGh5c2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194bWluJ307 Citpc250KCRzYXZlZF9waHlzaWNhbF9jYXRhbG9nX3htaW4sICcnLCAicGh5c2ljYWwgY2F0 YWxvZ194bWluIG5vdCBudWxsIik7CisKKyRzbG90ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgk c3RhbmRieV9zbG90bmFtZSk7Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAibG9naWNhbCB4 bWluIG51bGwiKTsKK215ICRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbiA9ICRzbG90LT57 J2NhdGFsb2dfeG1pbid9OworaXNudCgkc2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW4sICcn LCAibG9naWNhbCBjYXRhbG9nX3htaW4gbm90IG51bGwiKTsKKworCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBDYXRhbG9nIHhtaW5zIHNob3VsZCBhZHZhbmNlIGFm dGVyIHN0YW5kYnkgbG9naWNhbCBzbG90IGZldGNoZXMgdGhlIGNoYW5nZXMuCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIElkZWFsbHkgd2UnZCBqdXN0IGhvbGQg Y2F0YWxvZ194bWluLCBidXQgc2luY2UgaHNfZmVlZGJhY2sgY3VycmVudGx5IHVzZXMgdGhl IHNsb3QsCisjIHdlIGhvbGQgZG93biB4bWluLgorJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXFbQ1JFQVRFIFRBQkxFIGNhdGFsb2dfaW5jcmVhc2VfMSgpO10pOwor JG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBUQUJMRSB0ZXN0 X3RhYmxlKGlkIHNlcmlhbCBwcmltYXJ5IGtleSwgYmxhaCB0ZXh0KScpOworZm9yIG15ICRp ICgwIC4uIDIwMDApCit7CisgICAgJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXFbSU5TRVJUIElOVE8gdGVzdF90YWJsZShibGFoKSBWQUxVRVMgKCdlbnRyeSAkaScp XSk7Cit9Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtDUkVBVEUg VEFCTEUgY2F0YWxvZ19pbmNyZWFzZV8yKCk7XSk7Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnVkFDVVVNJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNo JykpOworCitjbXBfb2soJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSkt PnsnY2F0YWxvZ194bWluJ30sICI9PSIsCisJICAgJHNhdmVkX2xvZ2ljYWxfY2F0YWxvZ194 bWluLAorCSAgICJsb2dpY2FsIHNsb3QgY2F0YWxvZ194bWluIGhhc24ndCBhZHZhbmNlZCBi ZWZvcmUgZ2V0X2NoYW5nZXMiKTsKKworKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5v ZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCckc3RhbmRieV9zbG90bmFtZScsIE5VTEwsIE5V TEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5j bHVkZS10aW1lc3RhbXAnLCAnMCcpXSk7CitpcygkcmV0LCAwLCAncmVwbGF5IG9mIGJpZyBz ZXJpZXMgc3VjY2VlZGVkJyk7Citpc250KCRzdGRvdXQsICcnLCAncmVwbGF5ZWQgc29tZSBy b3dzJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCisjIGxvZ2ljYWwg c2xvdCBjYXRhbG9nX3htaW4gb24gc2xhdmUgc2hvdWxkIGFkdmFuY2UgYWZ0ZXIgcGdfbG9n aWNhbF9zbG90X2dldF9jaGFuZ2VzCit3YWl0X2Zvcl94bWlucygkbm9kZV9zdGFuZGJ5LCAk c3RhbmRieV9zbG90bmFtZSwKKwkJCSAgICJjYXRhbG9nX3htaW46OnZhcmNoYXI6OmludCA+ ICR7c2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW59Iik7Ciskc2xvdCA9ICRub2RlX3N0YW5k YnktPnNsb3QoJHN0YW5kYnlfc2xvdG5hbWUpOworbXkgJG5ld19sb2dpY2FsX2NhdGFsb2df eG1pbiA9ICRzbG90LT57J2NhdGFsb2dfeG1pbid9OworaXMoJHNsb3QtPnsneG1pbid9LCAn JywgImxvZ2ljYWwgeG1pbiBudWxsIik7CisKKyMgaG90IHN0YW5kYnkgZmVlZGJhY2sgc2hv dWxkIGFkdmFuY2UgbWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gbm93IHRoYXQgdGhlCisj IHN0YW5kYnkncyBzbG90IGRvZXNuJ3QgaG9sZCBpdCBkb3duIGFzIGZhci4KKyMgQnV0IG1h c3RlcidzIHBoeXMgY2F0YWxvZ194bWluIHNob3VsZCBub3QgZ28gcGFzdCB0aGUgc2xhdmUn cyBsb2dpY2FsIHNsb3QncworIyBjYXRhbG9nX3htaW4sIGV2ZW4gd2hpbGUgbWFzdGVyJ3Mg cGh5cyB4bWluIGFkdmFuY2VzLgorIworIyBGaXJzdCwgbWFrZSBzdXJlIG1hc3RlcidzIHht aW4gaXMgYWR2YW5jZWQuIFRoaXMgaGFwcGVucyBvbiBob3Qgc3RhbmRieQorIyBmZWVkYmFj ay4gU28gdGhpcyBjaGVjayBmb3IgbWFzdGVyJ3MgeG1pbiBhZHZhbmNlIGFsc28gbWFrZXMg c3VyZSBob3Qgc3RhbmRieQorIyBmZWVkYmFjayBoYXMgcmVhY2hlZCB0aGUgbWFzdGVyLCB3 aGljaCBpcyByZXF1aXJlZCBmb3IgdGhlIHN1YnNlcXVlbnQKKyMgY2F0YWxvZ194bWluIHRl c3QuCitteSAkdGVtcF9waHlzX3htaW4gPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9z bG90bmFtZSktPnsneG1pbid9OworJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKScpOword2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFz dGVyLCAkbWFzdGVyX3Nsb3RuYW1lLAorCQkJICAgInhtaW46OnZhcmNoYXI6OmludCA+ICR7 dGVtcF9waHlzX3htaW59Iik7Ciskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVy X3Nsb3RuYW1lKTsKKyMgTm93IGNoZWNrIHRoYXQgdGhlIG1hc3RlcidzIHBoeXMgY2F0YWxv Z194bWluIGhhcyBhZHZhbmNlZCBidXQgbm90IGJleW9uZAorIyBzdGFuZGJ5J3MgbG9naWNh bCBjYXRhbG9nX3htaW4KK2NtcF9vaygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwgIj4iLCAk c2F2ZWRfcGh5c2ljYWxfY2F0YWxvZ194bWluLAorCSd1cHN0cmVhbSBwaHlzaWNhbCBzbG90 IGNhdGFsb2dfeG1pbiBoYXMgYWR2YW5jZWQgd2l0aCBoc19mZWVkYmFjayBvbicpOworY21w X29rKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAiPT0iLCAkbmV3X2xvZ2ljYWxfY2F0YWxv Z194bWluLAorCSd1cHN0cmVhbSBwaHlzaWNhbCBzbG90IGNhdGFsb2dfeG1pbiBub3QgcGFz dCBkb3duc3RyZWFtIGNhdGFsb2dfeG1pbiB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CisKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBVcHN0cmVhbSBvbGRlc3RYaWQgc2hvdWxkIG5v dCBnbyBwYXN0IGRvd25zdHJlYW0gY2F0YWxvZ194bWluCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKKyMgRmlyc3QgYnVybiBzb21lIHhpZHMgb24gdGhlIG1hc3RlciBpbiBhbm90aGVy IERCLCBzbyB3ZSBwdXNoIHRoZSBtYXN0ZXIncworIyBuZXh0WGlkIGFoZWFkLgorZm9yZWFj aCBteSAkaSAoMSAuLiAxMDApCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKScpOworfQorCisjIEZvcmNlIHZhY3V1bSBm cmVlemUgb24gdGhlIG1hc3RlciBhbmQgZW5zdXJlIGl0cyBvbGRlc3RYbWluIGRvZXNuJ3Qg YWR2YW5jZQorIyBwYXN0IG91ciBuZWVkZWQgeG1pbi4gVGhlIG9ubHkgd2F5IHdlIGhhdmUg dmlzaWJpbGl0eSBpbnRvIHRoYXQgaXMgdG8gZm9yY2UKKyMgYSBjaGVja3BvaW50LgorJG5v ZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSBwZ19kYXRhYmFzZSBT RVQgZGF0YWxsb3djb25uID0gdHJ1ZSBXSEVSRSBkYXRuYW1lID0gJ3RlbXBsYXRlMCciKTsK K2ZvcmVhY2ggbXkgJGRibmFtZSAoJ3RlbXBsYXRlMScsICdwb3N0Z3JlcycsICdwb3N0Z3Jl cycsICd0ZW1wbGF0ZTAnKQoreworCSRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCRkYm5hbWUs ICdWQUNVVU0gRlJFRVpFJyk7Cit9Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnQ0hFQ0tQT0lOVCcpOworSVBDOjpSdW46OnJ1bihbJ3BnX2NvbnRyb2xkYXRhJywg JG5vZGVfbWFzdGVyLT5kYXRhX2RpcigpXSwgJz4nLCBcJHN0ZG91dCkKKwlvciBkaWUgInBn X2NvbnRyb2xkYXRhIGZhaWxlZCB3aXRoICQ/IjsKK215IEBjaGVja3BvaW50ID0gc3BsaXQo J1xuJywgJHN0ZG91dCk7CitteSAkb2xkZXN0WGlkID0gJyc7Citmb3JlYWNoIG15ICRsaW5l IChAY2hlY2twb2ludCkKK3sKKwlpZiAoJGxpbmUgPX4gcXIvXkxhdGVzdCBjaGVja3BvaW50 J3Mgb2xkZXN0WElEOlxzKyhcZCspLykKKwl7CisJCSRvbGRlc3RYaWQgPSAkMTsKKwl9Cit9 CitkaWUgJ25vIG9sZGVzdFhJRCBmb3VuZCBpbiBjaGVja3BvaW50JyB1bmxlc3MgJG9sZGVz dFhpZDsKKworY21wX29rKCRvbGRlc3RYaWQsICI8PSIsICRub2RlX3N0YW5kYnktPnNsb3Qo JHN0YW5kYnlfc2xvdG5hbWUpLT57J2NhdGFsb2dfeG1pbid9LAorCSAgICd1cHN0cmVhbSBv bGRlc3RYaWQgbm90IHBhc3QgZG93bnN0cmVhbSBjYXRhbG9nX3htaW4gd2l0aCBoc19mZWVk YmFjayBvbicpOworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJV UERBVEUgcGdfZGF0YWJhc2UgU0VUIGRhdGFsbG93Y29ubiA9IGZhbHNlIFdIRVJFIGRhdG5h bWUgPSAndGVtcGxhdGUwJyIpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIERyb3Agc2xvdAorIyBNYWtlIHN1cmUgc3RhbmRi eSBzbG90cyBhcmUgZHJvcHBhYmxlLCBhbmQgcHJvcGVybHkgY2xlYXIgdGhlIHVwc3RyZWFt J3MgeG1pbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaXMoJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdTSE9X IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrJyksICdvbicsICdoc19mZWVkYmFjayBpcyBvbicpOwor Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVDVCBwZ19kcm9wX3Jl cGxpY2F0aW9uX3Nsb3QoJyRzdGFuZGJ5X3Nsb3RuYW1lJyldKTsKKworaXMoJG5vZGVfc3Rh bmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSktPnsnc2xvdF90eXBlJ30sICcnLCAnc2xv dCBvbiBzdGFuZGJ5IGRyb3BwZWQgbWFudWFsbHknKTsKKworIyBlbnN1cmUgd2FscmVjZWl2 ZXIgZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBj YXRhbG9nX3htaW4gb24gbWFzdGVyLiBjYXRhbG9nX3htaW4gc2hvdWxkIGJlY29tZSBOVUxM IGJlY2F1c2Ugd2UgZHJvcHBlZAorIyB0aGUgbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1p bnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTk9U IE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxpY3RzLnBs IGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjNfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX2Nv bmZsaWN0cy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zMDk0 ZTAwNmMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjNfc3Rh bmRieV9sb2dpY2FsX2RlY29kaW5nX2NvbmZsaWN0cy5wbApAQCAtMCwwICsxLDIxNSBAQAor IyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSA6IHRlc3QgY29uZmxpY3QgcmVjb3Zl cnk7IGFuZCBvdGhlciB0ZXN0cyB0aGF0CisjIHZlcmlmeSBzbG90cyBnZXQgZHJvcHBlZCBh cyBleHBlY3RlZC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3Rn cmVzTm9kZTsKK3VzZSBUZXN0TGliOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMjQ7Cit1 c2UgUmVjdXJzaXZlQ29weTsKK3VzZSBGaWxlOjpDb3B5OwordXNlIFRpbWU6OkhpUmVzIHF3 KHVzbGVlcCk7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRyZXQsICRoYW5k bGUsICRzbG90KTsKKworbXkgJG5vZGVfbWFzdGVyID0gZ2V0X25ld19ub2RlKCdtYXN0ZXIn KTsKK215ICRub2RlX3N0YW5kYnkgPSBnZXRfbmV3X25vZGUoJ3N0YW5kYnknKTsKKworIyBO YW1lIGZvciB0aGUgcGh5c2ljYWwgc2xvdCBvbiBtYXN0ZXIKK215ICRtYXN0ZXJfc2xvdG5h bWUgPSAnbWFzdGVyX3BoeXNpY2FsJzsKKworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBz bG90J3MgcGdfcmVwbGljYXRpb25fc2xvdHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBn aXZlbiBib29sZWFuIGNvbmRpdGlvbiB0byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFj aGVkIGEgcXVpZXNjZW50IHN0YXRlCitzdWIgd2FpdF9mb3JfeG1pbnMKK3sKKwlteSAoJG5v ZGUsICRzbG90bmFtZSwgJGNoZWNrX2V4cHIpID0gQF87CisKKwkkbm9kZS0+cG9sbF9xdWVy eV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXFbCisJCVNFTEVDVCAkY2hlY2tfZXhwcgorCQlG Uk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMKKwkJV0hFUkUgc2xvdF9uYW1l ID0gJyRzbG90bmFtZSc7CisJXSkgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBmb3Igc2xv dCB4bWlucyB0byBhZHZhbmNlIjsKK30KKworIyBDcmVhdGUgdGhlIHJlcXVpcmVkIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieS4KK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90cworeworCSRu b2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9kZV9tYXN0 ZXIsICdkcm9wc2xvdCcsICd0ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVyLCAnYWN0aXZlc2xvdCcsICd0ZXN0 ZGInKTsKK30KKworIyBBY3F1aXJlIG9uZSBvZiB0aGUgc3RhbmRieSBsb2dpY2FsIHNsb3Rz IGNyZWF0ZWQgYnkgY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKQorc3ViIG1ha2Vfc2xvdF9hY3Rp dmUKK3sKKwlteSAkc2xvdF91c2VyX2hhbmRsZTsKKworCSMgbWFrZSBzdXJlIGFjdGl2ZXNs b3QgaXMgaW4gdXNlCisJcHJpbnQgInN0YXJ0aW5nIHBnX3JlY3Zsb2dpY2FsXG4iOworCSRz bG90X3VzZXJfaGFuZGxlID0gSVBDOjpSdW46OnN0YXJ0KFsncGdfcmVjdmxvZ2ljYWwnLCAn LWQnLCAkbm9kZV9zdGFuZGJ5LT5jb25uc3RyKCd0ZXN0ZGInKSwgJy1TJywgJ2FjdGl2ZXNs b3QnLCAnLWYnLCAnLScsICctLW5vLWxvb3AnLCAnLS1zdGFydCddLCAnPicsIFwkc3Rkb3V0 LCAnMj4nLCBcJHN0ZGVycik7CisKKwl3aGlsZSAoISRub2RlX3N0YW5kYnktPnNsb3QoJ2Fj dGl2ZXNsb3QnKS0+eydhY3RpdmVfcGlkJ30pCisJeworCQl1c2xlZXAoMTAwXzAwMCk7CisJ CXByaW50ICJ3YWl0aW5nIGZvciBzbG90IHRvIGJlY29tZSBhY3RpdmVcbiI7CisJfQorCXJl dHVybiAkc2xvdF91c2VyX2hhbmRsZTsKK30KKworIyBDaGVjayBpZiBhbGwgdGhlIHNsb3Rz IG9uIHN0YW5kYnkgYXJlIGRyb3BwZWQuIFRoZXNlIGluY2x1ZGUgdGhlICdhY3RpdmVzbG90 JworIyB0aGF0IHdhcyBhY3F1aXJlZCBieSBtYWtlX3Nsb3RfYWN0aXZlKCksIGFuZCB0aGUg bm9uLWFjdGl2ZSAnZHJvcHNsb3QnLgorc3ViIGNoZWNrX3Nsb3RzX2Ryb3BwZWQKK3sKKwlt eSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisJbXkgJHJldHVybjsKKworCWlzKCRub2Rl X3N0YW5kYnktPnNsb3QoJ2Ryb3BzbG90JyktPnsnc2xvdF90eXBlJ30sICcnLCAnZHJvcHNs b3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnYWN0 aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24gc3RhbmRieSBk cm9wcGVkJyk7CisKKwkjIG91ciBjbGllbnQgc2hvdWxkJ3ZlIHRlcm1pbmF0ZWQgaW4gcmVz cG9uc2UgdG8gdGhlIHdhbHNlbmRlciBlcnJvcgorCWV2YWwgeworCQkkc2xvdF91c2VyX2hh bmRsZS0+ZmluaXNoOworCX07CisJJHJldHVybiA9ICQ/OworCWNtcF9vaygkcmV0dXJuLCAi IT0iLCAwLCAicGdfcmVjdmxvZ2ljYWwgZXhpdGVkIG5vbi16ZXJvXG4iKTsKKwlpZiAoJHJl dHVybikgeworCQlsaWtlKCRzdGRlcnIsIHFyL2NvbmZsaWN0IHdpdGggcmVjb3ZlcnkvLCAn cmVjdmxvZ2ljYWwgcmVjb3ZlcnkgY29uZmxpY3QnKTsKKwkJbGlrZSgkc3RkZXJyLCBxci9t dXN0IGJlIGRyb3BwZWQvLCAncmVjdmxvZ2ljYWwgZXJyb3IgZGV0YWlsJyk7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxp emUgbWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9tYXN0 ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOwor JG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9s ZXZlbCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9z ZW5kZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVy Ym9zaXR5ID0gdmVyYm9zZQorIyBzZW5kIHN0YXR1cyByYXBpZGx5IHNvIHdlIHByb21wdGx5 IGFkdmFuY2UgeG1pbiBvbiBtYXN0ZXIKK3dhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwg PSAxCisjIHZlcnkgcHJvbXB0bHkgdGVybWluYXRlIGNvbmZsaWN0aW5nIGJhY2tlbmRzCitt YXhfc3RhbmRieV9zdHJlYW1pbmdfZGVsYXkgPSAnMnMnCit9KTsKKyRub2RlX21hc3Rlci0+ ZHVtcF9pbmZvOworJG5vZGVfbWFzdGVyLT5zdGFydDsKKworJG5vZGVfbWFzdGVyLT5wc3Fs KCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNFIHRlc3RkYl0pOworCiskbm9kZV9tYXN0 ZXItPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNUICogRlJPTSBwZ19jcmVhdGVfcGh5 c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJG1hc3Rlcl9zbG90bmFtZScpO10pOworbXkgJGJh Y2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX21hc3Rlci0+YmFja3VwKCRiYWNrdXBfbmFtZSk7 CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgc2xhdmUgbm9kZQor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+aW5pdF9mcm9tX2Jh Y2t1cCgKKwkkbm9kZV9tYXN0ZXIsICRiYWNrdXBfbmFtZSwKKwloYXNfc3RyZWFtaW5nID0+ IDEsCisJaGFzX3Jlc3RvcmluZyA9PiAxKTsKKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25m KCdwb3N0Z3Jlc3FsLmNvbmYnLAorCXFxW3ByaW1hcnlfc2xvdF9uYW1lID0gJyRtYXN0ZXJf c2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5LT5zdGFydDsKKyRub2RlX21hc3Rlci0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5s c24oJ2ZsdXNoJykpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0OiBEcm9wIGNvbmZsaWN0aW5n IHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCisjIFNjZW5hcmlvIDEgOiBob3Rfc3Rh bmRieV9mZWVkYmFjayBvZmYKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdh eSB0byByZXByb2R1Y2UgcmVjb3ZlcnkgY29uZmxpY3QgaXMgdG8gcnVuIFZBQ1VVTSBGVUxM IHdpdGgKKyMgaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiBzbGF2ZS4KKyRu b2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCitob3Rfc3Rh bmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworIyBl bnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVk IHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0ZXIuIEJvdGggc2hvdWxkIGJlIE5V TEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0 ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOVUxMIEFORCBjYXRhbG9n X3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgpOworCisj IFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9kZV9tYXN0ZXItPnNhZmVf cHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24o J2ZsdXNoJykpOworCitjaGVja19zbG90c19kcm9wcGVkKCRoYW5kbGUpOworCisjIFR1cm4g aG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2Nv bmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK10p OworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVl ZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9n X3htaW4gb24gbWFzdGVyLiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNo b3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4g TlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygk bm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOT1QgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IERy b3AgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFy aW8gMiA6IGluY29ycmVjdCB3YWxfbGV2ZWwgYXQgbWFzdGVyCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9naWNhbF9z bG90cygpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgpOworCisjIE1ha2UgbWFz dGVyIHdhbF9sZXZlbCByZXBsaWNhLiBUaGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0 LgorJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWword2Fs X2xldmVsID0gJ3JlcGxpY2EnCitdKTsKKyRub2RlX21hc3Rlci0+cmVzdGFydDsKKworJG5v ZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhh bmRsZSk7CisKKyMgUmVzdG9yZSBtYXN0ZXIgd2FsX2xldmVsCiskbm9kZV9tYXN0ZXItPmFw cGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9naWNhbCcK K10pOworJG5vZGVfbWFzdGVyLT5yZXN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1 c2gnKSk7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgRFJPUCBEQVRBQkFTRSBzaG91bGQgZHJvcHMgaXQncyBzbG90cywgaW5j bHVkaW5nIGFjdGl2ZSBzbG90cy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGEgc2xvdCBvbiBhIGRhdGFiYXNlIHRo YXQgd291bGQgbm90IGJlIGRyb3BwZWQuIFRoaXMgc2xvdCBzaG91bGQgbm90CisjIGdldCBk cm9wcGVkLgorJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5 KCRub2RlX21hc3RlciwgJ290aGVyc2xvdCcsICdwb3N0Z3JlcycpOworY3JlYXRlX2xvZ2lj YWxfc2xvdHMoKTsKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgZHJvcGRi IG9uIHRoZSBtYXN0ZXIgdG8gdmVyaWZ5IHNsb3RzIGFyZSBkcm9wcGVkIG9uIHN0YW5kYnkK KyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbRFJPUCBEQVRBQkFTRSB0 ZXN0ZGJdKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5k YnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2lzKCRub2Rl X3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXFbU0VMRUNUIEVYSVNUUyhTRUxF Q1QgMSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAndGVzdGRiJyldKSwgJ2Yn LAorCSdkYXRhYmFzZSBkcm9wcGVkIG9uIHN0YW5kYnknKTsKKworY2hlY2tfc2xvdHNfZHJv cHBlZCgkaGFuZGxlKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnb3RoZXJzbG90Jykt Pnsnc2xvdF90eXBlJ30sICdsb2dpY2FsJywKKwknb3RoZXJzbG90IG9uIHN0YW5kYnkgbm90 IGRyb3BwZWQnKTsKKworIyBDbGVhbnVwIDogbWFudWFsbHkgZHJvcCB0aGUgc2xvdCB0aGF0 IHdhcyBub3QgZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtT RUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdvdGhlcnNsb3QnKV0pOwo= --------------7F51D856A8B82A6093A90135 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" RnJvbSA2ODY1Y2U3ODJkOGYyNDE2MjU1NTk4YjkzNWZkZWQ4ODc2NjBhMzNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RmFicj1DMz1BRHppbz0yMGRlPTIw Um95ZXM9MjBNZWxsbz89CiA8ZmFicml6aW9tZWxsb0BnbWFpbC5jb20+CkRhdGU6IE1vbiwg MTQgRGVjIDIwMjAgMTM6NDc6NDEgLTAzMDAKU3ViamVjdDogW1BBVENIIHY3IDUvNV0gRG9j IGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2ljYWwgZGVjb2RpbmcKCi0t LQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIHwgMTggKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsZGVjb2Rpbmcuc2dtbAppbmRleCA4MTNhMDM3ZmFjLi4wMDM1MjBkYzAyIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCkBAIC0yNDgsNiArMjQ4LDI0IEBAICQgcGdfcmVj dmxvZ2ljYWwgLWQgcG9zdGdyZXMgLS1zbG90PXRlc3QgLS1kcm9wLXNsb3QKICAgICAgbWF5 IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2ZW4gdGltZS4KICAgICA8 L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qg Y2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBUbyBwcmV2ZW50CisgICAg IDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmluZyByZXF1aXJlZCByb3dz IGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5hbWU+aG90X3N0YW5kYnlf ZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhlCisgICAgIHN0YW5kYnku IEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dzIGdldCByZW1vdmVkLCB0 aGUgc2xvdCBnZXRzCisgICAgIGRyb3BwZWQuICBFeGlzdGluZyBsb2dpY2FsIHNsb3RzIG9u IHN0YW5kYnkgYWxzbyBnZXQgZHJvcHBlZCBpZiB3YWxfbGV2ZWwKKyAgICAgb24gcHJpbWFy eSBpcyByZWR1Y2VkIHRvIGxlc3MgdGhhbiAnbG9naWNhbCcuCisgICAgPC9wYXJhPgorCisg ICAgPHBhcmE+CisgICAgIEZvciBhIGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkLCBpdCBi dWlsZHMgYSBoaXN0b3JpYyBzbmFwc2hvdCwgZm9yIHdoaWNoCisgICAgIGluZm9ybWF0aW9u IG9mIGFsbCB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdHJhbnNhY3Rpb25zIGlzIGVzc2VudGlh bC4gT24KKyAgICAgcHJpbWFyeSwgdGhpcyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUsIGJ1 dCBvbiBzdGFuZGJ5LCB0aGlzIGluZm9ybWF0aW9uCisgICAgIGhhcyB0byBiZSBvYnRhaW5l ZCBmcm9tIHByaW1hcnkuIFNvLCBzbG90IGNyZWF0aW9uIG1heSB3YWl0IGZvciBzb21lCisg ICAgIGFjdGl2aXR5IHRvIGhhcHBlbiBvbiB0aGUgcHJpbWFyeS4gSWYgdGhlIHByaW1hcnkg aXMgaWRsZSwgY3JlYXRpbmcgYQorICAgICBsb2dpY2FsIHNsb3Qgb24gc3RhbmRieSBtYXkg dGFrZSBhIG5vdGljZWFibGUgdGltZS4KKyAgICA8L3BhcmE+CisKICAgICA8Y2F1dGlvbj4K ICAgICAgPHBhcmE+CiAgICAgICBSZXBsaWNhdGlvbiBzbG90cyBwZXJzaXN0IGFjcm9zcyBj cmFzaGVzIGFuZCBrbm93IG5vdGhpbmcgYWJvdXQgdGhlIHN0YXRlCi0tIAoyLjI1LjEKCgo= --------------7F51D856A8B82A6093A90135--