Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tWDlE-00F4pF-0X for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jan 2025 12:05:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tWDlD-00FfOO-Bf for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jan 2025 12:05:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tWDlC-00FfHI-53 for pgsql-hackers@lists.postgresql.org; Fri, 10 Jan 2025 12:05:06 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tWDl1-000sFO-2E for pgsql-hackers@postgresql.org; Fri, 10 Jan 2025 12:05:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1736510692; bh=/CAo4gWD4VcaoQTSPBff8+U/V4qyPv+PPemmjRNcYUU=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=XwzqxLG2y4WbTpjjWHDeqVSpQNmWkLAzvbSN9xQ+1QiRJgYEfs/U1danWZ4uKlTb6 kHZsc/cYSlKFSCfn1dCRFQkF4FCO0S7qTgyqpEmwag/j77ZoQORsPLCf9r+IR80m/c B9wlXphqgNIiL0X5SKK8Xt5HqZiPPccnLDuhHNaqXSR//O+6PpAlQbukZOAWrAyCmt H79QP93u06M2+0JVhIBLKAD1BMVMaQCS0rgOeYo1n3bbgEaUGmxvYOCbljILV9in7X 6PhG266Q1jZY7P/WdOQHb8j4qIMxuGtOmfXg8TsAw7ywIv8KIUdGFjiQhEbIrpNNs6 2ki/gjFAML+4A== Received: from [10.4.12.74] (unknown [93.174.131.141]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id E18C9606DF; Fri, 10 Jan 2025 15:04:51 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------Tg2A7YPgkbXUDy0UqOjXI9mZ" Message-ID: <8f933105-80b3-4eea-8aaf-902bbba45f79@postgrespro.ru> Date: Fri, 10 Jan 2025 15:04:51 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Sami Imseih Cc: Ilia Evdokimov , Alexander Korotkov , Jim Nasby , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , pgsql-hackers , a.lepikhov@postgrespro.ru References: <9485d892-fd04-4e3a-ac24-7dd767cb7333@postgrespro.ru> <0B6CBF4C-CC2A-4200-9126-CE3A390D938B@upgrade.com> <6732acf8ce0f31025b535ae1a64568750924a887.camel@moonset.ru> <5AA8FFD5-6DE2-4A31-8E00-AE98F738F5D1@upgrade.com> <85b963fe-5977-43aa-9241-75b862abcc69@postgrespro.ru> <9C7A167C-DCDE-4A17-9ABE-6276723FEC50@upgrade.com> <2d493cf9-9ba7-4cc1-a3f2-67afd7c163ee@postgrespro.ru> <77e6e723-0d3e-4235-8386-03d143916125@postgrespro.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: X-KSMG-AntiPhishing: NotDetected, bases: 2025/01/10 11:27:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/01/10 08:29:00 #26967733 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Tg2A7YPgkbXUDy0UqOjXI9mZ Content-Type: multipart/alternative; boundary="------------Zlp7lMvTfdRHiernjt60CDhf" --------------Zlp7lMvTfdRHiernjt60CDhf Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, I have updated the patch. Fix minor mistakes in the document, added the wraparound_failsafe_count statistics - it accounts the number of times when the vacuum operates heap relation to prevent workaround problem, fixed "shemaname". On 06.01.2025 05:00, Sami Imseih wrote: >> I am yet to look very closely, but I think some additional columns that >> will be useful is the number of failsafe autovacuums occurred. >> >> Do you mean when the autovacuum started to prevent workaround? >> > Specifically vacuum_failsafe_age [1] when autovacuum automatically > performs a vacuum without index cleanup, without truncate, bypassing > the vacuum ring buffer and disabling the cost limits. The purpose of this > is a last ditch effort to avoid wraparound and is triggered at 1.6 billion > transactions by default. When this state occurs, there is a single log > written for every table that is vacuumed with these options [2], and > my thoughts is to also track in the view as the use of these options > will overtime make the indexes bloat over time and less space is > given back to the OS due to skipped truncations. For most workloads, > this should not be common, but I am thinking of the extreme cases > or if someone potentially misconfigured the vacuum_failsafe_age. > > As I thought about this more, failsafe autovacuum could be tracked on > the database level, pg_stat_database, since this guc can't be set > on a relation level. I thought again about adding a statistic to account for skipping truncation or index scans. In my opinion, we have statistics like removed_pages on the heap relations. They are "the count number pages removed by relation truncation". So if truncation was disabled on the heap relation, their count will not increase. As for skipped_indexes, we added an index_vacuum_count statistic that counts the number of indexes on the heap relation that were vacuumed during the vacuum procedure. If their count does not increase, then vacuum will likely skip them. >> Also >> the counter for number of index_cleanup skipped, truncate phase >> skipped and toast vacuuming skipped ( the latter will only be relevant >> for the main relation ). >> >> I can add, but concerns have already been expressed about the large amount of >> vacuum statistics and, as a consequence, this leads >> to the allocation of additional memory (3 times). >> Of course, now we are saved by the guc I added for statistics... >> I understand that this information can better show the efficiency of the vacuum, >> but how does it help in setting it up for heap relations? > An administrator will find this information to be useful especially > if for some reason most vacuums are being run with these > options being off either via a manual vacuum or someone > turning off index_cleanup in the tables storage parameter. > > postgres=# alter table t set (vacuum_index_cleanup = off, > vacuum_truncate = off ); > ALTER TABLE You can take these parameters into account when analyzing vacuum statistics, right? Display them side by side. >> regarding the skipped truncate phase, the statistics are already collected in vacrel->nonempty_pages, >> it's easy to put them outside. I think the current statistics only show the number of deleted tuples and pages >> (both deleted and those visited by vacuum during tuple deletion), so the opposite view won't hurt. > Can you clarify what you mean by "so the opposite view won't hurt." ? I meant that it wouldn't be excessive, but at the moment I think otherwise. We already have removed_pages and it will be enough. >> index_cleanup skipped can be obtained based on information from a small number of >> vacuum buffer statistics and the number of pages of indexes that belong to heap relations. >> I think you can notice the behavior through current statistics: > I don't think there is a view that provides cumulative vacuum buffer > stats currently. We show it now in the views for heap relations, index relations, databases (pg_stat_vacuum_tables, pg_stat_vacuum_indexes, pg_stat_vacuum_databases) or you meant something else? > pg_stat_io could be helpful for this purpose, but that is a cluster > wide view. As it > stands now, I think it's quite difficult for a user to determine for a > fact if indexes or > truncate is being skipped I think so, it is difficult to get a clear picture of what is happening by analyzing only this information. We collect other statistics on vacuumed relation pages that can help give a full picture: the number of pages missed due to failure to get a clean-up lock on an index (missed_tuples), the number of vacuumed tuples (tuples_deleted), and recently deleted tuples (recently_dead_tuples). I think that's enough. >> Secondly, where to put the total time of vacuum for indexes and databases? >> It would be incorrect not to take them into account at all. What if we remove the total time from >> the heap statistics and add it to pg_stat_tables and only leave the vacuum statistics total time of >> vacuum operation of indexes and databases? >> It seems strange to me that they will have to be viewed from different views. >> >> I think it is necessary to look at the total time for tables into perspective of how much >> time vacuum spent in total on processing indexes, since indexes can be bloated, for example. >> I think it is better to leave these statistics here. > You make valid points. I now think because track_vacuum_statistics is > optional, we should track total_time in 2 places. First place in the new > view being proposed here and the second place is in pg_stat_all_tables > as being proposed here [3]. This way if track_vacuum_statistics is off, the > total_time of vacuum could still be tracked by pg_stat_all_tables. > > By the way, the current patch does not track materialized view, > but it should as materialized views can also be vacuumed. > > Regards, > > Sami > > [1]https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE > [2]https://github.com/postgres/postgres/blob/master/src/backend/access/heap/vacuumlazy.c#L2437-L2444 > [3]https://commitfest.postgresql.org/52/5485/ > > I don't agree with this. Firstly, the hook is enabled by default, that is, it must be specially disabled so that the vacuum statistics are not collected. Secondly, it will cause confusion. First, the hook was disabled and statistics were collected in one place - pg_stat_all_tables, and then it was enabled and the user notices that the statistics there stopped accumulating, he is in a panic, "suddenly the vacuum does not work, what to do?". The second point here bothers me, how to take into account this statistics with the current detailed vacuum statistics? After all, adding these values ​​​​is wrong - they do not show the correct statistics regarding the same pages processed by vacuum, ignoring it later means that they will be redundant. I think it is better to save it here, since this will save us from possible confusion. Secondly, it will immediately show other important parameters regarding this statistics - how long the vacuum was sleep (delay_time in my patches), how much time the vacuum spent on processing indexes during its processing. Without this information, this assessment will not be voluminous and indicative enough. -- Regards, Alena Rybakina Postgres Professional --------------Zlp7lMvTfdRHiernjt60CDhf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi, I have updated the patch. Fix minor mistakes in the document, added the wraparound_failsafe_count statistics  - it accounts the number of times when the vacuum operates heap relation to prevent workaround problem, fixed "shemaname".

On 06.01.2025 05:00, Sami Imseih wrote:
I am yet to look very closely, but I think some additional columns that
will be useful is the number of failsafe autovacuums occurred.

Do you mean when the autovacuum started to prevent workaround?

Specifically vacuum_failsafe_age [1] when autovacuum automatically
performs a vacuum without index cleanup, without truncate, bypassing
the vacuum ring buffer and disabling the cost limits. The purpose of this
is a last ditch effort to avoid wraparound and is triggered at 1.6 billion
transactions by default. When this state occurs, there is a single log
written for every table that is vacuumed with these options [2], and
my thoughts is to also track in the view as the use of these options
will overtime make the indexes bloat over time and less space is
given back to the OS due to skipped truncations. For most workloads,
this should not be common, but I am thinking of the extreme cases
or if someone potentially misconfigured the vacuum_failsafe_age.

As I thought about this more, failsafe autovacuum could be tracked on
the database level, pg_stat_database, since this guc can't be set
on a relation level.

I thought again about adding a statistic to account for skipping truncation or index scans. In my opinion, we have statistics like removed_pages on the heap relations. They are "the count number pages removed by relation truncation". So if truncation was disabled on the heap relation, their count will not increase.

As for skipped_indexes, we added an index_vacuum_count statistic that counts the number of indexes on the heap relation that were vacuumed during the vacuum procedure. If their count does not increase, then vacuum will likely skip them.

Also
the counter for number of index_cleanup skipped, truncate phase
skipped and toast vacuuming skipped ( the latter will only be relevant
for the main relation ).

I can add, but concerns have already been expressed about the large amount of
vacuum statistics and, as a consequence, this leads
to the allocation of additional memory (3 times).
Of course, now we are saved by the guc I added for statistics...
I understand that this information can better show the efficiency of the vacuum,
but how does it help in setting it up for heap relations?
An administrator will find this information to be useful especially
if for some reason most vacuums are being run with these
options being off either via a manual vacuum or someone
turning off index_cleanup in the tables storage parameter.

postgres=# alter table t set (vacuum_index_cleanup = off,
vacuum_truncate = off );
ALTER TABLE
You can take these parameters into account when analyzing vacuum statistics, right? Display them side by side.
regarding the skipped truncate phase, the statistics are already collected in vacrel->nonempty_pages,
it's easy to put them outside. I think the current statistics only show the number of deleted tuples and pages
(both deleted and those visited by vacuum during tuple deletion), so the opposite view won't hurt.
Can you clarify what you mean by "so the opposite view won't hurt." ?
I meant that it wouldn't be excessive, but at the moment I think otherwise. We already have removed_pages and it will be enough.

      
index_cleanup skipped can be obtained based on information from a small number of
vacuum buffer statistics and the number of pages of indexes that belong to heap relations.
I think you can notice the behavior through current statistics:
I don't think there is a view that provides cumulative vacuum buffer
stats currently.
We show it now in the views for heap relations, index relations, databases (pg_stat_vacuum_tables, pg_stat_vacuum_indexes, pg_stat_vacuum_databases) or you meant something else?
pg_stat_io could be helpful for this purpose, but that is a cluster
wide view. As it
stands now, I think it's quite difficult for a user to determine for a
fact if indexes or
truncate is being skipped

I think so, it is difficult to get a clear picture of what is happening by analyzing only this information.

We collect other statistics on vacuumed relation pages that can help give a full picture: the number of pages missed due to failure to get a clean-up lock on an index (missed_tuples), the number of vacuumed tuples (tuples_deleted), and recently deleted tuples (recently_dead_tuples). I think that's enough.

Secondly, where to put the total time of vacuum for indexes and databases?
It would be incorrect not to take them into account at all. What if we remove the total time from
the heap statistics and add it to pg_stat_tables and only leave the vacuum statistics total time of
vacuum operation of indexes and databases?
It seems strange to me that they will have to be viewed from different views.

I think it is necessary to look at the total time for tables into perspective of how much
time vacuum spent in total on processing indexes, since indexes can be bloated, for example.
I think it is better to leave these statistics here.
You make valid points. I now think because track_vacuum_statistics is
optional, we should track total_time in 2 places. First place in the new
view being proposed here and the second place is in pg_stat_all_tables
as being proposed here [3]. This way if track_vacuum_statistics is off, the
total_time of vacuum could still be tracked by pg_stat_all_tables.

By the way, the current patch does not track materialized view,
but it should as materialized views can also be vacuumed.

Regards,

Sami

[1] https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE
[2] https://github.com/postgres/postgres/blob/master/src/backend/access/heap/vacuumlazy.c#L2437-L2444
[3] https://commitfest.postgresql.org/52/5485/


I don't agree with this. 

Firstly, the hook is enabled by default, that is, it must be specially disabled so that the vacuum statistics are not collected. 

Secondly, it will cause confusion. First, the hook was disabled and statistics were collected in one place - pg_stat_all_tables, and then it was enabled and the user notices that the statistics there stopped accumulating,
he is in a panic, "suddenly the vacuum does not work, what to do?". The second point here bothers me, how to take into account this statistics with the current detailed vacuum statistics? After all, adding these values ​​​​is wrong -
they do not show the correct statistics regarding the same pages processed by vacuum, ignoring it later means that they will be redundant. I think it is better to save it here, since this will save us from possible confusion. 

Secondly, it will immediately show other important parameters regarding this statistics - how long the vacuum was sleep (delay_time in my patches), how much time the vacuum spent on processing indexes during its processing.
Without this information, this assessment will not be voluminous and indicative enough.

-- 
Regards,
Alena Rybakina
Postgres Professional
--------------Zlp7lMvTfdRHiernjt60CDhf-- --------------Tg2A7YPgkbXUDy0UqOjXI9mZ Content-Type: text/x-patch; charset=UTF-8; name="v15-0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v15-0001-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSAwY2Q4NTAyZWZlOTg4NDA3YzA1ZWRkOGE4YmJjODEzNzQwNjk2YmYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogRnJpLCAxMCBKYW4gMjAyNSAwOTo1NzoxMyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMS80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBoZWFwIHJlbGF0aW9ucy4KClZhbHVlIG9mIHRvdGFsX2Js a3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfZGlydGllZCBhcmUgbnVtYmVy IG9mCmhpdHRlZCwgbWlzc2VkIGFuZCBkaXJ0aWVkIHBhZ2VzIGluIHNoYXJlZCBidWZmZXJz IGR1cmluZyBhIHZhY3V1bSBvcGVyYXRpb24KcmVzcGVjdGl2ZWx5LgoKdG90YWxfYmxrc19k aXJ0aWVkIG1lYW5zICdkaXJ0aWVkIG9ubHkgYnkgdGhpcyBhY3Rpb24nLiBTbywgaWYgdGhp cyBwYWdlIHdhcwpkaXJ0eSBiZWZvcmUgdGhlIHZhY3V1bSBvcGVyYXRpb24sIGl0IGRvZXNu J3QgY291bnQgdGhpcyBwYWdlIGFzICdkaXJ0aWVkJy4KClRoZSB0dXBsZXNfZGVsZXRlZCBw YXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgY2xlYW5lZCB1cCBieSB0aGUgdmFj dXVtCm9wZXJhdGlvbi4KClRoZSBkZWxheV90aW1lIHZhbHVlIG1lYW5zIHRvdGFsIHZhY3V1 bSBzbGVlcCB0aW1lIGluIHZhY3V1bSBkZWxheSBwb2ludC4KVGhlIHBhZ2VzX3JlbW92ZWQg dmFsdWUgaXMgdGhlIG51bWJlciBvZiBwYWdlcyBieSB3aGljaCB0aGUgcGh5c2ljYWwgZGF0 YQpzdG9yYWdlIG9mIHRoZSByZWxhdGlvbiB3YXMgcmVkdWNlZC4KVGhlIHZhbHVlIG9mIHBh Z2VzX2RlbGV0ZWQgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgZnJlZWQgcGFnZXMgaW4g dGhlIHRhYmxlCihmaWxlIHNpemUgbWF5IG5vdCBoYXZlIGNoYW5nZWQpLgoKSW50ZXJydXB0 aW9ucyBudW1iZXIgb2YgKGF1dG8pdmFjdXVtIHByb2Nlc3MgZHVyaW5nIHZhY3V1bWluZyBv ZiBhIHJlbGF0aW9uLgpXZSByZXBvcnQgZnJvbSB0aGUgdmFjdXVtX2Vycm9yX2NhbGxiYWNr IHJvdXRpbmUuIFNvIHdlIGNhbiBsb2cgYWxsIEVSUk9SCnJlcG9ydHMuIEluIHRoZSBjYXNl IG9mIGF1dG92YWN1dW0gd2UgY2FuIHJlcG9ydCBTSUdJTlQgc2lnbmFscyB0b28uCkl0IG1h eWJlIGRhbmdlcm91cyB0byBtYWtlIHN1Y2ggY29tcGxleCB0YXNrIChzZW5kKSBpbiBhbiBl cnJvciBjYWxsYmFjayAtCndlIGNhbiBjYXRjaCBFUlJPUiBpbiBFUlJPUiBwcm9ibGVtLiBC dXQgaXQgbG9va3MgbGlrZSB3ZSBoYXZlIHNvIHNtYWxsCmNoYW5jZSB0byBzdHVjayBpbnRv IHRoaXMgcHJvYmxlbS4gU28sIGxldCdzIHRyeSB0byB1c2UuClRoaXMgcGFyYW1ldGVyIHJl bGF0ZXMgdG8gYSBwcm9ibGVtLCBjb3ZlcmVkIGJ5IGIxOWU0MjUwLgoKVHJhY2tpbmcgb2Yg SU8gZHVyaW5nIGFuIChhdXRvKXZhY3V1bSBvcGVyYXRpb24uCkludHJvZHVjZWQgdmFyaWFi bGVzIGJsa19yZWFkX3RpbWUgYW5kIGJsa193cml0ZV90aW1lIHRyYWNrcyBvbmx5IGFjY2Vz cyB0bwpidWZmZXIgcGFnZXMgYW5kIGZsdXNoaW5nIHRoZW0gdG8gZGlzay4gUmVhZGluZyBv cGVyYXRpb24gaXMgdHJpdmlhbCwgYnV0CndyaXRpbmcgbWVhc3VyZW1lbnQgdGVjaG5pcXVl IGlzIG5vdCBvYnZpb3VzLgpTbywgZHVyaW5nIGEgdmFjdXVtIHdyaXRpbmcgdGltZSBjYW4g YmUgemVybyBpbmNyZW1lbnRlZCBiZWNhdXNlIG5vIGFueSBmbHVzaGluZwpvcGVyYXRpb25z IHdlcmUgcGVyZm9ybWVkLgoKU3lzdGVtIHRpbWUgYW5kIHVzZXIgdGltZSBhcmUgcGFyYW1l dGVycyB0aGF0IGRlc2NyaWJlcyBob3cgbXVjaCB0aW1lIGEgdmFjdXVtCm9wZXJhdGlvbiBo YXMgc3BlbnQgaW4gZXhlY3V0aW5nIG9mIGNvZGUgaW4gdXNlciBzcGFjZSBhbmQga2VybmVs IHNwYWNlCmFjY29yZGluZ2x5LiBBbHNvLCBhY2N1bXVsYXRlIHRvdGFsIHRpbWUgb2YgYSB2 YWN1dW0gdGhhdCBpcyBhIGRpZmYgYmV0d2Vlbgp0aW1lc3RhbXBzIGluIHN0YXJ0IGFuZCBm aW5pc2ggcG9pbnRzIGluIHRoZSB2YWN1dW0gY29kZS4KUmVtZW1iZXIgYWJvdXQgaWRsZSB0 aW1lLCB3aGVuIHZhY3V1bSB3YWl0ZWQgZm9yIElPIGFuZCBsb2Nrcywgc28gdG90YWwgdGlt ZQppc24ndCBlcXVhbCBhIHN1bSBvZiB1c2VyIGFuZCBzeXN0ZW0gdGltZSwgYnV0IG5vIGxl c3MuCgpwYWdlc19mcm96ZW4gLSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFya2VkIGFz IGZyb3plbiBpbiB2bSBkdXJpbmcgdmFjdXVtLgpUaGlzIHBhcmFtZXRlciBpcyBpbmNyZW1l bnRlZCBpZiBwYWdlIGlzIG1hcmtlZCBhcyBhbGwtZnJvemVuLgpwYWdlc19hbGxfdmlzaWJs ZSAtIG51bWJlciBvZiBwYWdlcyB0aGF0IGFyZSBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4g dm0gZHVyaW5nCnZhY3V1bS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFj a2luYUB5YW5kZXgucnU+LAoJIEFuZHJlaSBMZXBpa2hvdiA8YS5sZXBpa2hvdkBwb3N0Z3Jl c3Byby5ydT4sCgkgQW5kcmVpIFp1YmtvdiA8YS56dWJrb3ZAcG9zdGdyZXNwcm8ucnU+ClJl dmlld2VkLWJ5OiBEaWxpcCBLdW1hciA8ZGlsaXBiYWxhdXRAZ21haWwuY29tPiwgTWFzYWhp a28gU2F3YWRhIDxzYXdhZGEubXNoa0BnbWFpbC5jb20+LAoJICAgICBJbGlhIEV2ZG9raW1v diA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFuIGhlIDxqaWFuLnVuaXZl cnNhbGl0eUBnbWFpbC5jb20+LAoJICAgICBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxA Z21haWwuY29tPiwgQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNvbT4s CgkgICAgIEppbSBOYXNieSA8am5hc2J5QHVwZ3JhZGUuY29tPgotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgICB8IDE1MCArKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyAgICAgICB8ICAxMCAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgNTIg KysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAgICAgICAgIHwg ICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8 ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyAgICAgICAgICAg fCAgMTIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5j ICB8ICA0NyArKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAg ICAgICAgfCAxNDcgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9n LmMgICAgICAgICAgICAgICAgfCAgMTMgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgICAgICAgICAgICAgICB8ICAxOCArKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA4MiArKysrKystCiBzcmMvaW5jbHVkZS91dGls cy9lbG9nLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmggICAgICAgICAgIHwgICAyICstCiAuLi4vdmFjdXVtLWV4 dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgICAgfCAgNTMgKysrKysKIHNyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgICAgICAgICB8ICAgMSArCiAuLi4vdmFj dXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjICAgfCAgNTMgKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICA0MyArKyst CiAuLi4vZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dCAgICAgfCAyMjUg KysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl ICAgICAgICAgICAgfCAgIDUgKwogLi4uL3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5zcWwgIHwgMTgwICsrKysrKysrKysrKysrCiAyMiBmaWxlcyBjaGFuZ2VkLCAx MDkxIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0 YWJsZS1yZWFkLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9z cGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92 YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCmluZGV4IDA5ZmFiMDhiOGUxLi45MTlmMDEwM2U4NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTY1LDYgKzE2NSw3IEBAIHR5cGVkZWYg c3RydWN0IExWUmVsU3RhdGUKIAkvKiBFcnJvciByZXBvcnRpbmcgc3RhdGUgKi8KIAljaGFy CSAgICpkYm5hbWU7CiAJY2hhcgkgICAqcmVsbmFtZXNwYWNlOworCU9pZAkJCXJlbG9pZDsK IAljaGFyCSAgICpyZWxuYW1lOwogCWNoYXIJICAgKmluZG5hbWU7CQkvKiBDdXJyZW50IGlu ZGV4IG5hbWUgKi8KIAlCbG9ja051bWJlciBibGtubzsJCQkvKiB1c2VkIG9ubHkgZm9yIGhl YXAgb3BlcmF0aW9ucyAqLwpAQCAtMjI5LDYgKzIzMCw4IEBAIHR5cGVkZWYgc3RydWN0IExW UmVsU3RhdGUKIAlCbG9ja051bWJlciBuZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrOyAvKiBuZXh0 IHVuc2tpcHBhYmxlIGJsb2NrICovCiAJYm9vbAkJbmV4dF91bnNraXBwYWJsZV9hbGx2aXM7 CS8qIGl0cyB2aXNpYmlsaXR5IHN0YXR1cyAqLwogCUJ1ZmZlcgkJbmV4dF91bnNraXBwYWJs ZV92bWJ1ZmZlcjsJLyogYnVmZmVyIGNvbnRhaW5pbmcgaXRzIFZNIGJpdCAqLworCisJaW50 NjQJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7IC8qIHRoZSBudW1iZXIgb2YgdGltZXMg dG8gcHJldmVudCB3b3JrYXJvdW5kIHByb2JsZW0gKi8KIH0gTFZSZWxTdGF0ZTsKIAogLyog U3RydWN0IGZvciBzYXZpbmcgYW5kIHJlc3RvcmluZyB2YWN1dW0gZXJyb3IgaW5mb3JtYXRp b24uICovCkBAIC0yMzksNiArMjQyLDE4IEBAIHR5cGVkZWYgc3RydWN0IExWU2F2ZWRFcnJJ bmZvCiAJVmFjRXJyUGhhc2UgcGhhc2U7CiB9IExWU2F2ZWRFcnJJbmZvOwogCisvKgorICog Q291bnRlcnMgYW5kIHVzYWdlIGRhdGEgZm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5nLgor ICovCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVycworeworCVRpbWVzdGFtcFR6 IHN0YXJ0dGltZTsKKwlXYWxVc2FnZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2Fn ZTsKKwlkb3VibGUJCVZhY3V1bURlbGF5VGltZTsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3Nf ZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworfSBMVkV4dFN0YXRDb3Vu dGVyczsKIAogLyogbm9uLWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMg dm9pZCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRlICp2YWNyZWwpOwpAQCAtMjkyLDYgKzMw NywxMDYgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3Rh dGUgKnZhY3JlbCwKIHN0YXRpYyB2b2lkIHJlc3RvcmVfdmFjdXVtX2Vycm9yX2luZm8oTFZS ZWxTdGF0ZSAqdmFjcmVsLAogCQkJCQkJCQkJICBjb25zdCBMVlNhdmVkRXJySW5mbyAqc2F2 ZWRfdmFjcmVsKTsKIAorLyogLS0tLS0tLS0tLQorICogZXh0dmFjX3N0YXRzX3N0YXJ0KCkg LQorICoKKyAqIFNhdmUgY3V0LW9mZiB2YWx1ZXMgb2YgZXh0ZW5kZWQgdmFjdXVtIGNvdW50 ZXJzIGJlZm9yZSBzdGFydCBvZiBhIHJlbGF0aW9uCisgKiBwcm9jZXNzaW5nLgorICogLS0t LS0tLS0tLQorICovCitzdGF0aWMgdm9pZAorZXh0dmFjX3N0YXRzX3N0YXJ0KFJlbGF0aW9u IHJlbCwgTFZFeHRTdGF0Q291bnRlcnMgKmNvdW50ZXJzKQoreworCVRpbWVzdGFtcFR6CXN0 YXJ0dGltZTsKKworCWlmKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJl dHVybjsKKworCW1lbXNldChjb3VudGVycywgMCwgc2l6ZW9mKExWRXh0U3RhdENvdW50ZXJz KSk7CisKKwlzdGFydHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CisKKwljb3VudGVy cy0+c3RhcnR0aW1lID0gc3RhcnR0aW1lOworCWNvdW50ZXJzLT53YWx1c2FnZSA9IHBnV2Fs VXNhZ2U7CisJY291bnRlcnMtPmJ1ZnVzYWdlID0gcGdCdWZmZXJVc2FnZTsKKwljb3VudGVy cy0+VmFjdXVtRGVsYXlUaW1lID0gVmFjdXVtRGVsYXlUaW1lOworCWNvdW50ZXJzLT5ibG9j a3NfZmV0Y2hlZCA9IDA7CisJY291bnRlcnMtPmJsb2Nrc19oaXQgPSAwOworCisJaWYgKCFy ZWwtPnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJhY2tfY291bnRzKQorCQkvKgorCQkgKiBp ZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBvciB1c2VyIGRvZXNuJ3Qgd2FudCB0byB0cmFjayBh IGRhdGFiYXNlCisJCSAqIGFjdGl2aXR5IC0ganVzdCBzdXBwcmVzcyBpdC4KKwkJICovCisJ CXJldHVybjsKKworCWNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZCA9IHJlbC0+cGdzdGF0X2lu Zm8tPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKKwljb3VudGVycy0+YmxvY2tzX2hpdCA9IHJl bC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfaGl0OworfQorCisvKiAtLS0tLS0tLS0t CisgKiBleHR2YWNfc3RhdHNfZW5kKCkgLQorICoKKyAqCUNhbGxlZCB0byBmaW5pc2ggYW4g ZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpYyBnYXRoZXJpbmcgYW5kIGZvcm0gYSByZXBvcnQu CisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitleHR2YWNfc3RhdHNfZW5kKFJl bGF0aW9uIHJlbCwgTFZFeHRTdGF0Q291bnRlcnMgKmNvdW50ZXJzLAorCQkJCSAgRXh0VmFj UmVwb3J0ICpyZXBvcnQpCit7CisJV2FsVXNhZ2UJd2FsdXNhZ2U7CisJQnVmZmVyVXNhZ2UJ YnVmdXNhZ2U7CisJVGltZXN0YW1wVHogZW5kdGltZTsKKwlsb25nCQlzZWNzOworCWludAkJ CXVzZWNzOworCisJaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0 dXJuOworCisJLyogQ2FsY3VsYXRlIGRpZmZzIG9mIGdsb2JhbCBzdGF0IHBhcmFtZXRlcnMg b24gV0FMIGFuZCBidWZmZXIgdXNhZ2UuICovCisJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6 ZW9mKFdhbFVzYWdlKSk7CisJV2FsVXNhZ2VBY2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxV c2FnZSwgJmNvdW50ZXJzLT53YWx1c2FnZSk7CisKKwltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBz aXplb2YoQnVmZmVyVXNhZ2UpKTsKKwlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2Us ICZwZ0J1ZmZlclVzYWdlLCAmY291bnRlcnMtPmJ1ZnVzYWdlKTsKKworCWVuZHRpbWUgPSBH ZXRDdXJyZW50VGltZXN0YW1wKCk7CisJVGltZXN0YW1wRGlmZmVyZW5jZShjb3VudGVycy0+ c3RhcnR0aW1lLCBlbmR0aW1lLCAmc2VjcywgJnVzZWNzKTsKKworCW1lbXNldChyZXBvcnQs IDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKworCS8qCisJICogRmlsbCBhZGRpdGlvbmFs IHN0YXRpc3RpY3Mgb24gYSB2YWN1dW0gcHJvY2Vzc2luZyBvcGVyYXRpb24uCisJICovCisJ cmVwb3J0LT50b3RhbF9ibGtzX3JlYWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBi dWZ1c2FnZS5zaGFyZWRfYmxrc19yZWFkOworCXJlcG9ydC0+dG90YWxfYmxrc19oaXQgPSBi dWZ1c2FnZS5sb2NhbF9ibGtzX2hpdCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdDsKKwly ZXBvcnQtPnRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGll ZCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQ7CisJcmVwb3J0LT50b3RhbF9ibGtz X3dyaXR0ZW4gPSBidWZ1c2FnZS5zaGFyZWRfYmxrc193cml0dGVuOworCisJcmVwb3J0LT53 YWxfcmVjb3JkcyA9IHdhbHVzYWdlLndhbF9yZWNvcmRzOworCXJlcG9ydC0+d2FsX2ZwaSA9 IHdhbHVzYWdlLndhbF9mcGk7CisJcmVwb3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxf Ynl0ZXM7CisKKwlyZXBvcnQtPmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19yZWFk X3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uuc2hhcmVkX2Jsa19y ZWFkX3RpbWUpOworCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtf d3JpdGVfdGltZSA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9i bGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5kZWxheV90aW1lID0gVmFjdXVtRGVsYXlUaW1l IC0gY291bnRlcnMtPlZhY3V1bURlbGF5VGltZTsKKworCXJlcG9ydC0+dG90YWxfdGltZSA9 IHNlY3MgKiAxMDAwLiArIHVzZWNzIC8gMTAwMC47CisKKwlpZiAoIXJlbC0+cGdzdGF0X2lu Zm8gfHwgIXBnc3RhdF90cmFja19jb3VudHMpCisJCS8qCisJCSAqIGlmIHNvbWV0aGluZyBn b2VzIHdyb25nIG9yIGFuIHVzZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UK KwkJICogYWN0aXZpdHkgLSBqdXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKwkJcmV0dXJuOwor CisJcmVwb3J0LT5ibGtzX2ZldGNoZWQgPQorCQlyZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMu YmxvY2tzX2ZldGNoZWQgLSBjb3VudGVycy0+YmxvY2tzX2ZldGNoZWQ7CisJcmVwb3J0LT5i bGtzX2hpdCA9CisJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfaGl0IC0gY291 bnRlcnMtPmJsb2Nrc19oaXQ7Cit9CiAKIC8qCiAgKgloZWFwX3ZhY3V1bV9yZWwoKSAtLSBw ZXJmb3JtIFZBQ1VVTSBmb3Igb25lIGhlYXAgcmVsYXRpb24KQEAgLTMyNCw3ICs0MzksMTQg QEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMs CiAJV2FsVXNhZ2UJc3RhcnR3YWx1c2FnZSA9IHBnV2FsVXNhZ2U7CiAJQnVmZmVyVXNhZ2Ug c3RhcnRidWZmZXJ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7CiAJRXJyb3JDb250ZXh0Q2FsbGJh Y2sgZXJyY2FsbGJhY2s7CisJTFZFeHRTdGF0Q291bnRlcnMgZXh0VmFjQ291bnRlcnM7CisJ RXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKIAljaGFyCSAgKippbmRuYW1lcyA9IE5VTEw7 CisJRXh0VmFjUmVwb3J0IGFsbHplcm87CisKKwkvKiBJbml0aWFsaXplIHZhY3V1bSBzdGF0 aXN0aWNzICovCisJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7 CisJZXh0VmFjUmVwb3J0ID0gYWxsemVybzsKIAogCXZlcmJvc2UgPSAocGFyYW1zLT5vcHRp b25zICYgVkFDT1BUX1ZFUkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8 IChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYKQEAgLTM0Miw3ICs0NjQsNyBAQCBo ZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAog CXBnc3RhdF9wcm9ncmVzc19zdGFydF9jb21tYW5kKFBST0dSRVNTX0NPTU1BTkRfVkFDVVVN LAogCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7Ci0KKwlleHR2YWNfc3RhdHNf c3RhcnQocmVsLCAmZXh0VmFjQ291bnRlcnMpOwogCS8qCiAJICogU2V0dXAgZXJyb3IgdHJh Y2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSBmaXJzdC4gIFRoZSBpZGVhIGlzIHRvIHNl dAogCSAqIHVwIGFuIGVycm9yIGNvbnRleHQgY2FsbGJhY2sgdG8gZGlzcGxheSBhZGRpdGlv bmFsIGluZm9ybWF0aW9uIG9uIGFueQpAQCAtMzU5LDYgKzQ4MSw3IEBAIGhlYXBfdmFjdXVt X3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCXZhY3JlbC0+ZGJu YW1lID0gZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKTsKIAl2YWNyZWwtPnJlbG5h bWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwp KTsKIAl2YWNyZWwtPnJlbG5hbWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCkpOworCXZhY3JlbC0+cmVsb2lkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOwogCXZh Y3JlbC0+aW5kbmFtZSA9IE5VTEw7CiAJdmFjcmVsLT5waGFzZSA9IFZBQ1VVTV9FUlJDQl9Q SEFTRV9VTktOT1dOOwogCXZhY3JlbC0+dmVyYm9zZSA9IHZlcmJvc2U7CkBAIC00NDYsNiAr NTY5LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpw YXJhbXMsCiAJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlcyA9IDA7CiAJdmFjcmVsLT52 bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSAwOwogCXZhY3JlbC0+dm1fbmV3X2Zyb3pl bl9wYWdlcyA9IDA7CisJdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ID0gMDsK IAogCS8qCiAJICogR2V0IGN1dG9mZnMgdGhhdCBkZXRlcm1pbmUgd2hpY2ggZGVsZXRlZCB0 dXBsZXMgYXJlIGNvbnNpZGVyZWQgREVBRCwKQEAgLTU5MSw2ICs3MTUsMjYgQEAgaGVhcF92 YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJCQl2 YWNyZWwtPk5ld1JlbGZyb3plblhpZCwgdmFjcmVsLT5OZXdSZWxtaW5NeGlkLAogCQkJCQkJ JmZyb3plbnhpZF91cGRhdGVkLCAmbWlubXVsdGlfdXBkYXRlZCwgZmFsc2UpOwogCisJLyog TWFrZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgKi8KKwlleHR2YWNf c3RhdHNfZW5kKHJlbCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKworCWlm KHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwl7CisJCS8qIEZpbGwgaGVhcC1z cGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVsZHMgKi8KKwkJZXh0VmFjUmVwb3J0LnBhZ2Vz X3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC5wYWdl c19yZW1vdmVkID0gdmFjcmVsLT5yZW1vdmVkX3BhZ2VzOworCQlleHRWYWNSZXBvcnQudm1f bmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlczsKKwkJZXh0 VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJs ZV9wYWdlczsKKwkJZXh0VmFjUmVwb3J0LnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9 IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCQlleHRWYWNSZXBvcnQu dHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCQlleHRWYWNSZXBv cnQudHVwbGVzX2Zyb3plbiA9IHZhY3JlbC0+dHVwbGVzX2Zyb3plbjsKKwkJZXh0VmFjUmVw b3J0LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxl czsKKwkJZXh0VmFjUmVwb3J0Lm1pc3NlZF9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+bWlzc2Vk X2RlYWRfdHVwbGVzOworCQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfcGFnZXMgPSB2YWNy ZWwtPm1pc3NlZF9kZWFkX3BhZ2VzOworCQlleHRWYWNSZXBvcnQuaW5kZXhfdmFjdXVtX2Nv dW50ID0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7CisJCWV4dFZhY1JlcG9ydC53cmFwYXJv dW5kX2ZhaWxzYWZlX2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50 OworCX0KKwogCS8qCiAJICogUmVwb3J0IHJlc3VsdHMgdG8gdGhlIGN1bXVsYXRpdmUgc3Rh dHMgc3lzdGVtLCB0b28uCiAJICoKQEAgLTYwNSw3ICs3NDksOCBAQCBoZWFwX3ZhY3V1bV9y ZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJCQkJCSByZWwtPnJk X3JlbC0+cmVsaXNzaGFyZWQsCiAJCQkJCQkgTWF4KHZhY3JlbC0+bmV3X2xpdmVfdHVwbGVz LCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsKLQkJCQkJCSB2 YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcyk7CisJCQkJCQkgdmFjcmVsLT5taXNzZWRfZGVh ZF90dXBsZXMsCisJCQkJCQkgJmV4dFZhY1JlcG9ydCk7CiAJcGdzdGF0X3Byb2dyZXNzX2Vu ZF9jb21tYW5kKCk7CiAKIAlpZiAoaW5zdHJ1bWVudCkKQEAgLTI0MTgsNiArMjU2Myw3IEBA IGxhenlfY2hlY2tfd3JhcGFyb3VuZF9mYWlsc2FmZShMVlJlbFN0YXRlICp2YWNyZWwpCiAJ CWludDY0CQlwcm9ncmVzc192YWxbMl0gPSB7MCwgMH07CiAKIAkJVmFjdXVtRmFpbHNhZmVB Y3RpdmUgPSB0cnVlOworCQl2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgKys7 CiAKIAkJLyoKIAkJICogQWJhbmRvbiB1c2Ugb2YgYSBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5 IHRvIGFsbG93IHVzZSBvZiBhbGwgb2YKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYwppbmRleCA3NDVhMDRlZjI2ZS4uMDc2MjNhMDQ1ZmEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTkxLDYgKzkxLDcgQEAKICNp bmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9ndXRp bHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKICNp bmNsdWRlICJwb3J0L3BnX2JpdHV0aWxzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3Iu aCIKICNpbmNsdWRlICJzdG9yYWdlL3NtZ3IuaCIKQEAgLTE2MCw2ICsxNjEsMTUgQEAgdmlz aWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1 ZmZlciB2bWJ1ZiwgdWludDggZmxhZ3MKIAogCWlmIChtYXBbbWFwQnl0ZV0gJiBtYXNrKQog CXsKKwkJLyoKKwkJICogQXMgcGFydCBvZiB2YWN1dW0gc3RhdHMsIHRyYWNrIGhvdyBvZnRl biBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVuCisJCSAqIGJpdHMgYXJlIGNsZWFyZWQuCisJ CSAqLworCQlpZiAobWFwW21hcEJ5dGVdID4+IG1hcE9mZnNldCAmIGZsYWdzICYgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRSkKKwkJCXBnc3RhdF9jb3VudF92bV9yZXZfYWxsX3Zpc2li bGUocmVsKTsKKwkJaWYgKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQgJiBmbGFncyAmIFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTikKKwkJCXBnc3RhdF9jb3VudF92bV9yZXZfYWxsX2Zy b3plbihyZWwpOworCiAJCW1hcFttYXBCeXRlXSAmPSB+bWFzazsKIAogCQlNYXJrQnVmZmVy RGlydHkodm1idWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4 IDdhNTk1Yzg0ZGI5Li40M2FjMjdlZDViNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbApAQCAtNjkxLDcgKzY5MSw5IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfYWxs X3RhYmxlcyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfdmFjdXVtX2NvdW50KEMub2lk KSBBUyB2YWN1dW1fY291bnQsCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9hdXRvdmFjdXVt X2NvdW50KEMub2lkKSBBUyBhdXRvdmFjdXVtX2NvdW50LAogICAgICAgICAgICAgcGdfc3Rh dF9nZXRfYW5hbHl6ZV9jb3VudChDLm9pZCkgQVMgYW5hbHl6ZV9jb3VudCwKLSAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X2F1dG9hbmFseXplX2NvdW50KEMub2lkKSBBUyBhdXRvYW5hbHl6 ZV9jb3VudAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfYXV0b2FuYWx5emVfY291bnQoQy5v aWQpIEFTIGF1dG9hbmFseXplX2NvdW50LAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfcmV2 X2FsbF9mcm96ZW5fcGFnZXMoQy5vaWQpIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAg ICAgICAgICAgcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzKEMub2lkKSBBUyBy ZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgICBGUk9NIHBnX2NsYXNzIEMgTEVGVCBKT0lOCiAg ICAgICAgICBwZ19pbmRleCBJIE9OIEMub2lkID0gSS5pbmRyZWxpZAogICAgICAgICAgTEVG VCBKT0lOIHBnX25hbWVzcGFjZSBOIE9OIChOLm9pZCA9IEMucmVsbmFtZXNwYWNlKQpAQCAt MTM4MSwzICsxMzgzLDUxIEBAIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0 YXRzIEFTCiAKIENSRUFURSBWSUVXIHBnX3dhaXRfZXZlbnRzIEFTCiAgICAgU0VMRUNUICog RlJPTSBwZ19nZXRfd2FpdF9ldmVudHMoKTsKKy0tCistLSBTaG93IGV4dGVuZGVkIGN1bXVs YXRpdmUgc3RhdGlzdGljcyBvbiBhIHZhY3V1bSBvcGVyYXRpb24gb3ZlciBhbGwgdGFibGVz IGFuZAorLS0gZGF0YWJhc2VzIG9mIHRoZSBpbnN0YW5jZS4KKy0tIFVzZSBJbnZhbGlkIE9p ZCAiMCIgYXMgYW4gaW5wdXQgcmVsYXRpb24gaWQgdG8gZ2V0IHN0YXQgb24gZWFjaCB0YWJs ZSBpbiBhCistLSBkYXRhYmFzZS4KKy0tCisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyBBUworU0VMRUNUCisgIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgcmVs LnJlbG5hbWUgQVMgcmVsbmFtZSwKKyAgc3RhdHMucmVsaWQgYXMgcmVsaWQsCisKKyAgc3Rh dHMudG90YWxfYmxrc19yZWFkIEFTIHRvdGFsX2Jsa3NfcmVhZCwKKyAgc3RhdHMudG90YWxf Ymxrc19oaXQgQVMgdG90YWxfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGll ZCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBB UyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisKKyAgc3RhdHMucmVsX2Jsa3NfcmVhZCBBUyByZWxf Ymxrc19yZWFkLAorICBzdGF0cy5yZWxfYmxrc19oaXQgQVMgcmVsX2Jsa3NfaGl0LAorCisg IHN0YXRzLnBhZ2VzX3NjYW5uZWQgQVMgcGFnZXNfc2Nhbm5lZCwKKyAgc3RhdHMucGFnZXNf cmVtb3ZlZCBBUyBwYWdlc19yZW1vdmVkLAorICBzdGF0cy52bV9uZXdfZnJvemVuX3BhZ2Vz IEFTIHZtX25ld19mcm96ZW5fcGFnZXMsCisgIHN0YXRzLnZtX25ld192aXNpYmxlX3BhZ2Vz IEFTIHZtX25ld192aXNpYmxlX3BhZ2VzLAorICBzdGF0cy52bV9uZXdfdmlzaWJsZV9mcm96 ZW5fcGFnZXMgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLAorICBzdGF0cy5taXNz ZWRfZGVhZF9wYWdlcyBBUyBtaXNzZWRfZGVhZF9wYWdlcywKKyAgc3RhdHMudHVwbGVzX2Rl bGV0ZWQgQVMgdHVwbGVzX2RlbGV0ZWQsCisgIHN0YXRzLnR1cGxlc19mcm96ZW4gQVMgdHVw bGVzX2Zyb3plbiwKKyAgc3RhdHMucmVjZW50bHlfZGVhZF90dXBsZXMgQVMgcmVjZW50bHlf ZGVhZF90dXBsZXMsCisgIHN0YXRzLm1pc3NlZF9kZWFkX3R1cGxlcyBBUyBtaXNzZWRfZGVh ZF90dXBsZXMsCisKKyAgc3RhdHMud3JhcGFyb3VuZF9mYWlsc2FmZSBBUyB3cmFwYXJvdW5k X2ZhaWxzYWZlLAorICBzdGF0cy5pbmRleF92YWN1dW1fY291bnQgQVMgaW5kZXhfdmFjdXVt X2NvdW50LAorICBzdGF0cy53YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKKyAgc3RhdHMu d2FsX2ZwaSBBUyB3YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAor CisgIHN0YXRzLmJsa19yZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxr X3dyaXRlX3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSBB UyBkZWxheV90aW1lLAorICBzdGF0cy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUKKworRlJP TSBwZ19jbGFzcyByZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVs LnJlbG5hbWVzcGFjZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJl bC5vaWQpIHN0YXRzCitXSEVSRSByZWwucmVsa2luZCA9ICdyJzsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtLmMKaW5kZXggMjY0MDIyOGJlZjQuLmIwNzRiZGUyODZkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW0uYwpAQCAtMTAyLDYgKzEwMiw5IEBAIHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNo YXJlZENvc3RCYWxhbmNlID0gTlVMTDsKIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2 ZU5Xb3JrZXJzID0gTlVMTDsKIGludAkJCVZhY3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOwog CisvKiBDdW11bGF0aXZlIHN0b3JhZ2UgdG8gcmVwb3J0IHRvdGFsIHZhY3V1bSBkZWxheSB0 aW1lLiAqLworZG91YmxlIFZhY3V1bURlbGF5VGltZSA9IDA7IC8qIG1zZWMuICovCisKIC8q IG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIExpc3QgKmV4cGFu ZF92YWN1dW1fcmVsKFZhY3V1bVJlbGF0aW9uICp2cmVsLAogCQkJCQkJCSAgIE1lbW9yeUNv bnRleHQgdmFjX2NvbnRleHQsIGludCBvcHRpb25zKTsKQEAgLTI0MTksNiArMjQyMiw3IEBA IHZhY3V1bV9kZWxheV9wb2ludCh2b2lkKQogCQkJZXhpdCgxKTsKIAogCQlWYWN1dW1Db3N0 QmFsYW5jZSA9IDA7CisJCVZhY3V1bURlbGF5VGltZSArPSBtc2VjOwogCiAJCS8qCiAJCSAq IEJhbGFuY2UgYW5kIHVwZGF0ZSBsaW1pdCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0gd29ya2Vy cy4gV2UgbXVzdCBkbwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5k ZXggMGQ5MmU2OTRkNmEuLjY3MmY4ZjRiZmU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTEwNDcsNiArMTA0Nyw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9t YWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBTZXQgY29zdC1iYXNl ZCB2YWN1dW0gZGVsYXkgKi8KIAlWYWN1dW1VcGRhdGVDb3N0cygpOwogCVZhY3V1bUNvc3RC YWxhbmNlID0gMDsKKwlWYWN1dW1EZWxheVRpbWUgPSAwOwogCVZhY3V1bUNvc3RCYWxhbmNl TG9jYWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihzaGFyZWQtPmNvc3Rf YmFsYW5jZSk7CiAJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAmKHNoYXJlZC0+YWN0aXZlX253 b3JrZXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXggMzQ1MjA1 MzVkNTQuLmQyMWI5MzAyYzI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQu YwpAQCAtMTkxLDcgKzE5MSw3IEBAIHN0YXRpYyB2b2lkIHBnc3RhdF9yZXNldF9hZnRlcl9m YWlsdXJlKHZvaWQpOwogc3RhdGljIGJvb2wgcGdzdGF0X2ZsdXNoX3BlbmRpbmdfZW50cmll cyhib29sIG5vd2FpdCk7CiAKIHN0YXRpYyB2b2lkIHBnc3RhdF9wcmVwX3NuYXBzaG90KHZv aWQpOwotc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KHZvaWQpOworc3RhdGlj IHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5kIHN0YXRLaW5kKTsKIHN0 YXRpYyB2b2lkIHBnc3RhdF9idWlsZF9zbmFwc2hvdF9maXhlZChQZ1N0YXRfS2luZCBraW5k KTsKIAogc3RhdGljIGlubGluZSBib29sIHBnc3RhdF9pc19raW5kX3ZhbGlkKFBnU3RhdF9L aW5kIGtpbmQpOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwZ3N0 YXRfaXNfa2luZF92YWxpZChQZ1N0YXRfS2luZCBraW5kKTsKIAogYm9vbAkJcGdzdGF0X3Ry YWNrX2NvdW50cyA9IGZhbHNlOwogaW50CQkJcGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5ID0g UEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX0NBQ0hFOwotCitib29sCQlwZ3N0YXRfdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MgPSB0cnVlOwogCiAvKiAtLS0tLS0tLS0tCiAgKiBzdGF0ZSBz aGFyZWQgd2l0aCBwZ3N0YXRfKi5jCkBAIC0yNjEsNyArMjYxLDYgQEAgc3RhdGljIGJvb2wg cGdzdGF0X2lzX2luaXRpYWxpemVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwZ3N0YXRfaXNf c2h1dGRvd24gPSBmYWxzZTsKICNlbmRpZgogCi0KIC8qCiAgKiBUaGUgZGlmZmVyZW50IGtp bmRzIG9mIGJ1aWx0LWluIHN0YXRpc3RpY3MuCiAgKgpAQCAtOTExLDcgKzkxMCw2IEBAIHBn c3RhdF9yZXNldF9vZl9raW5kKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3RhdF9yZXNldF9l bnRyaWVzX29mX2tpbmQoa2luZCwgdHMpOwogfQogCi0KIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogRmV0Y2hp bmcgb2Ygc3RhdHMKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTgwLDcgKzk3OCw3IEBAIHBnc3RhdF9mZXRj aF9lbnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJvaWQsIHVpbnQ2NCBvYmppZCkKIAog CS8qIGlmIHdlIG5lZWQgdG8gYnVpbGQgYSBmdWxsIHNuYXBzaG90LCBkbyBzbyAqLwogCWlm IChwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3kgPT0gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZ X1NOQVBTSE9UKQotCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoKTsKKwkJcGdzdGF0X2J1aWxk X3NuYXBzaG90KFBHU1RBVF9LSU5EX0lOVkFMSUQpOwogCiAJLyogaWYgY2FjaGluZyBpcyBk ZXNpcmVkLCBsb29rIHVwIGluIGNhY2hlICovCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0 ZW5jeSA+IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9OT05FKQpAQCAtMTA5Niw3ICsxMDk0 LDcgQEAgcGdzdGF0X3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5kIGtpbmQpCiAJCXBnc3Rh dF9jbGVhcl9zbmFwc2hvdCgpOwogCiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSA9 PSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9idWlsZF9z bmFwc2hvdCgpOworCQlwZ3N0YXRfYnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfSU5WQUxJ RCk7CiAJZWxzZQogCQlwZ3N0YXRfYnVpbGRfc25hcHNob3RfZml4ZWQoa2luZCk7CiAKQEAg LTExNDcsNyArMTE0NSw3IEBAIHBnc3RhdF9wcmVwX3NuYXBzaG90KHZvaWQpCiB9CiAKIHN0 YXRpYyB2b2lkCi1wZ3N0YXRfYnVpbGRfc25hcHNob3Qodm9pZCkKK3Bnc3RhdF9idWlsZF9z bmFwc2hvdChQZ1N0YXRfS2luZCBzdGF0S2luZCkKIHsKIAlkc2hhc2hfc2VxX3N0YXR1cyBo c3RhdDsKIAlQZ1N0YXRTaGFyZWRfSGFzaEVudHJ5ICpwOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCAwOTI0N2JhMDk3MS4uNDU4 YmQ0ZWNlNDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9y ZWxhdGlvbi5jCkBAIC00Nyw2ICs0Nyw4IEBAIHN0YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hh Y3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3RfbGV2 CiBzdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0 YXR1cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3BfY291bnRl cnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7CiBzdGF0 aWMgdm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3Rh dHVzICp0cmFucyk7CitzdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3Rh dHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAorCQkJCQkJCSAgIGJv b2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBAIC0yMDgs NyArMjEwLDggQEAgcGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKQogICovCiB2 b2lkCiBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAot CQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1 cGxlcykKKwkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBnU3RhdF9Db3VudGVy IGRlYWR0dXBsZXMsCisJCQkJCSBFeHRWYWNSZXBvcnQgKnBhcmFtcykKIHsKIAlQZ1N0YXRf RW50cnlSZWYgKmVudHJ5X3JlZjsKIAlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50 cnk7CkBAIC0yMzIsNiArMjM1LDggQEAgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxl b2lkLCBib29sIHNoYXJlZCwKIAl0YWJlbnRyeS0+bGl2ZV90dXBsZXMgPSBsaXZldHVwbGVz OwogCXRhYmVudHJ5LT5kZWFkX3R1cGxlcyA9IGRlYWR0dXBsZXM7CiAKKwlwZ3N0YXRfYWNj dW11bGF0ZV9leHR2YWNfc3RhdHMoJnRhYmVudHJ5LT52YWN1dW1fZXh0LCBwYXJhbXMsIHRy dWUpOworCiAJLyoKIAkgKiBJdCBpcyBxdWl0ZSBwb3NzaWJsZSB0aGF0IGEgbm9uLWFnZ3Jl c3NpdmUgVkFDVVVNIGVuZGVkIHVwIHNraXBwaW5nCiAJICogdmFyaW91cyBwYWdlcywgaG93 ZXZlciwgd2UnbGwgemVybyB0aGUgaW5zZXJ0IGNvdW50ZXIgaGVyZSByZWdhcmRsZXNzLgpA QCAtODU5LDYgKzg2NCw5IEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50 cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJdGFiZW50cnktPmJsb2Nrc19mZXRj aGVkICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOwogCXRhYmVudHJ5LT5ibG9j a3NfaGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKKwl0YWJlbnRyeS0+cmV2 X2FsbF9mcm96ZW5fcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMucmV2X2FsbF9mcm96ZW5fcGFn ZXM7CisJdGFiZW50cnktPnJldl9hbGxfdmlzaWJsZV9wYWdlcyArPSBsc3RhdHMtPmNvdW50 cy5yZXZfYWxsX3Zpc2libGVfcGFnZXM7CisKIAkvKiBDbGFtcCBsaXZlX3R1cGxlcyBpbiBj YXNlIG9mIG5lZ2F0aXZlIGRlbHRhX2xpdmVfdHVwbGVzICovCiAJdGFiZW50cnktPmxpdmVf dHVwbGVzID0gTWF4KHRhYmVudHJ5LT5saXZlX3R1cGxlcywgMCk7CiAJLyogTGlrZXdpc2Ug Zm9yIGRlYWRfdHVwbGVzICovCkBAIC05ODIsMyArOTkwLDQwIEBAIHJlc3RvcmVfdHJ1bmNk cm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKQogCQl0cmFucy0+ dHVwbGVzX2RlbGV0ZWQgPSB0cmFucy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0KIH0K Kworc3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNS ZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCisJCQkJCQkJICAgYm9vbCBhY2N1bXVs YXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKK3sKKwlkc3QtPnRvdGFsX2Jsa3NfcmVhZCAr PSBzcmMtPnRvdGFsX2Jsa3NfcmVhZDsKKwlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9IHNyYy0+ dG90YWxfYmxrc19oaXQ7CisJZHN0LT50b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3JjLT50b3Rh bF9ibGtzX2RpcnRpZWQ7CisJZHN0LT50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gc3JjLT50b3Rh bF9ibGtzX3dyaXR0ZW47CisJZHN0LT53YWxfYnl0ZXMgKz0gc3JjLT53YWxfYnl0ZXM7CisJ ZHN0LT53YWxfZnBpICs9IHNyYy0+d2FsX2ZwaTsKKwlkc3QtPndhbF9yZWNvcmRzICs9IHNy Yy0+d2FsX3JlY29yZHM7CisJZHN0LT5ibGtfcmVhZF90aW1lICs9IHNyYy0+YmxrX3JlYWRf dGltZTsKKwlkc3QtPmJsa193cml0ZV90aW1lICs9IHNyYy0+YmxrX3dyaXRlX3RpbWU7CisJ ZHN0LT5kZWxheV90aW1lICs9IHNyYy0+ZGVsYXlfdGltZTsKKwlkc3QtPnRvdGFsX3RpbWUg Kz0gc3JjLT50b3RhbF90aW1lOworCisJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lm aWNfaW5mbykKKwkJcmV0dXJuOworCisJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtz X2ZldGNoZWQ7CisJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OworCisJZHN0LT5w YWdlc19zY2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKKwlkc3QtPnBhZ2VzX3JlbW92 ZWQgKz0gc3JjLT5wYWdlc19yZW1vdmVkOworCWRzdC0+dm1fbmV3X2Zyb3plbl9wYWdlcyAr PSBzcmMtPnZtX25ld19mcm96ZW5fcGFnZXM7CisJZHN0LT52bV9uZXdfdmlzaWJsZV9wYWdl cyArPSBzcmMtPnZtX25ld192aXNpYmxlX3BhZ2VzOworCWRzdC0+dm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzICs9IHNyYy0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCWRz dC0+dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwlkc3QtPnR1cGxl c19mcm96ZW4gKz0gc3JjLT50dXBsZXNfZnJvemVuOworCWRzdC0+cmVjZW50bHlfZGVhZF90 dXBsZXMgKz0gc3JjLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKKwlkc3QtPmluZGV4X3ZhY3V1 bV9jb3VudCArPSBzcmMtPmluZGV4X3ZhY3V1bV9jb3VudDsKKwlkc3QtPndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OworCWRz dC0+bWlzc2VkX2RlYWRfcGFnZXMgKz0gc3JjLT5taXNzZWRfZGVhZF9wYWdlczsKKwlkc3Qt Pm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3R1cGxlczsKKworfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1 bmNzLmMKaW5kZXggNWY4ZDIwYTQwNmQuLmYxODBhYzBmYTAyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMTA2LDYgKzEwNiwxMiBAQCBQR19TVEFUX0dFVF9S RUxFTlRSWV9JTlQ2NCh0dXBsZXNfdXBkYXRlZCkKIC8qIHBnX3N0YXRfZ2V0X3ZhY3V1bV9j b3VudCAqLwogUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQodmFjdXVtX2NvdW50KQogCisv KiBwZ19zdGF0X2dldF9yZXZfZnJvemVuX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRS WV9JTlQ2NChyZXZfYWxsX2Zyb3plbl9wYWdlcykKKworLyogcGdfc3RhdF9nZXRfcmV2X2Fs bF92aXNpYmxlX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2NChyZXZfYWxs X3Zpc2libGVfcGFnZXMpCisKICNkZWZpbmUgUEdfU1RBVF9HRVRfUkVMRU5UUllfVElNRVNU QU1QVFooc3RhdCkJCQkJCVwKIERhdHVtCQkJCQkJCQkJCQkJCQkJXAogQ3BwQ29uY2F0KHBn X3N0YXRfZ2V0XyxzdGF0KShQR19GVU5DVElPTl9BUkdTKQkJCQkJXApAQCAtMjE3MiwzICsy MTc4LDE0NCBAQCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBH X1JFVFVSTl9CT09MKHBnc3RhdF9oYXZlX2VudHJ5KGtpbmQsIGRib2lkLCBvYmppZCkpOwog fQorCisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVhcCB0 YWJsZXMuCisgKi8KK0RhdHVtCitwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRT X0NPTFMgMjYKKworCU9pZAkJCQkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQZ1N0 YXRfU3RhdFRhYkVudHJ5ICAgICAqdGFiZW50cnk7CisJRXh0VmFjUmVwb3J0IAkJCSpleHR2 YWN1dW07CisJVHVwbGVEZXNjCQkJCSB0dXBkZXNjOworCURhdHVtCQkJCQkgdmFsdWVzW1BH X1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJ IG51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MU10gPSB7MH07CisJ Y2hhcgkJCQkJIGJ1ZlsyNTZdOworCWludAkJCQkJCSBpID0gMDsKKwlFeHRWYWNSZXBvcnQg YWxsemVybzsKKworCS8qIEluaXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0 aGUgdHVwbGUgZGVzY3JpcHRvciAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxl RGVzYyhQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFMpOworCisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIsCisJCQkJ CSAgIElOVDRPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfcmVhZCIsCisJCQkJCSAgIElOVDhPSUQsIC0x LCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg InRvdGFsX2Jsa3NfaGl0IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19kaXJ0 aWVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc193cml0dGVuIiwKKwkJCQkJ ICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0 ck51bWJlcikgKytpLCAicmVsX2Jsa3NfcmVhZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJl bF9ibGtzX2hpdCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInBhZ2VzX3NjYW5uZWQiLAorCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJwYWdlc19yZW1vdmVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi dm1fbmV3X2Zyb3plbl9wYWdlcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInZtX25ld192aXNp YmxlX3BhZ2VzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAibWlzc2VkX2RlYWRfcGFnZXMiLAorCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ0dXBsZXNfZGVsZXRlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0x LCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg InR1cGxlc19mcm96ZW4iLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWNlbnRseV9kZWFkX3R1 cGxlcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIm1pc3NlZF9kZWFkX3R1cGxlcyIsCisJCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgIndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJpbmRleF92YWN1dW1fY291bnQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3 YWxfcmVjb3JkcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7CisK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19y ZWFkX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKKwkJ CQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInRvdGFsX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCUFzc2Vy dChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwlCbGVz c1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRf dGFiZW50cnkocmVsaWQpOworCisJaWYgKHRhYmVudHJ5ID09IE5VTEwpCisJeworCQkvKiBJ ZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMg Ki8KKwkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4 dHZhY3V1bSA9ICZhbGx6ZXJvOworCX0KKwllbHNlCisJeworCQlleHR2YWN1dW0gPSAmKHRh YmVudHJ5LT52YWN1dW1fZXh0KTsKKwl9CisKKwlpID0gMDsKKworCXZhbHVlc1tpKytdID0g T2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQg LQorCQkJCQkJCQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19oaXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9wYWdlcyk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfcGFn ZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+bWlzc2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPnR1cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNfZnJvemVuKTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5yZWNlbnRseV9kZWFkX3R1cGxlcyk7CisJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+bWlzc2VkX2RlYWRfdHVwbGVzKTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT5pbmRleF92YWN1dW1fY291bnQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtl IHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlO VDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGly ZWN0RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0 dW0oYnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAg SW50MzJHZXREYXR1bSgtMSkpOworCisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShl eHR2YWN1dW0tPmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0 dW0oZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhH ZXREYXR1bShleHR2YWN1dW0tPmRlbGF5X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4 R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKworCUFzc2VydChpID09IFBHX1NU QVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwkvKiBSZXR1cm5zIHRoZSBy ZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0o aGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJy b3IvZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCmluZGV4IDg2MGJi ZDQwZDQyLi40ZGE4ZDNmODdmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJy b3IvZWxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwpAQCAtMTYx OSw2ICsxNjE5LDE5IEBAIGdldGludGVybmFsZXJycG9zaXRpb24odm9pZCkKIAlyZXR1cm4g ZWRhdGEtPmludGVybmFscG9zOwogfQogCisvKgorICogUmV0dXJuIGVsZXZlbCBvZiBlcnJv cnMKKyAqLworaW50CitnZXRlcnJlbGV2ZWwodm9pZCkKK3sKKwlFcnJvckRhdGEgICplZGF0 YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKKworCS8qIHdlIGRvbid0 IGJvdGhlciBpbmNyZW1lbnRpbmcgcmVjdXJzaW9uX2RlcHRoICovCisJQ0hFQ0tfU1RBQ0tf REVQVEgoKTsKKworCXJldHVybiBlZGF0YS0+ZWxldmVsOworfQogCiAvKgogICogRnVuY3Rp b25zIHRvIGFsbG93IGNvbnN0cnVjdGlvbiBvZiBlcnJvciBtZXNzYWdlIHN0cmluZ3Mgc2Vw YXJhdGVseSBmcm9tCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGM5 ZDhjZDc5NmE4Li5mMmQzMWUxNzRiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFi bGVzLmMKQEAgLTE0NzgsNiArMTQ3OCwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmln dXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJ eworCQl7InRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIiwgUEdDX1NVU0VULCBTVEFUU19DVU1V TEFUSVZFLAorCQkJZ2V0dGV4dF9ub29wKCJDb2xsZWN0cyB2YWN1dW0gc3RhdGlzdGljcyBm b3IgdGFibGUgcmVsYXRpb25zLiIpLAorCQkJTlVMTAorCQl9LAorCQkmcGdzdGF0X3RyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzLAorCQl0cnVlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwK IAl7CiAJCXsidHJhY2tfd2FsX2lvX3RpbWluZyIsIFBHQ19TVVNFVCwgU1RBVFNfQ1VNVUxB VElWRSwKIAkJCWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdGltaW5nIHN0YXRpc3RpY3MgZm9y IFdBTCBJL08gYWN0aXZpdHkuIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBi MzdlOGE2Zjg4Mi4uYjBlMzYzNzk0ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApA QCAtMTI0MjksNCArMTI0MjksMjIgQEAKICAgcHJvYXJndHlwZXMgPT4gJ2ludDInLAogICBw cm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKK3sgb2lkID0+ICc4MDAx JywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMgcmV0dXJuIHN0YXRz IHZhbHVlcycsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMnLCBw cm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVj b3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3JldHNldCA9PiAndCcsCisgIHByb2Fy Z3R5cGVzID0+ICdvaWQnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxvaWQsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4 LGZsb2F0OCxmbG9hdDgsZmxvYXQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJv YXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3Nf aGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVh ZCxyZWxfYmxrc19oaXQscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLHZtX25ld19mcm96 ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzLG1pc3NlZF9kZWFkX3BhZ2VzLHR1cGxlc19kZWxldGVkLHR1cGxlc19mcm96ZW4scmVj ZW50bHlfZGVhZF90dXBsZXMsbWlzc2VkX2RlYWRfdHVwbGVzLHdyYXBhcm91bmRfZmFpbHNh ZmUsaW5kZXhfdmFjdXVtX2NvdW50LHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJs a19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSx0b3RhbF90aW1lfScsCisg IHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcycgfSwKKworICB7IG9pZCA9 PiAnODAwMicsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdGltZXMgdGhlIGFs bC12aXNpYmxlIHBhZ2VzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3Ig cGFnZXMgb2YgdGFibGUnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX3Zp c2libGVfcGFnZXMnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdy JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcycgfSwKKyAgeyBvaWQg PT4gJzgwMDMnLCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHRpbWVzIHRoZSBh bGwtZnJvemVuIHBhZ2VzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3Ig cGFnZXMgb2YgdGFibGUnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zy b3plbl9wYWdlcycsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3Ny YyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnIH0sCiBdCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oCmluZGV4IDEyZDBiNjE5NTBkLi45NGQ1OTk3NjdkZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvdmFjdXVtLmgKQEAgLTMwOCw2ICszMDgsNyBAQCBleHRlcm4gUEdETExJTVBPUlQg aW50IHZhY3V1bV9tdWx0aXhhY3RfZmFpbHNhZmVfYWdlOwogZXh0ZXJuIFBHRExMSU1QT1JU IHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlOwogZXh0ZXJuIFBH RExMSU1QT1JUIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBWYWN1dW1Db3N0QmFsYW5jZUxvY2FsOworZXh0ZXJuIFBH RExMSU1QT1JUIGRvdWJsZSBWYWN1dW1EZWxheVRpbWU7CiAKIGV4dGVybiBQR0RMTElNUE9S VCBib29sIFZhY3V1bUZhaWxzYWZlQWN0aXZlOwogZXh0ZXJuIFBHRExMSU1QT1JUIGRvdWJs ZSB2YWN1dW1fY29zdF9kZWxheTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5o IGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggNjQ3NTg4OWM1OGMuLjgxODM1MGFmOGQ0 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9w Z3N0YXQuaApAQCAtMTY3LDYgKzE2Nyw1MyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFj a2VuZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1Rf TlVNX1RZUEVTXTsKIH0gUGdTdGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogLS0tLS0tLS0t LQorICoKKyAqIEV4dFZhY1JlcG9ydAorICoKKyAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBv ZiB2YWN1dW0gcHJvY2Vzc2luZyBvdmVyIGEgaGVhcCByZWxhdGlvbi4KKyAqIHBhZ2VzX3Jl bW92ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBzaHJhbmssCisg KiBpZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24gZGlzaykKKyAq IHBhZ2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhlIGluZGV4IGZp bGUKKyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRXh0VmFjUmVwb3J0Cit7 CisJLyogbnVtYmVyIG9mIGJsb2NrcyBtaXNzZWQsIGhpdCwgZGlydGllZCBhbmQgd3JpdHRl biBkdXJpbmcgYSB2YWN1dW0gb2Ygc3BlY2lmaWMgcmVsYXRpb24gKi8KKwlpbnQ2NAkJdG90 YWxfYmxrc19yZWFkOworCWludDY0CQl0b3RhbF9ibGtzX2hpdDsKKwlpbnQ2NAkJdG90YWxf Ymxrc19kaXJ0aWVkOworCWludDY0CQl0b3RhbF9ibGtzX3dyaXR0ZW47CisKKwkvKiBibG9j a3MgbWlzc2VkIGFuZCBoaXQgZm9yIGp1c3QgdGhlIGhlYXAgZHVyaW5nIGEgdmFjdXVtIG9m IHNwZWNpZmljIHJlbGF0aW9uICovCisJaW50NjQJCWJsa3NfZmV0Y2hlZDsKKwlpbnQ2NAkJ Ymxrc19oaXQ7CisKKwkvKiBWYWN1dW0gV0FMIHVzYWdlIHN0YXRzICovCisJaW50NjQJCXdh bF9yZWNvcmRzOwkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgcmVjb3JkcyAqLworCWlu dDY0CQl3YWxfZnBpOwkJLyogd2FsIHVzYWdlOiBudW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBp bWFnZXMgcHJvZHVjZWQgKi8KKwl1aW50NjQJCXdhbF9ieXRlczsJCS8qIHdhbCB1c2FnZTog c2l6ZSBvZiBXQUwgcmVjb3JkcyBwcm9kdWNlZCAqLworCisJLyogVGltZSBzdGF0cy4gKi8K Kwlkb3VibGUJCWJsa19yZWFkX3RpbWU7CS8qIHRpbWUgc3BlbnQgcmVhZGluZyBwYWdlcywg aW4gbXNlYyAqLworCWRvdWJsZQkJYmxrX3dyaXRlX3RpbWU7IC8qIHRpbWUgc3BlbnQgd3Jp dGluZyBwYWdlcywgaW4gbXNlYyAqLworCWRvdWJsZQkJZGVsYXlfdGltZTsJCS8qIGhvdyBs b25nIHZhY3V1bSBzbGVwdCBpbiB2YWN1dW0gZGVsYXkgcG9pbnQsIGluIG1zZWMgKi8KKwlk b3VibGUJCXRvdGFsX3RpbWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlv biwgaW4gbXNlYyAqLworCisJaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkvKiBoZWFwIHBhZ2Vz IGV4YW1pbmVkIChub3Qgc2tpcHBlZCBieSBWTSkgKi8KKwlpbnQ2NAkJcGFnZXNfcmVtb3Zl ZDsJCS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCisJ aW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg ZnJvemVuICovCisJaW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJr ZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgKi8KKwlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZy b3plbiAqLworCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBy dW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICov CisJaW50NjQJCW1pc3NlZF9kZWFkX3BhZ2VzOwkJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVh ZCB0dXBsZXMgKi8KKwlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0dXBsZXMgZGVsZXRl ZCBieSB2YWN1dW0gKi8KKwlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96 ZW4gdXAgYnkgdmFjdXVtICovCisJaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBk ZWxldGVkIHR1cGxlcyB0aGF0IGFyZSBzdGlsbCB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rp b24gKi8KKwlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIGlu ZGV4IHZhY3V1bWluZ3MgKi8KKwlpbnQ2NAkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJ LyogdGhlIG51bWJlciBvZiB0aW1lcyB0byBwcmV2ZW50IHdvcmthcm91bmQgcHJvYmxlbSAq LworfSBFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3RhdF9UYWJsZUNv dW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEgYmFja2VuZAog ICoKQEAgLTIwOSw2ICsyNTYsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlQ291 bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQZ1N0YXRfQ291bnRl ciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2Vz OworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworCisJLyoKKwkgKiBB ZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3BlcmF0aW9ucy4KKwkgKiBV c2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFjdGlvbiBmb3IgZGlmZmVy ZW50IHR5cGVzIG9mCisJICogcmVsYXRpb25zLgorCSAqLworCUV4dFZhY1JlcG9ydAl2YWN1 dW1fZXh0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTI2 Nyw3ICszMjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVYYWN0U3RhdHVzCiAg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAxQTVC Q0IwCisjZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAxQTVCQ0IxCiAKIHR5cGVk ZWYgc3RydWN0IFBnU3RhdF9BcmNoaXZlclN0YXRzCiB7CkBAIC00MjksNiArNDg2LDggQEAg dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgcGFy YWxsZWxfd29ya2Vyc19sYXVuY2hlZDsKIAogCVRpbWVzdGFtcFR6IHN0YXRfcmVzZXRfdGlt ZXN0YW1wOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CQkvKiBleHRlbmRlZCB2YWN1 dW0gc3RhdGlzdGljcyAqLwogfSBQZ1N0YXRfU3RhdERCRW50cnk7CiAKIHR5cGVkZWYgc3Ry dWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CkBAIC01MDIsNiArNTYxLDExIEBAIHR5cGVkZWYg c3RydWN0IFBnU3RhdF9TdGF0VGFiRW50cnkKIAlQZ1N0YXRfQ291bnRlciBhbmFseXplX2Nv dW50OwogCVRpbWVzdGFtcFR6IGxhc3RfYXV0b2FuYWx5emVfdGltZTsJLyogYXV0b3ZhY3V1 bSBpbml0aWF0ZWQgKi8KIAlQZ1N0YXRfQ291bnRlciBhdXRvYW5hbHl6ZV9jb3VudDsKKwor CVBnU3RhdF9Db3VudGVyIHJldl9hbGxfdmlzaWJsZV9wYWdlczsKKwlQZ1N0YXRfQ291bnRl ciByZXZfYWxsX2Zyb3plbl9wYWdlczsKKworCUV4dFZhY1JlcG9ydCB2YWN1dW1fZXh0Owog fSBQZ1N0YXRfU3RhdFRhYkVudHJ5OwogCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfV2FsU3Rh dHMKQEAgLTY3Niw3ICs3NDAsOCBAQCBleHRlcm4gdm9pZCBwZ3N0YXRfYXNzb2NfcmVsYXRp b24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIHBnc3RhdF91bmxpbmtfcmVsYXRpb24o UmVsYXRpb24gcmVsKTsKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lk IHRhYmxlb2lkLCBib29sIHNoYXJlZCwKLQkJCQkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0 dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMpOworCQkJCQkJCQkgUGdTdGF0X0Nv dW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKKwkJCQkJCQkJ IEV4dFZhY1JlcG9ydCAqcGFyYW1zKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5h bHl6ZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxl cywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKIAkJCQkJCQkJICBib29sIHJlc2V0Y291 bnRlcik7CkBAIC03MjcsNiArNzkyLDE3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRf YW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0 aW9uKHJlbCkpCQkJCQkJXAogCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tz X2hpdCsrOwkJCQlcCiAJfSB3aGlsZSAoMCkKKy8qIGFjY3VtdWxhdGUgdW5mcm96ZW4gYWxs LXZpc2libGUgYW5kIGFsbC1mcm96ZW4gcGFnZXMgKi8KKyNkZWZpbmUgcGdzdGF0X2NvdW50 X3ZtX3Jldl9hbGxfdmlzaWJsZShyZWwpCQkJCQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlc CisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJ KHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMucmV2X2FsbF92aXNpYmxlX3BhZ2VzKys7CVwK Kwl9IHdoaWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF9mcm96ZW4o cmVsKQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3Vs ZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+ Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzKys7CVwKKwl9IHdoaWxlICgwKQogCiBleHRl cm4gdm9pZCBwZ3N0YXRfY291bnRfaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsLCBQZ1N0YXRf Q291bnRlciBuKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxh dGlvbiByZWwsIGJvb2wgaG90LCBib29sIG5ld3BhZ2UpOwpAQCAtNzQ0LDcgKzgyMCw2IEBA IGV4dGVybiBQZ1N0YXRfU3RhdFRhYkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRy eV9leHQoYm9vbCBzaGFyZWQsCiAJCQkJCQkJCQkJCQkJCSAgIE9pZCByZWxvaWQpOwogZXh0 ZXJuIFBnU3RhdF9UYWJsZVN0YXR1cyAqZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQp OwogCi0KIC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X3JlcGxzbG90LmMKICAqLwpAQCAt ODE1LDYgKzg5MCw3IEBAIGV4dGVybiBQZ1N0YXRfV2FsU3RhdHMgKnBnc3RhdF9mZXRjaF9z dGF0X3dhbCh2b2lkKTsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHBnc3RhdF90cmFja19j b3VudHM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF90cmFja19mdW5jdGlvbnM7 CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeTsKK2V4 dGVybiBQR0RMTElNUE9SVCBib29sIHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljczsK IAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvZWxvZy5oCmluZGV4IDcxNjFmNWM2YWQ2Li45ZTA4MDc0N2E5MiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL2Vsb2cuaApAQCAtMjMwLDYgKzIzMCw3IEBAIGV4dGVybiBpbnQJZ2V0ZXJybGV2ZWwo dm9pZCk7CiBleHRlcm4gaW50CWdldGVycnBvc2l0aW9uKHZvaWQpOwogZXh0ZXJuIGludAln ZXRpbnRlcm5hbGVycnBvc2l0aW9uKHZvaWQpOwogCitleHRlcm4gaW50CWdldGVycmVsZXZl bCh2b2lkKTsKIAogLyotLS0tLS0tLS0tCiAgKiBPbGQtc3R5bGUgZXJyb3IgcmVwb3J0aW5n IEFQSTogdG8gYmUgdXNlZCBpbiB0aGlzIHdheToKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2lu dGVybmFsLmgKaW5kZXggNGJiOGU1YzUzYWIuLjg3NzIxODcyM2RjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9wZ3N0YXRfaW50ZXJuYWwuaApAQCAtNjAwLDcgKzYwMCw3IEBAIGV4dGVybiBQZ1N0 YXRfRW50cnlSZWYgKnBnc3RhdF9mZXRjaF9wZW5kaW5nX2VudHJ5KFBnU3RhdF9LaW5kIGtp bmQsCiBleHRlcm4gdm9pZCAqcGdzdGF0X2ZldGNoX2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQs IE9pZCBkYm9pZCwgdWludDY0IG9iamlkKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9zbmFwc2hv dF9maXhlZChQZ1N0YXRfS2luZCBraW5kKTsKIAotCitleHRlcm4gdm9pZCBwZ3N0YXRfdXBk YXRlX3NuYXBzaG90KFBnU3RhdF9LaW5kIGtpbmQpOwogLyoKICAqIEZ1bmN0aW9ucyBpbiBw Z3N0YXRfYXJjaGl2ZXIuYwogICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUt cmVhZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg3Zjdl NDBiNGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBAIC0wLDAgKzEsNTMg QEAKK3VudXNlZCBzdGVwIG5hbWU6IHMyX2RlbGV0ZQorUGFyc2VkIHRlc3Qgc3BlYyB3aXRo IDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyX2luc2VydCBzMl9wcmlu dF92YWN1dW1fc3RhdHNfdGFibGUgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkIHMyX3VwZGF0 ZSBzMl9pbnNlcnRfaW50ZXJydXB0IHMyX3ZhY3V1bSBzMl9wcmludF92YWN1dW1fc3RhdHNf dGFibGUgczFfY29tbWl0IHMyX2NoZWNrcG9pbnQgczJfdmFjdXVtIHMyX3ByaW50X3ZhY3V1 bV9zdGF0c190YWJsZQorc3RlcCBzMl9pbnNlcnQ6IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9z dGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwgdnQudHVwbGVzX2Rl bGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF90dXBsZXMs IHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJvemVuCisgICAgRlJPTSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2dC5yZWxuYW1l ID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVsaWQgPSBjLm9pZDsK KworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlf ZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxl c19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAg ICAgMHwgICAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAg ICAgICAgIDB8ICAgICAgICAgICAgMAorKDEgcm93KQorCitzdGVwIHMxX2JlZ2luX3JlcGVh dGFibGVfcmVhZDogCisgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBF QVRBQkxFIFJFQUQ7CisgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0 YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKKworY291bnQKKy0tLS0tCisgIDEwMAorKDEg cm93KQorCitzdGVwIHMyX3VwZGF0ZTogVVBEQVRFIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0 aW9uIFNFVCBpdmFsID0gaXZhbCArIDIgd2hlcmUgaWQgPiA5MDA7CitzdGVwIHMyX2luc2Vy dF9pbnRlcnJ1cHQ6IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHZh bHVlcyAoMSwxKTsKK3N0ZXAgczJfdmFjdXVtOiBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9p c29sYXRpb247CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VM RUNUCisgICAgdnQucmVsbmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2Rl YWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2Vz LCB2dC50dXBsZXNfZnJvemVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQs IHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRf aXNvbGF0aW9uJyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAg ICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2Rl YWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0 X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAg IDEwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAg MAorKDEgcm93KQorCitzdGVwIHMxX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMl9jaGVja3Bv aW50OiBDSEVDS1BPSU5UOworc3RlcCBzMl92YWN1dW06IFZBQ1VVTSB0ZXN0X3ZhY3V1bV9z dGF0X2lzb2xhdGlvbjsKK3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOiAKKyAg ICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQucmVjZW50 bHlfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRf cGFnZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworCityZWxuYW1lICAgICAg ICAgICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxyZWNlbnRseV9kZWFkX3R1cGxlc3xtaXNz ZWRfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfcGFnZXN8dHVwbGVzX2Zyb3plbgorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K K3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9ufCAgICAgICAgICAgMTAwfCAgICAgICAgICAg ICAgICAgMTAwfCAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgMHwgICAgICAg ICAgMTAxCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29s YXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxl CmluZGV4IDE0MzEwOWFhNGRhLi5lOTNkZDRmNjI2YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9pc29sYXRpb24v aXNvbGF0aW9uX3NjaGVkdWxlCkBAIC05NSw2ICs5NSw3IEBAIHRlc3Q6IHRpbWVvdXRzCiB0 ZXN0OiB2YWN1dW0tY29uY3VycmVudC1kcm9wCiB0ZXN0OiB2YWN1dW0tY29uZmxpY3QKIHRl c3Q6IHZhY3V1bS1za2lwLWxvY2tlZAordGVzdDogdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBl dGFibGUtcmVhZAogdGVzdDogc3RhdHMKIHRlc3Q6IGhvcml6b25zCiB0ZXN0OiBwcmVkaWNh dGUtaGFzaApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1l eHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9z cGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4OTNkODk1NzNkCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4t cmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtMCwwICsxLDUzIEBACisjIFRlc3QgZm9yIGNoZWNr aW5nIHJlY2VudGx5X2RlYWRfdHVwbGVzLCB0dXBsZXNfZGVsZXRlZCBhbmQgZnJvemVuIHR1 cGxlcyBpbiBwZ19zdGF0X3ZhY3V1bV90YWJsZXMuCisjIHJlY2VudGx5X2RlYWRfdHVwbGVz IHZhbHVlcyBhcmUgY291bnRlZCB3aGVuIHZhY3V1bSBoYXNuJ3QgY2xlYXJlZCB0dXBsZXMg YmVjYXVzZSB0aGV5IHdlcmUgZGVsZXRlZCByZWNlbnRseS4KKyMgcmVjZW50bHlfZGVhZF90 dXBsZXMgYXJlbid0IGluY3JlYXNlZCBhZnRlciByZWxlYXNpbmcgbG9jayBjb21wYXJlZCB3 aXRoIHR1cGxlc19kZWxldGVkLCB3aGljaCBpbmNyZWFzZWQKKyMgYnkgdGhlIHZhbHVlIG9m IHRoZSBjbGVhcmVkIHR1cGxlcyB0aGF0IHRoZSB2YWN1dW0gbWFuYWdlZCB0byBjbGVhci4K Kworc2V0dXAKK3sKKyAgICBDUkVBVEUgVEFCTEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRp b24oaWQgaW50LCBpdmFsIGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmKTsK KyAgICBTRVQgdHJhY2tfaW9fdGltaW5nID0gb247CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9z dGF0aXN0aWNzIFRPICdvbic7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBUQUJMRSB0 ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBDQVNDQURFOworICAgIFJFU0VUIHRyYWNrX2lv X3RpbWluZzsKKyAgICBSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKK30KKworc2Vz c2lvbiBzMQorc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7CisgIEJFR0lOIHRy YW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CisgIHNlbGVjdCBj b3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkw MDsKKyAgfQorc3RlcCBzMV9jb21taXQgICAgICAgICAgICAgICAgICB7IENPTU1JVDsgfQor CitzZXNzaW9uIHMyCitzdGVwIHMyX2luc2VydCAgICAgICAgICAgICAgICAgIHsgSU5TRVJU IElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQsIGl2YWwpIFNFTEVDVCBpdmFs LCBpdmFsJTEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgQXMgaXZhbDsgfQorc3Rl cCBzMl91cGRhdGUgICAgICAgICAgICAgICAgICB7IFVQREFURSB0ZXN0X3ZhY3V1bV9zdGF0 X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAyIHdoZXJlIGlkID4gOTAwOyB9CitzdGVw IHMyX2RlbGV0ZSAgICAgICAgICAgICAgICAgIHsgREVMRVRFIEZST00gdGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb24gd2hlcmUgaWQgPiA5MDA7IH0KK3N0ZXAgczJfaW5zZXJ0X2ludGVy cnVwdCAgICAgICAgeyBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB2 YWx1ZXMgKDEsMSk7IH0KK3N0ZXAgczJfdmFjdXVtICAgICAgICAgICAgICAgICAgeyBWQUNV VU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247IH0KK3N0ZXAgczJfY2hlY2twb2ludCAg ICAgICAgICAgICAgeyBDSEVDS1BPSU5UOyB9CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0 c190YWJsZQoreworICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1cGxlc19kZWxl dGVkLCB2dC5yZWNlbnRseV9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRfdHVwbGVzLCB2 dC5taXNzZWRfZGVhZF9wYWdlcywgdnQudHVwbGVzX2Zyb3plbgorICAgIEZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUgdnQucmVsbmFtZSA9 ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7Cit9 CisKK3Blcm11dGF0aW9uCisgICAgczJfaW5zZXJ0CisgICAgczJfcHJpbnRfdmFjdXVtX3N0 YXRzX3RhYmxlCisgICAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkCisgICAgczJfdXBkYXRl CisgICAgczJfaW5zZXJ0X2ludGVycnVwdAorICAgIHMyX3ZhY3V1bQorICAgIHMyX3ByaW50 X3ZhY3V1bV9zdGF0c190YWJsZQorICAgIHMxX2NvbW1pdAorICAgIHMyX2NoZWNrcG9pbnQK KyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CmluZGV4IDMwMTRkMDQ3ZmVmLi5kZDc5NWQ1OGRmYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKQEAgLTE4MDQsNyArMTgwNCw5IEBAIHBnX3N0YXRfYWxsX3RhYmxl c3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgIHBnX3N0YXRfZ2V0X3ZhY3V1bV9jb3Vu dChjLm9pZCkgQVMgdmFjdXVtX2NvdW50LAogICAgIHBnX3N0YXRfZ2V0X2F1dG92YWN1dW1f Y291bnQoYy5vaWQpIEFTIGF1dG92YWN1dW1fY291bnQsCiAgICAgcGdfc3RhdF9nZXRfYW5h bHl6ZV9jb3VudChjLm9pZCkgQVMgYW5hbHl6ZV9jb3VudCwKLSAgICBwZ19zdGF0X2dldF9h dXRvYW5hbHl6ZV9jb3VudChjLm9pZCkgQVMgYXV0b2FuYWx5emVfY291bnQKKyAgICBwZ19z dGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudChjLm9pZCkgQVMgYXV0b2FuYWx5emVfY291bnQs CisgICAgcGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMoYy5vaWQpIEFTIHJldl9h bGxfZnJvemVuX3BhZ2VzLAorICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdl cyhjLm9pZCkgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBGUk9NICgocGdfY2xhc3Mg YwogICAgICBMRUZUIEpPSU4gcGdfaW5kZXggaSBPTiAoKGMub2lkID0gaS5pbmRyZWxpZCkp KQogICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFt ZXNwYWNlKSkpCkBAIC0yMTg4LDcgKzIxOTAsOSBAQCBwZ19zdGF0X3N5c190YWJsZXN8IFNF TEVDVCByZWxpZCwKICAgICB2YWN1dW1fY291bnQsCiAgICAgYXV0b3ZhY3V1bV9jb3VudCwK ICAgICBhbmFseXplX2NvdW50LAotICAgIGF1dG9hbmFseXplX2NvdW50CisgICAgYXV0b2Fu YWx5emVfY291bnQsCisgICAgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisgICAgcmV2X2FsbF92 aXNpYmxlX3BhZ2VzCiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNj aGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9u X3NjaGVtYSc6Om5hbWVdKSkgT1IgKHNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6dGV4dCkp OwogcGdfc3RhdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwKQEAg LTIyMzYsOSArMjI0MCw0MiBAQCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcmVsaWQs CiAgICAgdmFjdXVtX2NvdW50LAogICAgIGF1dG92YWN1dW1fY291bnQsCiAgICAgYW5hbHl6 ZV9jb3VudCwKLSAgICBhdXRvYW5hbHl6ZV9jb3VudAorICAgIGF1dG9hbmFseXplX2NvdW50 LAorICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzLAorICAgIHJldl9hbGxfdmlzaWJsZV9wYWdl cwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFuYW1lIDw+ IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6 bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0 YXRfdmFjdXVtX3RhYmxlc3wgU0VMRUNUIG5zLm5zcG5hbWUgQVMgc2NoZW1hLAorICAgIHJl bC5yZWxuYW1lLAorICAgIHN0YXRzLnJlbGlkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfcmVh ZCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2hpdCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2Rp cnRpZWQsCisgICAgc3RhdHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHN0YXRzLnJlbF9i bGtzX3JlYWQsCisgICAgc3RhdHMucmVsX2Jsa3NfaGl0LAorICAgIHN0YXRzLnBhZ2VzX3Nj YW5uZWQsCisgICAgc3RhdHMucGFnZXNfcmVtb3ZlZCwKKyAgICBzdGF0cy52bV9uZXdfZnJv emVuX3BhZ2VzLAorICAgIHN0YXRzLnZtX25ld192aXNpYmxlX3BhZ2VzLAorICAgIHN0YXRz LnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywKKyAgICBzdGF0cy5taXNzZWRfZGVhZF9w YWdlcywKKyAgICBzdGF0cy50dXBsZXNfZGVsZXRlZCwKKyAgICBzdGF0cy50dXBsZXNfZnJv emVuLAorICAgIHN0YXRzLnJlY2VudGx5X2RlYWRfdHVwbGVzLAorICAgIHN0YXRzLm1pc3Nl ZF9kZWFkX3R1cGxlcywKKyAgICBzdGF0cy5pbmRleF92YWN1dW1fY291bnQsCisgICAgc3Rh dHMud2FsX3JlY29yZHMsCisgICAgc3RhdHMud2FsX2ZwaSwKKyAgICBzdGF0cy53YWxfYnl0 ZXMsCisgICAgc3RhdHMuYmxrX3JlYWRfdGltZSwKKyAgICBzdGF0cy5ibGtfd3JpdGVfdGlt ZSwKKyAgICBzdGF0cy5kZWxheV90aW1lLAorICAgIHN0YXRzLnRvdGFsX3RpbWUKKyAgIEZS T00gKHBnX2NsYXNzIHJlbAorICAgICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiAoKG5zLm9p ZCA9IHJlbC5yZWxuYW1lc3BhY2UpKSksCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1 dW1fdGFibGVzKHJlbC5vaWQpIHN0YXRzKHJlbGlkLCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFs X2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgcmVs X2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdlc19zY2FubmVkLCBwYWdlc19yZW1vdmVk LCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9wYWdlcywgdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRfZGVhZF9wYWdlcywgdHVwbGVzX2RlbGV0ZWQs IHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRfdHVwbGVzLCBtaXNzZWRfZGVhZF90dXBs ZXMsIGluZGV4X3ZhY3V1bV9jb3VudCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRl cywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3Rp bWUpCisgIFdIRVJFIChyZWwucmVsa2luZCA9ICdyJzo6ImNoYXIiKTsKIHBnX3N0YXRfd2Fs fCBTRUxFQ1Qgd2FsX3JlY29yZHMsCiAgICAgd2FsX2ZwaSwKICAgICB3YWxfYnl0ZXMsCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNf c3RhdGlzdGljcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjBjMDVhODEyZGQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CkBAIC0wLDAgKzEsMjI1IEBACist LQorLS0gVGVzdCBjdW11bGF0aXZlIHZhY3V1bSBzdGF0cyBzeXN0ZW0KKy0tCistLSBDaGVj ayB0aGUgd2FsbCBzdGF0aXN0aWNzIGNvbGxlY3RlZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlv bjoKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1 bTsKKy0tIG51bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBi YWNrZW5kLgorLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlz IHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCistLQorLS0gY29uZGl0 aW8gc2luZSBxdWEgbm9uCitTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KKyB0 cmFja19jb3VudHMgCistLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cpCisKK1xzZXQgc2Ft cGxlX3NpemUgMTAwMDAKKy0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50 IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CistLSBUZXN0 IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mgd2lsbCBiZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBp cyBvZmYuCitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29mZic7CitDUkVBVEUg VEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBm aWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitE RUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworVkFDVVVNIChQQVJBTExFTCAw LCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CistLSBNdXN0IGJlIGVtcHR5Lgor U0VMRUNUIHJlbG5hbWUsdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxf Ymxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCwgcmVsX2Js a3NfaGl0LAorcGFnZXNfc2Nhbm5lZCwgcGFnZXNfcmVtb3ZlZCwgdm1fbmV3X2Zyb3plbl9w YWdlcywgdm1fbmV3X3Zpc2libGVfcGFnZXMsIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cywgbWlzc2VkX2RlYWRfcGFnZXMsCit0dXBsZXNfZGVsZXRlZCwgdHVwbGVzX2Zyb3plbiwg cmVjZW50bHlfZGVhZF90dXBsZXMsIG1pc3NlZF9kZWFkX3R1cGxlcywgaW5kZXhfdmFjdXVt X2NvdW50LAord2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGlt ZSwgYmxrX3dyaXRlX3RpbWUsZGVsYXlfdGltZSwgdG90YWxfdGltZQorRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMgdnQKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKKyByZWxu YW1lIHwgdG90YWxfYmxrc19yZWFkIHwgdG90YWxfYmxrc19oaXQgfCB0b3RhbF9ibGtzX2Rp cnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCByZWxfYmxrc19yZWFkIHwgcmVsX2Jsa3Nf aGl0IHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgfCB2bV9uZXdfZnJvemVuX3Bh Z2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgfCBtaXNzZWRfZGVhZF9wYWdlcyB8IHR1cGxlc19kZWxldGVkIHwgdHVwbGVzX2Zyb3pl biB8IHJlY2VudGx5X2RlYWRfdHVwbGVzIHwgbWlzc2VkX2RlYWRfdHVwbGVzIHwgaW5kZXhf dmFjdXVtX2NvdW50IHwgd2FsX3JlY29yZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgYmxr X3JlYWRfdGltZSB8IGJsa193cml0ZV90aW1lIHwgZGVsYXlfdGltZSB8IHRvdGFsX3RpbWUg CistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIHZlc3RhdCAgfCAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAg IDAgfCAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgMCB8ICAg ICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgIDAg fCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAg ICAgIDAgfCAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgMCB8ICAgICAgIDAgfCAg ICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgIDAgfCAgICAgICAgICAw IHwgICAgICAgICAgMAorKDEgcm93KQorCitSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGlj czsKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0 aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgorIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG9uCisoMSByb3cpCisKKy0tIGVuc3VyZSBwZW5k aW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNo KCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAKKygxIHJvdykKKworLS1TRVQgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBz bmFwc2hvdDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVt X2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQg U0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitB TkFMWVpFIHZlc3RhdDsKK1NFTEVDVCBvaWQgQVMgcm9pZCBmcm9tIHBnX2NsYXNzIHdoZXJl IHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHgg JSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4ZWN1dGlvbiBleHRlbmRl ZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3pl bl9wYWdlcyx0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyxwYWdlc19zY2FubmVkLHBhZ2VzX3Jl bW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVS RSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFt ZSB8IHZtX25ld19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwg cGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8ICAgICAgICAgICAgICAgICAgIDAgfCAgICAg ICAgICAgICAgMCB8ICAgICAgNDU1IHwgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDAK KygxIHJvdykKKworU0VMRUNUIHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBnX2NsYXNzIGMKK1dI RVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorVkFDVVVNIChQQVJBTExFTCAwLCBCVUZG RVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQg aXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsK Ky0tIFRoZSB0YWJsZSBhbmQgaW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hv dWxkIHNob3cgdXMgdGhhdAorLS0gdmFjdXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4gdXAg cGFnZXMsIGJ1dCBwYWdlc19yZW1vdmVkIHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBv ZiBub3QgZnVsbCB0YWJsZSBoYXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1lLHZt X25ld19mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2Rl bGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzLTpycCA9IDAgQVMgcmVscGFn ZXMscGFnZXNfc2Nhbm5lZCA+IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkID0g MCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMu b2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdHVwbGVzX2RlbGV0ZWQg fCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdlc19yZW1vdmVkIAorLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdCAgfCBmICAgICAgICAgICAg ICAgICAgIHwgdCAgICAgICAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0 CisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxlc19k ZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdl c19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xh c3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lk IFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3 YWxfcmVjb3JkcyBBUyBod3Isd2FsX2J5dGVzIEFTIGh3Yix3YWxfZnBpIEFTIGhmcGkgRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0 CistLSBMb29rIGludG8gV0FMIHJlY29yZHMgZGVsdGFzLgorU0VMRUNUIHdhbF9yZWNvcmRz ID4gMCBBUyBkV1IsIHdhbF9ieXRlcyA+IDAgQVMgZFdCCitGUk9NIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7CisgZHdyIHwgZHdiIAorLS0tLS0r LS0tLS0KKyB0ICAgfCB0CisoMSByb3cpCisKK0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNV VU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAg T0ZGKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0 aXN0aWNzCitDSEVDS1BPSU5UOworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGluY3JlYXNl ZAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcy06ZnAgPiAwIEFTIHZt X25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQtOnRkID4gMCBBUyB0dXBsZXNfZGVs ZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA+ IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA+IDAgQVMgcGFnZXNfcmVt b3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1l IHwgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBw YWdlc19zY2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwgZiAgICAgICAgICAgICAgICAgICB8IHQgICAg ICAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitT RUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxy ZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBw cgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0 LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3Rv cmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3 ciBBUyBkd3IsIHdhbF9ieXRlcy06aHdiIEFTIGR3Yiwgd2FsX2ZwaS06aGZwaSBBUyBkZnBp CitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcg XGdzZXQKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdy ID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKyBkd3IgfCBkd2IgCistLS0tLSstLS0t LQorIHQgICB8IHQKKygxIHJvdykKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFy aWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBod2Isd2Fs X2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0JyBcZ3NldAorSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworREVMRVRFIEZST00gdmVzdGF0 IFdIRVJFIHggJSAyID0gMDsKKy0tIFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0IHRvIHN0 YXQgY29sbGVjdG9yLiBTbywgbm8gYW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0aWNzCist LSBhcmUgZGV0ZWN0ZWQgaGVyZS4KK1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0IGlzIG5l Y2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBT dG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06 aHdyIEFTIGR3cjIsIHdhbF9ieXRlcy06aHdiIEFTIGR3YjIsIHdhbF9mcGktOmhmcGkgQVMg ZGZwaTIKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVz dGF0JyBcZ3NldAorLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxk IG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyMj0wIEFTIGRXUiwgOmRmcGkyPTAgQVMg ZEZQSSwgOmR3YjI9MCBBUyBkV0I7CisgZHdyIHwgZGZwaSB8IGR3YiAKKy0tLS0tKy0tLS0t LSstLS0tLQorIHQgICB8IHQgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1l LHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1 cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA8 IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPSAwIEFTIHBhZ2VzX3NjYW5uZWQs cGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92 YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3Rh dCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHZtX25ld19mcm96ZW5fcGFn ZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2Vz X3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgdmVz dGF0ICB8IHQgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAg IHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZtX25ld19mcm96ZW5f cGFnZXMgQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVscGFnZXMgQVMgcnAsIHBhZ2Vz X3NjYW5uZWQgQVMgcHMscGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBB TkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8g dmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBod2Is d2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JyBcZ3NldAorREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNBVEUgdmVz dGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRF WF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRo ZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBp bnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxl CitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IzLCB3YWxfYnl0ZXMtOmh3YiBBUyBk d2IzLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0tVGhlcmUgYXJlIG5vdGhpbmcg Y2hhbmdlZAorU0VMRUNUIDpkd3IzPjAgQVMgZFdSLCA6ZGZwaTM9MCBBUyBkRlBJLCA6ZHdi Mz4wIEFTIGRXQjsKKyBkd3IgfCBkZnBpIHwgZHdiIAorLS0tLS0rLS0tLS0tKy0tLS0tCisg dCAgIHwgdCAgICB8IHQKKygxIHJvdykKKworLS0KKy0tIE5vdywgdGhlIHRhYmxlIGFuZCBp bmRleCBpcyBjb21wcmVzc2VkIGludG8gemVybyBudW1iZXIgb2YgcGFnZXMuIENoZWNrIGl0 CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcy4KKy0tIFRoZSB2bV9uZXdfZnJv emVuX3BhZ2VzLCBwYWdlc19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAor LS0KK1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2 bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2Rl bGV0ZWQscmVscGFnZXMgLTpycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMg PSAwIEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3Jl bW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVS RSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFt ZSB8IHZtX25ld19mcm96ZW5fcGFnZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwg cGFnZXNfc2Nhbm5lZCB8IHBhZ2VzX3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0ICB8IHQgICAgICAgICAgICAgICAgICAgfCB0ICAg ICAgICAgICAgICB8IGYgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKwor SU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNh bXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CistLSBtdXN0IGJlIGVtcHR5CitT RUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcywgdm1fbmV3X3Zpc2libGVfcGFnZXMsIHJldl9h bGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90 YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBh bmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJl bGlkOworIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8IHJl dl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIHwgdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg IDAgfCAgICAgICAgICAgICAgICAgIDkxMCB8ICAgICAgICAgICAgICAgICAgICAwIHwgICAg ICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAgICAgNDU1CisoMSBy b3cpCisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVz dGF0OworLS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKK1NFTEVDVCB2bV9uZXdfZnJvemVu X3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2Vz ID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9w YWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2Vz ID0gMCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJl bG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdf c3RhdF9hbGxfdGFibGVzLnJlbGlkOworIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdf dmlzaWJsZV9wYWdlcyB8IHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxf ZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVf cGFnZXMgQVMgcHYsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2Fs bF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQgXGdzZXQKK1VQ REFURSB2ZXN0YXQgU0VUIHggPSB4ICsgMTAwMTsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVG RkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFn ZXMgPiA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+ IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgPiA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3pl bl9wYWdlcyA+IDpoYWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJs ZV9wYWdlcyA+IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMu cmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7Cisgdm1fbmV3X2Zyb3plbl9wYWdl cyB8IHZtX25ld192aXNpYmxlX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2Vz IHwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX3Zpc2libGVfcGFnZXMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgZiAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgICAg fCBmCisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHBmLCB2bV9u ZXdfdmlzaWJsZV9wYWdlcyBBUyBwdiwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFT IHB2ZiwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFn ZXMgQVMgaGF2cAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3Rh YmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFu ZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVs aWQgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkg dmVzdGF0OworLS0gdmFjdXVtIGZyZWV6ZWQgcGFnZXMKK1NFTEVDVCB2bV9uZXdfZnJvemVu X3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFn ZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIHJldl9hbGxf ZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92 aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRf dmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3Rh Ymxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKKyB2bV9uZXdfZnJvemVu X3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMgfCByZXZfYWxsX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0ICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAg ICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAg ICAgICB8IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWJiLi5kMTFmNmI3ZWY0 YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMzYsMyArMTM2LDgg QEAgdGVzdDogZmFzdF9kZWZhdWx0CiAjIHJ1biB0YWJsZXNwYWNlIHRlc3QgYXQgdGhlIGVu ZCBiZWNhdXNlIGl0IGRyb3BzIHRoZSB0YWJsZXNwYWNlIGNyZWF0ZWQgZHVyaW5nCiAjIHNl dHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5IHVzZS4KIHRlc3Q6IHRhYmxlc3BhY2UKKworIyAt LS0tLS0tLS0tCisjIENoZWNrIHZhY3V1bSBzdGF0aXN0aWNzCisjIC0tLS0tLS0tLS0KK3Rl c3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRp c3RpY3Muc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YWQ2 OTEwOGNhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1 bV90YWJsZXNfc3RhdGlzdGljcy5zcWwKQEAgLTAsMCArMSwxODAgQEAKKy0tCistLSBUZXN0 IGN1bXVsYXRpdmUgdmFjdXVtIHN0YXRzIHN5c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxs IHN0YXRpc3RpY3MgY29sbGVjdGVkIGR1cmluZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVt YmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVt YmVyIG9mIGZyb3plbiBhbmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCist LSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNh dXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KKy0tCisKKy0tIGNvbmRpdGlvIHNpbmUg cXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCitcc2V0IHNhbXBs ZV9zaXplIDEwMDAwCisKKy0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50 IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CisKKy0tIFRl c3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVy IGlzIG9mZi4KK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKKworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9m ZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0 OworCitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworCitWQUNVVU0gKFBB UkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworLS0gTXVzdCBi ZSBlbXB0eS4KK1NFTEVDVCByZWxuYW1lLHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19o aXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193cml0dGVuLHJlbF9ibGtzX3Jl YWQsIHJlbF9ibGtzX2hpdCwKK3BhZ2VzX3NjYW5uZWQsIHBhZ2VzX3JlbW92ZWQsIHZtX25l d19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMsIG1pc3NlZF9kZWFkX3BhZ2VzLAordHVwbGVzX2RlbGV0ZWQsIHR1cGxl c19mcm96ZW4sIHJlY2VudGx5X2RlYWRfdHVwbGVzLCBtaXNzZWRfZGVhZF90dXBsZXMsIGlu ZGV4X3ZhY3V1bV9jb3VudCwKK3dhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJs a19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUKK0ZS T00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3Rh dCc7CisKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOworRFJPUCBUQUJMRSB2ZXN0 YXQgQ0FTQ0FERTsKKworU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3Qg YmUgb24KKworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBw Z19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKworLS1TRVQgc3RhdHNfZmV0Y2hfY29uc2lz dGVuY3kgPSBzbmFwc2hvdDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChh dXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5U TyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUp IGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworU0VMRUNUIG9pZCBBUyByb2lkIGZyb20gcGdf Y2xhc3Mgd2hlcmUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKK0RFTEVURSBGUk9NIHZl c3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZpcnN0IHZhY3V1bSBleGVj dXRpb24gZXh0ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NFTEVDVCB2dC5yZWxuYW1l LHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMscGFnZXNfc2Nh bm5lZCxwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMu b2lkOworU0VMRUNUIHJlbHBhZ2VzIEFTIHJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJl bG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9V U0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7CistLSBpdCBpcyBu ZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworCist LSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3Vs ZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBh Z2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Yg bm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9u ZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxl dGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcy06cnAgPSAwIEFTIHJlbHBhZ2Vz LHBhZ2VzX3NjYW5uZWQgPiAwIEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCA9IDAg QVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2Ns YXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxlc19kZWxldGVkIEFT IHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVk IEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hF UkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisK Ky0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNv cmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0g TG9vayBpbnRvIFdBTCByZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAg QVMgZFdSLCB3YWxfYnl0ZXMgPiAwIEFTIGRXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworCitERUxFVEUgRlJPTSB2ZXN0YXQ7Owor VkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVB TlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwg c3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGlu Y3JlYXNlZAorU0VMRUNUIHZ0LnJlbG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcy06ZnAgPiAw IEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0ZWQtOnRkID4gMCBBUyB0dXBs ZXNfZGVsZXRlZCxyZWxwYWdlcyAtOnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVk LTpwcyA+IDAgQVMgcGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLTpwciA+IDAgQVMgcGFn ZXNfcmVtb3ZlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMK K1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NF TEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJl bHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHBy CitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQu cmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpo d3IgQVMgZHdyLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IsIHdhbF9mcGktOmhmcGkgQVMgZGZw aQorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQn IFxnc2V0CisKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6 ZHdyID4gMCBBUyBkV1IsIDpkd2IgPiAwIEFTIGRXQjsKKworLS0gU3RvcmUgV0FMIGFkdmFu Y2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRl cyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdI RVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VM RUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxF VEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24n dCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9m IHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0 OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hF Q0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxF Q1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IyLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IyLCB3 YWxfZnBpLTpoZnBpIEFTIGRmcGkyCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0 aWNzIGFkdmFuY2Ugc2hvdWxkIG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyMj0wIEFT IGRXUiwgOmRmcGkyPTAgQVMgZEZQSSwgOmR3YjI9MCBBUyBkV0I7CisKK1NFTEVDVCB2dC5y ZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID0gMCBBUyB2bV9uZXdfZnJvemVuX3Bh Z2VzLHR1cGxlc19kZWxldGVkLTp0ZCA9IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMg LTpycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPSAwIEFTIHBhZ2VzX3Nj YW5uZWQscGFnZXNfcmVtb3ZlZC06cHIgPSAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9w YWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNf c2Nhbm5lZCBBUyBwcyxwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFO RCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRv IHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdi LHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxu YW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNBVEUg dmVzdGF0OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJ TkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNr IHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFu Y2VzIGludG8gdmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUg dGFibGUKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aHdyIEFTIGR3cjMsIHdhbF9ieXRlcy06aHdi IEFTIGR3YjMsIHdhbF9mcGktOmhmcGkgQVMgZGZwaTMKK0ZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorCistLVRoZXJlIGFyZSBu b3RoaW5nIGNoYW5nZWQKK1NFTEVDVCA6ZHdyMz4wIEFTIGRXUiwgOmRmcGkzPTAgQVMgZEZQ SSwgOmR3YjM+MCBBUyBkV0I7CisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXgg aXMgY29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0g aW4gdmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgdm1fbmV3X2Zyb3plbl9w YWdlcywgcGFnZXNfc2Nhbm5lZCB2YWx1ZXMgc2hvdWxkbid0IGJlIGNoYW5nZWQKKy0tCitT RUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzLTpmcCA9IDAgQVMgdm1fbmV3 X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVk LHJlbHBhZ2VzIC06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBB UyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVk CitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQu cmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworCitJTlNFUlQgSU5U TyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUp IGFzIHg7CitBTkFMWVpFIHZlc3RhdDsKKworLS0gbXVzdCBiZSBlbXB0eQorU0VMRUNUIHZt X25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCByZXZfYWxsX2Zyb3pl bl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdI RVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKKwor VkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisK Ky0tIGJhY2tlbmQgZGVmcmVlemVkIHBhZ2VzCitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdl cyA+IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDAg QVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID4g MCBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMg PSAwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDAg QVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywg cGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1l ID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRf YWxsX3RhYmxlcy5yZWxpZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHBmLCB2 bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBwdix2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMg QVMgcHZmLCByZXZfYWxsX2Zyb3plbl9wYWdlcyBBUyBoYWZwLHJldl9hbGxfdmlzaWJsZV9w YWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxf dGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcg YW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5y ZWxpZCBcZ3NldAorCitVUERBVEUgdmVzdGF0IFNFVCB4ID0geCArIDEwMDE7CitWQUNVVU0g KFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworU0VMRUNU IHZtX25ld19mcm96ZW5fcGFnZXMgPiA6cGYgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9u ZXdfdmlzaWJsZV9wYWdlcyA+IDpwdiBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMgPiA6cHZmIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9w YWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA+IDpoYWZwIEFTIHJldl9hbGxfZnJvemVuX3Bh Z2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA+IDpoYXZwIEFTIHJldl9hbGxfdmlzaWJsZV9w YWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBX SEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19z dGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CitT RUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMg QVMgcHYsIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBBUyBwdmYsIHJldl9hbGxfZnJv emVuX3BhZ2VzIEFTIGhhZnAscmV2X2FsbF92aXNpYmxlX3BhZ2VzIEFTIGhhdnAKK0ZST00g cGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3Rh dF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1f dGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxnc2V0CisKK1ZBQ1VV TSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCistLSB2 YWN1dW0gZnJlZXplZCBwYWdlcworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPSA6cGYg QVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA9IDpwdiBBUyB2 bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSA6cHZm IEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywgcmV2X2FsbF9mcm96ZW5fcGFnZXMg PSA6aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMg PSA6aGF2cCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVz LnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0g cGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworCitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURF OwotLSAKMi4zNC4xCgo= --------------Tg2A7YPgkbXUDy0UqOjXI9mZ Content-Type: text/x-patch; charset=UTF-8; name="v15-0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v15-0002-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBmZTZiMWNjNjAwZjk5NDVhMmFhZWFiZTExMTIzZWQ5MDBhYzYwNzdkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNiBEZWMgMjAyNCAxMjowNjoxNyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMi80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBpbmRleCByZWxhdGlvbnMuCgpUaGV5IGFyZSBnYXRoZXJl ZCBzZXBhcmF0ZWxseSBmcm9tIHRhYmxlIHN0YXRpc3RpY3MuCgpBcyBmb3IgdGFibGVzLCB3 ZSBnYXRoZXIgdmFjdXVtIHNoYXJlZCBidWZmZXJzIHN0YXRpc3RpY3MgZm9yIGluZGV4IHJl bGF0aW9ucyBsaWtlCnZhbHVlIG9mIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQs IHRvdGFsX2Jsa3NfZGlydGllZCwgd2FsIHN0YXRpc3RpY3MsIGlvIHRpbWUKZHVyaW5nIGZs dXNoaW5nIGJ1ZmZlciBwYWdlcyB0byBkaXNrLCBkZWxheSBhbmQgdG90YWwgdGltZS4KCkR1 ZSB0byB0aGUgZmFjdCB0YWh0IHN1Y2ggc3RhdGlzdGljcyBhcmUgY29tbW9uIGFzIGZvciB0 YWJsZXMsIGFzIGZvciBpbmRleGVzIHdlCnNldCB0aGVtIGluIHRoZSB1bmlvbiBFeHRWYWNS ZXBvcnQgc3RydWN0dXJlLiBXZSBvbmx5IGFkZGVkIHNvbWUgZGV0ZXJtaW5hdGlvbiAndHlw ZScKZmllbGQgdG8gaGlnaGxpZ2h0IHdoYXQga2luZCBiZWxvbmcgdG8gdGhlc2Ugc3RhdGlz dGljczogUEdTVEFUX0VYVFZBQ19UQUJMRSBvcgpQR1NUQVRfRVhUVkFDX0lOREVYLiBHZW5l cmFsbHksIFBHU1RBVF9FWFRWQUNfSU5WQUxJRCB0eXBlIGxlYWRzIHRvIHdyb25nIGNvZGUg cHJvY2Vzcy4KClNvbWUgc3RhdGlzdGljcyBiZWxvbmcgb25seSBvbmUgdHlwZSBvZiBib3Ro IHRhYmxlcyBvciBpbmRleGVzLiBTbywgd2UgYWRkZWQgc3Vic3RydWN0dXJlcwp0YWJsZSBh bmQgaW5kZXggaW5zaWRlIEV4dFZhY1JlcG9ydCBzdHJ1Y3R1cmUuCgpUaGVyZWZvcmUsIHdl IGdhdGhlciBvbmx5IGZvciB0YWJsZXMgc3VjaCBzdGF0aXN0aWNzIGxpa2UgbnVtYmVyIG9m IHNjYW5uZWQsIHJlbW92ZWQgcGFnZXMsCnRoZWlyIGNoYXJlY3RlcmlzdGljcyBhY2NvcmRp bmcgVk0gKGFsbC12aXNpYmxlIGFuZCBmcm96ZW4pLiBJbiBhZGRpdGlvbiwgZm9yIHRhYmxl cyB3ZQpnYXRoZXIgbnVtYmVyIGZyb3plbiwgZGVsZXRlZCBhbmQgcmVjZW50bHkgZGVhZCB0 dXBsZXMgYW5kIGhvdyBtYW55IHRpbWVzIHZhY3V1bSBwcm9jZXNzZWQKaW5kZXhlcyBmb3Ig dGFibGVzLgoKQ29udHJvdmVyc2FsbHkgZm9yIGluZGV4ZXMgd2UgZ2F0aGVyIG51bWJlciBv ZiBkZWxldGVkIHBhZ2VzIGFuZCBkZWxldGVkIHR1cGxlcyBvbmx5LgoKQXMgZm9yIHRhYmxl cywgZGVsZXRlZCBwYWdlcyBhbmQgZGVsZXRlZCB0dXBsZXMgcmVmbGVjdCB0aGUgb3ZlcmFs bCBwZXJmb3JtYW5jZSBvZiB0aGUgdmFjdXVtCmZvciB0aGUgaW5kZXggcmVsYXRpb25zaGlw CgpTaW5jZSB2YWN1dW0gY2xlYXJzIHR1cGxlIGluZGV4IHJlZmVyZW5jZXMgYmVmb3JlIGNs ZWFyaW5nIHRhYmxlIHR1cGxlcywgd2UgbmVlZCB0byBzdWJ0cmFjdApudW1iZXIgb2YgY29s bGVjdGVkIGluZGV4IHZhY3V1bSBzdGF0aXN0aWNzIGZvciBnZW5lcmFsIHN0YXRpc3RpY3Mg dGFrZW4gaW50byBhY2NvdW50CmZvciB0aGUgdGFibGUgYW5kIGZvciB0aGUgaW5kZXgsIGVz cGVjaWFsbHkgZm9yCnNoYXJlZCBidWZmZXJzOiB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Js a3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbjsKd2FsIHN0 YXRpc3RpY3M6IHdhbF9ieXRlcywgd2FsX2ZwaSwgd2FsX3JlY29yZHM7IElPIHRpbWU6IGJs a19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lOwp0b3RhbCB0aW1lIGFuZCBkZWxheSB0aW1l LiBUaGlzIGlzIG5lY2Vzc2FyeSB0byB0YWtlIGludG8gYWNjb3VudCB2YWN1dW0gc3RhdGlz dGljcyBmb3IgdGFibGVzCmFuZCBpbmRleGVzIHNlcGFyYXRlbHkuCgpEdWUgdG8gdGhlIGZh Y3QgdGhhdCB0aGUgdmFjdXVtIGNhbiBwcm9kdWNlIHdvcmtlcnMgdG8gcHJvY2VzcyBpbmRl eGVzIG9mIHRoZSB0YWJsZSBhbmQKd29ya2VycyBzdG9yZSB0aGVpciB3YWwgYW5kIGJ1ZmZl ciBzdGF0aXN0aWMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIHRoZSBwbGFjZSB0aGF0 CmxlYWRlciBkb2VzIHdlIG5lZWQgdG8gc3RvcmUgYW4gaW5mb3JtYXRpb24gYWJvdXQgUGFy YWxsZWxXb3JrZXJOdW1iZXIgdGhhdCdzIHdoeSB3ZQphZGRlZCB0aGUgdmFyaWFibGUgaWRf cGFyYWxsZWxfd29ya2VyIGluIHRoZSBpbmRleCdzIHN0YXRpc3RpYyBzdHJ1Y3R1cmUuIFBW SW5kU3RhdHMKc3RyeXVjdHVyZSBzdG9yZSBzdGF0aXN0aWMgaW5mb3JtYXRpb24gZm9yIGV2 ZXJ5IGluZGV4IHdoZXRoZXIgaXQgd2FzIHByb2Nlc3NlZCBieQpsZWFkZXIgb3Igd29ya2Vy LCBzbyB3ZSBhcmUgc3VyZSB0aGF0IGlkX3BhcmFsbGVsX3dvcmtlciB3aWxsIGJlIHVwZGF0 ZWQgY29ycmVjdGx5LgoKQXV0aG9yczogQWxlbmEgUnliYWtpbmEgPGxlbmEucmliYWNraW5h QHlhbmRleC5ydT4sCiAgIEFuZHJlaSBMZXBpa2hvdiA8YS5sZXBpa2hvdkBwb3N0Z3Jlc3By by5ydT4sCiAgIEFuZHJlaSBadWJrb3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1PgpSZXZp ZXdlZC1ieTogRGlsaXAgS3VtYXIgPGRpbGlwYmFsYXV0QGdtYWlsLmNvbT4sIE1hc2FoaWtv IFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPiwKICAgICAgIElsaWEgRXZkb2tpbW92 IDxpbHlhLmV2ZG9raW1vdkB0YW50b3JsYWJzLmNvbT4sIGppYW4gaGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4sCiAgICAgICBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxA Z21haWwuY29tPiwgQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNvbT4s CiAgICAgICBKaW0gTmFzYnkgPGpuYXNieUB1cGdyYWRlLmNvbT4KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAxNjYgKysrKysrKysrKysr LS0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwg IDMyICsrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAg IHwgIDU5ICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxh dGlvbi5jICB8ICA1MiArKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgICAgICAgICAgIHwgMTMzICsrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAyNiArKysKIHNyYy9pbmNsdWRlL3Bn c3RhdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2MSArKysrLS0KIHNyYy9pbmNs dWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oICAgICAgICAgICB8ICAgMSAtCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgMjIgKysrCiAuLi4v ZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0ICAgICAgfCAxODMgKysrKysr KysrKysrKysrKysrCiAuLi4vZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91 dCAgICAgfCAgNDAgKysrLQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAg ICAgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlz dGljcy5zcWwgICB8IDE1MSArKysrKysrKysrKysrKysKIC4uLi9yZWdyZXNzL3NxbC92YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsICB8ICAxMiArKwogMTcgZmlsZXMgY2hhbmdlZCwg ODY0IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0 CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4 X3N0YXRpc3RpY3Muc3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IDkxOWYwMTAzZTg1Li4xNWQyN2VkMzlkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwpAQCAtMTY2LDYgKzE2Niw3IEBAIHR5cGVkZWYgc3RydWN0IExWUmVs U3RhdGUKIAljaGFyCSAgICpkYm5hbWU7CiAJY2hhcgkgICAqcmVsbmFtZXNwYWNlOwogCU9p ZAkJCXJlbG9pZDsKKwlPaWQJCQlpbmRvaWQ7CiAJY2hhcgkgICAqcmVsbmFtZTsKIAljaGFy CSAgICppbmRuYW1lOwkJLyogQ3VycmVudCBpbmRleCBuYW1lICovCiAJQmxvY2tOdW1iZXIg Ymxrbm87CQkJLyogdXNlZCBvbmx5IGZvciBoZWFwIG9wZXJhdGlvbnMgKi8KQEAgLTI0Miwx OSArMjQzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZTYXZlZEVyckluZm8KIAlWYWNFcnJQaGFz ZSBwaGFzZTsKIH0gTFZTYXZlZEVyckluZm87CiAKLS8qCi0gKiBDb3VudGVycyBhbmQgdXNh Z2UgZGF0YSBmb3IgZXh0ZW5kZWQgc3RhdHMgdHJhY2tpbmcuCi0gKi8KLXR5cGVkZWYgc3Ry dWN0IExWRXh0U3RhdENvdW50ZXJzCi17Ci0JVGltZXN0YW1wVHogc3RhcnR0aW1lOwotCVdh bFVzYWdlCXdhbHVzYWdlOwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwotCWRvdWJsZQkJVmFj dXVtRGVsYXlUaW1lOwotCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19mZXRjaGVkOwotCVBnU3Rh dF9Db3VudGVyIGJsb2Nrc19oaXQ7Ci19IExWRXh0U3RhdENvdW50ZXJzOwotCiAvKiBub24t ZXhwb3J0IGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KIHN0YXRpYyB2b2lkIGxhenlfc2Nhbl9o ZWFwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciAqYmxrbm8sCkBAIC0z NTIsNyArMzQwLDggQEAgZXh0dmFjX3N0YXRzX3N0YXJ0KFJlbGF0aW9uIHJlbCwgTFZFeHRT dGF0Q291bnRlcnMgKmNvdW50ZXJzKQogICovCiBzdGF0aWMgdm9pZAogZXh0dmFjX3N0YXRz X2VuZChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVycywKLQkJCQkg IEV4dFZhY1JlcG9ydCAqcmVwb3J0KQorCQkJCSAgRXh0VmFjUmVwb3J0ICpyZXBvcnQsIEJ1 ZmZlclVzYWdlICp3b3JrZXJfYnVmZmVydXNhZ2UsCisJCQkJICBXYWxVc2FnZSAqd29ya2Vy X3dhbHVzYWdlKQogewogCVdhbFVzYWdlCXdhbHVzYWdlOwogCUJ1ZmZlclVzYWdlCWJ1ZnVz YWdlOwpAQCAtMzY1LDEwICszNTQsMTYgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiBy ZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVycywKIAogCS8qIENhbGN1bGF0ZSBkaWZm cyBvZiBnbG9iYWwgc3RhdCBwYXJhbWV0ZXJzIG9uIFdBTCBhbmQgYnVmZmVyIHVzYWdlLiAq LwogCW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCVdhbFVzYWdl QWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZjb3VudGVycy0+d2FsdXNhZ2Up OworCWlmKHdvcmtlcl93YWx1c2FnZSA9PSBOVUxMKQorCQlXYWxVc2FnZUFjY3VtRGlmZigm d2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmY291bnRlcnMtPndhbHVzYWdlKTsKKwllbHNlCisJ CVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgd29ya2VyX3dhbHVzYWdlLCAmY291bnRl cnMtPndhbHVzYWdlKTsKIAogCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJV c2FnZSkpOwotCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNh Z2UsICZjb3VudGVycy0+YnVmdXNhZ2UpOworCWlmKHdvcmtlcl9idWZmZXJ1c2FnZSA9PSBO VUxMKQorCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdl LCAmY291bnRlcnMtPmJ1ZnVzYWdlKTsKKwllbHNlCisJCUJ1ZmZlclVzYWdlQWNjdW1EaWZm KCZidWZ1c2FnZSwgd29ya2VyX2J1ZmZlcnVzYWdlLCAmY291bnRlcnMtPmJ1ZnVzYWdlKTsK IAogCWVuZHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAJVGltZXN0YW1wRGlmZmVy ZW5jZShjb3VudGVycy0+c3RhcnR0aW1lLCBlbmR0aW1lLCAmc2VjcywgJnVzZWNzKTsKQEAg LTQwOCw2ICs0MDMsNTkgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWwsIExWRXh0 U3RhdENvdW50ZXJzICpjb3VudGVycywKIAkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJs b2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKIH0KIAordm9pZAorZXh0dmFjX3N0 YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3Rh dHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVycywKKwkJCQkJICAg QnVmZmVyVXNhZ2UgKmJ1ZmZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQoreworCWlmKCFw Z3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCWV4dHZhY19z dGF0c19zdGFydChyZWwsICZjb3VudGVycy0+Y29tbW9uKTsKKwljb3VudGVycy0+cGFnZXNf ZGVsZXRlZCA9IGNvdW50ZXJzLT50dXBsZXNfcmVtb3ZlZCA9IDA7CisKKwlpZihidWZmdXNh Z2UgIT0gTlVMTCkKKwkJbWVtc2V0KCYoY291bnRlcnMtPmNvbW1vbi5idWZ1c2FnZSksIDAs IHNpemVvZihCdWZmZXJVc2FnZSkpOworCisJaWYod2FsdXNhZ2UgIT0gTlVMTCkKKwkJbWVt c2V0KCYoY291bnRlcnMtPmNvbW1vbi53YWx1c2FnZSksIDAsIHNpemVvZihXYWxVc2FnZSkp OworCisKKwlpZiAoc3RhdHMgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIFhYWDogV2h5IGRv IHdlIG5lZWQgdGhpcyBjb2RlIGhlcmU/IElmIGl0IGlzIG5lZWRlZCwgSSBmZWVsIGxhY2sg b2YKKwkJICogY29tbWVudHMsIGRlc2NyaWJpbmcgdGhlIHJlYXNvbi4KKwkJICovCisJCWNv dW50ZXJzLT50dXBsZXNfcmVtb3ZlZCA9IHN0YXRzLT50dXBsZXNfcmVtb3ZlZDsKKwkJY291 bnRlcnMtPnBhZ2VzX2RlbGV0ZWQgPSBzdGF0cy0+cGFnZXNfZGVsZXRlZDsKKwl9Cit9CisK K3ZvaWQKK2V4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVs ZXRlUmVzdWx0ICpzdGF0cywKKwkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3VudGVy cywgRXh0VmFjUmVwb3J0ICpyZXBvcnQsCisJCQkJCSBCdWZmZXJVc2FnZSAqYnVmZnVzYWdl LCBXYWxVc2FnZSAqd2FsdXNhZ2UpCit7CisJZXh0dmFjX3N0YXRzX2VuZChyZWwsICZjb3Vu dGVycy0+Y29tbW9uLCByZXBvcnQsCisJCQkJCSBidWZmdXNhZ2UsIHdhbHVzYWdlKTsKKwly ZXBvcnQtPnR5cGUgPSBQR1NUQVRfRVhUVkFDX0lOREVYOworCisJaWYgKHN0YXRzICE9IE5V TEwpCisJeworCQkvKgorCQkgKiBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBvciBhbiB1c2Vy IGRvZXNuJ3Qgd2FudCB0byB0cmFjayBhIGRhdGFiYXNlCisJCSAqIGFjdGl2aXR5IC0ganVz dCBzdXBwcmVzcyBpdC4KKwkJICovCisKKwkJLyogRmlsbCBpbmRleC1zcGVjaWZpYyBleHRl bmRlZCBzdGF0cyBmaWVsZHMgKi8KKwkJcmVwb3J0LT50dXBsZXNfZGVsZXRlZCA9CisJCQkJ CQkJc3RhdHMtPnR1cGxlc19yZW1vdmVkIC0gY291bnRlcnMtPnR1cGxlc19yZW1vdmVkOwor CQlyZXBvcnQtPmluZGV4LnBhZ2VzX2RlbGV0ZWQgPQorCQkJCQkJCXN0YXRzLT5wYWdlc19k ZWxldGVkIC0gY291bnRlcnMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQorCiAvKgogICoJaGVh cF92YWN1dW1fcmVsKCkgLS0gcGVyZm9ybSBWQUNVVU0gZm9yIG9uZSBoZWFwIHJlbGF0aW9u CiAgKgpAQCAtNDQyLDExICs0OTAsNiBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVs LCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAlMVkV4dFN0YXRDb3VudGVycyBleHRWYWNDb3Vu dGVyczsKIAlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OwogCWNoYXIJICAqKmluZG5hbWVz ID0gTlVMTDsKLQlFeHRWYWNSZXBvcnQgYWxsemVybzsKLQotCS8qIEluaXRpYWxpemUgdmFj dXVtIHN0YXRpc3RpY3MgKi8KLQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNS ZXBvcnQpKTsKLQlleHRWYWNSZXBvcnQgPSBhbGx6ZXJvOwogCiAJdmVyYm9zZSA9IChwYXJh bXMtPm9wdGlvbnMgJiBWQUNPUFRfVkVSQk9TRSkgIT0gMDsKIAlpbnN0cnVtZW50ID0gKHZl cmJvc2UgfHwgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJgpAQCAtNzE0LDI1ICs3 NTcsMzYgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpw YXJhbXMsCiAJCQkJCQluZXdfcmVsX2FsbHZpc2libGUsIHZhY3JlbC0+bmluZGV4ZXMgPiAw LAogCQkJCQkJdmFjcmVsLT5OZXdSZWxmcm96ZW5YaWQsIHZhY3JlbC0+TmV3UmVsbWluTXhp ZCwKIAkJCQkJCSZmcm96ZW54aWRfdXBkYXRlZCwgJm1pbm11bHRpX3VwZGF0ZWQsIGZhbHNl KTsKLQotCS8qIE1ha2UgZ2VuZXJpYyBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0ICov Ci0JZXh0dmFjX3N0YXRzX2VuZChyZWwsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9y dCk7CisJZXh0dmFjX3N0YXRzX2VuZChyZWwsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1Jl cG9ydCwgTlVMTCwgTlVMTCk7CiAKIAlpZihwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3MpCiAJewogCQkvKiBGaWxsIGhlYXAtc3BlY2lmaWMgZXh0ZW5kZWQgc3RhdHMgZmllbGRz ICovCi0JCWV4dFZhY1JlcG9ydC5wYWdlc19zY2FubmVkID0gdmFjcmVsLT5zY2FubmVkX3Bh Z2VzOwotCQlleHRWYWNSZXBvcnQucGFnZXNfcmVtb3ZlZCA9IHZhY3JlbC0+cmVtb3ZlZF9w YWdlczsKLQkJZXh0VmFjUmVwb3J0LnZtX25ld19mcm96ZW5fcGFnZXMgPSB2YWNyZWwtPnZt X25ld19mcm96ZW5fcGFnZXM7Ci0JCWV4dFZhY1JlcG9ydC52bV9uZXdfdmlzaWJsZV9wYWdl cyA9IHZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXM7Ci0JCWV4dFZhY1JlcG9ydC52bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlczsKKwkJZXh0VmFjUmVwb3J0LnR5cGUgPSBQR1NUQVRfRVhUVkFDX1RBQkxFOwor CQlleHRWYWNSZXBvcnQudGFibGUucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9w YWdlczsKKwkJZXh0VmFjUmVwb3J0LnRhYmxlLnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwtPnJl bW92ZWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2Vz ID0gdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzOworCQlleHRWYWNSZXBvcnQudGFibGUu dm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzOwor CQlleHRWYWNSZXBvcnQudGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gdmFj cmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CiAJCWV4dFZhY1JlcG9ydC50dXBs ZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7Ci0JCWV4dFZhY1JlcG9ydC50 dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVuOwotCQlleHRWYWNSZXBvcnQu cmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOwot CQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRfZGVh ZF90dXBsZXM7Ci0JCWV4dFZhY1JlcG9ydC5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3JlbC0+ bWlzc2VkX2RlYWRfcGFnZXM7Ci0JCWV4dFZhY1JlcG9ydC5pbmRleF92YWN1dW1fY291bnQg PSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKLQkJZXh0VmFjUmVwb3J0LndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisJ CWV4dFZhY1JlcG9ydC50YWJsZS50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJv emVuOworCQlleHRWYWNSZXBvcnQudGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNy ZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCQlleHRWYWNSZXBvcnQudGFibGUucmVjZW50 bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCQlleHRW YWNSZXBvcnQudGFibGUubWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRfZGVh ZF90dXBsZXM7CisJCWV4dFZhY1JlcG9ydC50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyA9IHZh Y3JlbC0+bWlzc2VkX2RlYWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC50YWJsZS5pbmRleF92 YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKKwkJZXh0VmFjUmVwb3J0 LnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQ7CisKKwl9CisJZWxzZQorCXsKKwkJRXh0VmFjUmVwb3J0IGFsbHpl cm87CisKKwkJLyogSW5pdGlhbGl6ZSB2YWN1dW0gc3RhdGlzdGljcyB3aXRoIDAgdmFsdWVz IHRvIHByZXZlbnQKKwkJICogYWRkaW5nIGdhcmJhZ2UgdmFsdWVzIOKAi+KAi2luIG1lbW9y eQorCQkqLworCQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsK KwkJZXh0VmFjUmVwb3J0ID0gYWxsemVybzsKIAl9CiAKIAkvKgpAQCAtMjUwNyw2ICsyNTYx LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tO dW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCXsKIAkJCUFzc2VydCghVHJhbnNhY3Rp b25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7CiAJCQlmbGFncyB8PSBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU47CisJCQl2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXMr KzsKIAkJfQogCiAJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwpAQCAtMjY3NSw2ICsyNzMw LDEwIEBAIGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVs a0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiB7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlM VlNhdmVkRXJySW5mbyBzYXZlZF9lcnJfaW5mbzsKKwlMVkV4dFN0YXRDb3VudGVyc0lkeCBl eHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCisJZXh0dmFj X3N0YXRzX3N0YXJ0X2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsIE5VTEws IE5VTEwpOwogCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5oZWFwcmVsID0g dmFjcmVsLT5yZWw7CkBAIC0yNjkzLDYgKzI3NTIsNyBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5k ZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCSAq LwogCUFzc2VydCh2YWNyZWwtPmluZG5hbWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRuYW1l ID0gcHN0cmR1cChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNyZWwt PmluZG9pZCA9IFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVtX2Vy cm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9FUlJD Ql9QSEFTRV9WQUNVVU1fSU5ERVgsCiAJCQkJCQkJIEludmFsaWRCbG9ja051bWJlciwgSW52 YWxpZE9mZnNldE51bWJlcik7CkBAIC0yNzAxLDYgKzI3NjEsMTUgQEAgbGF6eV92YWN1dW1f b25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3Rh dCwKIAlpc3RhdCA9IHZhY19idWxrZGVsX29uZV9pbmRleCgmaXZpbmZvLCBpc3RhdCwgdmFj cmVsLT5kZWFkX2l0ZW1zLAogCQkJCQkJCQkgIHZhY3JlbC0+ZGVhZF9pdGVtc19pbmZvKTsK IAorCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwl7CisJCS8qIE1ha2Ug ZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8KKwkJZXh0dmFjX3N0 YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVw b3J0LCBOVUxMLCBOVUxMKTsKKwkJcGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRS ZWxpZChpbmRyZWwpLAorCQkJCQkJCQlpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJ CQkJCQkJCTAsIDAsICZleHRWYWNSZXBvcnQpOworCX0KKwogCS8qIFJldmVydCB0byB0aGUg cHJldmlvdXMgcGhhc2UgaW5mb3JtYXRpb24gZm9yIGVycm9yIHRyYWNlYmFjayAqLwogCXJl c3RvcmVfdmFjdXVtX2Vycm9yX2luZm8odmFjcmVsLCAmc2F2ZWRfZXJyX2luZm8pOwogCXBm cmVlKHZhY3JlbC0+aW5kbmFtZSk7CkBAIC0yNzI1LDYgKzI3OTQsMTAgQEAgbGF6eV9jbGVh bnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq aXN0YXQsCiB7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlMVlNhdmVkRXJySW5mbyBz YXZlZF9lcnJfaW5mbzsKKwlMVkV4dFN0YXRDb3VudGVyc0lkeCBleHRWYWNDb3VudGVyczsK KwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCisJZXh0dmFjX3N0YXRzX3N0YXJ0X2lk eChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsIE5VTEwsIE5VTEwpOwogCiAJaXZp bmZvLmluZGV4ID0gaW5kcmVsOwogCWl2aW5mby5oZWFwcmVsID0gdmFjcmVsLT5yZWw7CkBA IC0yNzQ0LDEyICsyODE3LDIyIEBAIGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24g aW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCSAqLwogCUFzc2VydCh2 YWNyZWwtPmluZG5hbWUgPT0gTlVMTCk7CiAJdmFjcmVsLT5pbmRuYW1lID0gcHN0cmR1cChS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKKwl2YWNyZWwtPmluZG9pZCA9IFJl bGF0aW9uR2V0UmVsaWQoaW5kcmVsKTsKIAl1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8odmFj cmVsLCAmc2F2ZWRfZXJyX2luZm8sCiAJCQkJCQkJIFZBQ1VVTV9FUlJDQl9QSEFTRV9JTkRF WF9DTEVBTlVQLAogCQkJCQkJCSBJbnZhbGlkQmxvY2tOdW1iZXIsIEludmFsaWRPZmZzZXRO dW1iZXIpOwogCiAJaXN0YXQgPSB2YWNfY2xlYW51cF9vbmVfaW5kZXgoJml2aW5mbywgaXN0 YXQpOwogCisJaWYocGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCXsKKwkJLyog TWFrZSBleHRlbmRlZCB2YWN1dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLworCQlleHR2 YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsICZleHRW YWNSZXBvcnQsIE5VTEwsIE5VTEwpOworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlv bkdldFJlbGlkKGluZHJlbCksCisJCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJl ZCwKKwkJCQkJCQkJMCwgMCwgJmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyogUmV2ZXJ0IHRv IHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICov CiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7 CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKQEAgLTMzMjUsNiArMzQwOCw4IEBAIHVwZGF0 ZV9yZWxzdGF0c19hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJUmVsYXRpb24g ICAqaW5kcmVscyA9IHZhY3JlbC0+aW5kcmVsczsKIAlpbnQJCQluaW5kZXhlcyA9IHZhY3Jl bC0+bmluZGV4ZXM7CiAJSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICoqaW5kc3RhdHMgPSB2YWNy ZWwtPmluZHN0YXRzOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOwor CUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CiAKIAlBc3NlcnQodmFjcmVsLT5kb19pbmRl eF9jbGVhbnVwKTsKIApAQCAtMzMzNiw2ICszNDIxLDggQEAgdXBkYXRlX3JlbHN0YXRzX2Fs bF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJaWYgKGlzdGF0ID09IE5VTEwgfHwg aXN0YXQtPmVzdGltYXRlZF9jb3VudCkKIAkJCWNvbnRpbnVlOwogCisJCWV4dHZhY19zdGF0 c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCBOVUxMLCBOVUxM KTsKKwogCQkvKiBVcGRhdGUgaW5kZXggc3RhdGlzdGljcyAqLwogCQl2YWNfdXBkYXRlX3Jl bHN0YXRzKGluZHJlbCwKIAkJCQkJCQlpc3RhdC0+bnVtX3BhZ2VzLApAQCAtMzM0NSw2ICsz NDMyLDE1IEBAIHVwZGF0ZV9yZWxzdGF0c19hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNy ZWwpCiAJCQkJCQkJSW52YWxpZFRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJSW52YWxpZE11bHRp WGFjdElkLAogCQkJCQkJCU5VTEwsIE5VTEwsIGZhbHNlKTsKKworCQlpZihwZ3N0YXRfdHJh Y2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXsKKwkJCWV4dHZhY19zdGF0c19lbmRfaWR4KGlu ZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9ydCwgTlVMTCwgTlVM TCk7CisKKwkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVs KSwKKwkJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCQkwLCAw LCAmZXh0VmFjUmVwb3J0KTsKKwkJfQogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCmluZGV4IDQzYWMyN2VkNWI0Li4wOWU5M2IyMWU4MiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTQzMSwzICsxNDMxLDM1IEBAIEZS T00gcGdfY2xhc3MgcmVsCiAgIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5zLm9pZCA9IHJl bC5yZWxuYW1lc3BhY2UsCiAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhy ZWwub2lkKSBzdGF0cwogV0hFUkUgcmVsLnJlbGtpbmQgPSAncic7CisKK0NSRUFURSBWSUVX IHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgQVMKK1NFTEVDVAorICByZWwub2lkIGFzIHJlbGlk LAorICBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisgIHJlbC5yZWxuYW1lIEFTIHJlbG5h bWUsCisKKyAgdG90YWxfYmxrc19yZWFkIEFTIHRvdGFsX2Jsa3NfcmVhZCwKKyAgdG90YWxf Ymxrc19oaXQgQVMgdG90YWxfYmxrc19oaXQsCisgIHRvdGFsX2Jsa3NfZGlydGllZCBBUyB0 b3RhbF9ibGtzX2RpcnRpZWQsCisgIHRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtz X3dyaXR0ZW4sCisKKyAgcmVsX2Jsa3NfcmVhZCBBUyByZWxfYmxrc19yZWFkLAorICByZWxf Ymxrc19oaXQgQVMgcmVsX2Jsa3NfaGl0LAorCisgIHBhZ2VzX2RlbGV0ZWQgQVMgcGFnZXNf ZGVsZXRlZCwKKyAgdHVwbGVzX2RlbGV0ZWQgQVMgdHVwbGVzX2RlbGV0ZWQsCisKKyAgd2Fs X3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisgIHdhbF9mcGkgQVMgd2FsX2ZwaSwKKyAgd2Fs X2J5dGVzIEFTIHdhbF9ieXRlcywKKworICBibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3Rp bWUsCisgIGJsa193cml0ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgIGRlbGF5X3Rp bWUgQVMgZGVsYXlfdGltZSwKKyAgdG90YWxfdGltZSBBUyB0b3RhbF90aW1lCitGUk9NCisg IHBnX2NsYXNzIHJlbAorICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSByZWwu cmVsbmFtZXNwYWNlLAorICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKHJl bC5vaWQpIHN0YXRzCitXSEVSRSByZWwucmVsa2luZCA9ICdpJzsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1w YXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRl eCA2NzJmOGY0YmZlOC4uYzZlZTBkNjNkMTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtcGFyYWxsZWwuYwpAQCAtMTU0LDYgKzE1NCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBQVklu ZFN0YXRzCiAJICovCiAJYm9vbAkJaXN0YXRfdXBkYXRlZDsJLyogYXJlIHRoZSBzdGF0cyB1 cGRhdGVkPyAqLwogCUluZGV4QnVsa0RlbGV0ZVJlc3VsdCBpc3RhdDsKKworCUxWRXh0U3Rh dENvdW50ZXJzSWR4IGNvdW50ZXJzOworCUV4dFZhY1JlcG9ydCBpZHhfcmVwb3J0OworCWlu dCAJCSBpZF9wYXJhbGxlbF93b3JrZXI7IC8qIGRldGVjdCBpbmRleCB3YXMgcHJvY2Vzc2Vk IGJ5IHBvc3Rtc3RlciBvciB3b3JrZXIgKi8KIH0gUFZJbmRTdGF0czsKIAogLyoKQEAgLTY1 NCw2ICs2NTgsOCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJh bGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCXsKIAkJUFZJbmRT dGF0cyAqaW5kc3RhdHMgPSAmKHB2cy0+aW5kc3RhdHNbaV0pOwogCisJCWluZHN0YXRzLT5p ZF9wYXJhbGxlbF93b3JrZXIgPSAtMjsKKwogCQlBc3NlcnQoaW5kc3RhdHMtPnN0YXR1cyA9 PSBQQVJBTExFTF9JTkRWQUNfU1RBVFVTX0lOSVRJQUwpOwogCQlpbmRzdGF0cy0+c3RhdHVz ID0gbmV3X3N0YXR1czsKIAkJaW5kc3RhdHMtPnBhcmFsbGVsX3dvcmtlcnNfY2FuX3Byb2Nl c3MgPQpAQCAtNjYxLDYgKzY2NywxMiBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxf aW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2Nhbgog CQkJIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxlbF9zYWZlKHB2cy0+aW5kcmVs c1tpXSwKIAkJCQkJCQkJCQkJCQludW1faW5kZXhfc2NhbnMsCiAJCQkJCQkJCQkJCQkJdmFj dXVtKSk7CisKKwkJLyogU2F2YSBidWZmZXIgYW5kIHdhbCBzdGF0aXN0aWNzIGJlZm9yZSB2 YWN1dW1pbmcgdG8gdHJhY2sgdGhlbQorCQkgKiBmb3IgdGhlIGxlYWRlci4KKwkJKi8KKwkJ ZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChwdnMtPmluZHJlbHNbaV0sICYoaW5kc3RhdHMtPmlz dGF0KSwKKwkJCQkJCQkmKGluZHN0YXRzLT5jb3VudGVycyksTlVMTCwgTlVMTCk7CiAJfQog CiAJLyogUmVzZXQgdGhlIHBhcmFsbGVsIGluZGV4IHByb2Nlc3NpbmcgYW5kIHByb2dyZXNz IGNvdW50ZXJzICovCkBAIC03MjcsMTkgKzczOSwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5k ZXhfc2NhbgogCSAqLwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcyhw dnMpOwogCi0JLyoKLQkgKiBOZXh0LCBhY2N1bXVsYXRlIGJ1ZmZlciBhbmQgV0FMIHVzYWdl LiAgKFRoaXMgbXVzdCB3YWl0IGZvciB0aGUgd29ya2VycwotCSAqIHRvIGZpbmlzaCwgb3Ig d2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCi0JICovCiAJaWYgKG53b3JrZXJzID4g MCkKLQl7CiAJCS8qIFdhaXQgZm9yIGFsbCB2YWN1dW0gd29ya2VycyB0byBmaW5pc2ggKi8K IAkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvRmluaXNoKHB2cy0+cGN4dCk7CiAKLQkJZm9y IChpbnQgaSA9IDA7IGkgPCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKyspCi0J CQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sICZwdnMt PndhbF91c2FnZVtpXSk7Ci0JfQotCiAJLyoKIAkgKiBSZXNldCBhbGwgaW5kZXggc3RhdHVz IGJhY2sgdG8gaW5pdGlhbCAod2hpbGUgY2hlY2tpbmcgdGhhdCB3ZSBoYXZlCiAJICogdmFj dXVtZWQgYWxsIGluZGV4ZXMpLgpAQCAtNzUyLDkgKzc1NSw0NCBAQCBwYXJhbGxlbF92YWN1 dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBu dW1faW5kZXhfc2NhbgogCQkJZWxvZyhFUlJPUiwgInBhcmFsbGVsIGluZGV4IHZhY3V1bSBv biBpbmRleCBcIiVzXCIgaXMgbm90IGNvbXBsZXRlZCIsCiAJCQkJIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHB2cy0+aW5kcmVsc1tpXSkpOwogCisJCS8qIElmIGFuIGluZGV4IHdhcyBw cm9jZXNzZWQgYnkgd29ya2VyIHdlIG5lZWQgdG8gZ2F0aGVyIHdhbCBhbmQKKwkJICogYnVm ZmVyIHN0YXRpc3RpY3MgZnJvbSBwdnMtPmJ1ZmZlcl91c2FnZSBhbmQgcHZzLT53YWxfdXNh Z2UsCisJCSAqIG90aGVyd2ljZSBmb3IgbGVhZGVyIHRoZXkgY2FuIGJlIGRldGVjdGVkIHRo cm91Z2ggc3Vic3RyYWN0CisJCSAqIG9mIGdsb2JhbCBzdGF0aXN0aWNzIG9mIHBnV2FsVXNh Z2UgYW5kIHBnQnVmZmVyVXNhZ2UuCisJCSovCisJCWlmKHBnc3RhdF90cmFja192YWN1dW1f c3RhdGlzdGljcykKKwkJeworCQkJLyogV2UgZXhwZWN0IHRoYXQgYWxsIGluZGV4ZXMgaGF2 ZSB1cGRhdGVkIGl0ICovCisJCQlBc3NlcnQoaW5kc3RhdHMtPmlkX3BhcmFsbGVsX3dvcmtl ciAhPSAtMik7CisKKwkJCWlmKGluZHN0YXRzLT5pZF9wYXJhbGxlbF93b3JrZXIgPT0gLTEp CisJCQkJZXh0dmFjX3N0YXRzX2VuZF9pZHgocHZzLT5pbmRyZWxzW2ldLCAmKGluZHN0YXRz LT5pc3RhdCksICYoaW5kc3RhdHMtPmNvdW50ZXJzKSwKKwkJCQkJCQkJCSYoaW5kc3RhdHMt PmlkeF9yZXBvcnQpLCBOVUxMLCBOVUxMKTsKKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBXZSBu ZWVkIHRvIHJlc2V0IEJ1ZmZlciBhbmQgV2FsIHVzYWdlIHN0YXRpc3RpY3MgKi8KKwkJCQlt ZW1zZXQoJihpbmRzdGF0cy0+Y291bnRlcnMuY29tbW9uLmJ1ZnVzYWdlKSwgMCwgc2l6ZW9m KEJ1ZmZlclVzYWdlKSk7CisJCQkJbWVtc2V0KCYoaW5kc3RhdHMtPmNvdW50ZXJzLmNvbW1v bi53YWx1c2FnZSksIDAsIHNpemVvZihXYWxVc2FnZSkpOworCQkJCWV4dHZhY19zdGF0c19l bmRfaWR4KHB2cy0+aW5kcmVsc1tpXSwgJihpbmRzdGF0cy0+aXN0YXQpLCAmKGluZHN0YXRz LT5jb3VudGVycyksCisJCQkJCQkJCQkmKGluZHN0YXRzLT5pZHhfcmVwb3J0KSwgJnB2cy0+ YnVmZmVyX3VzYWdlW2luZHN0YXRzLT5pZF9wYXJhbGxlbF93b3JrZXJdLCAmcHZzLT53YWxf dXNhZ2VbaW5kc3RhdHMtPmlkX3BhcmFsbGVsX3dvcmtlcl0pOworCQkJfQorCisJCQlwZ3N0 YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKHB2cy0+aW5kcmVsc1tpXSksCisJ CQkJCQkJCXB2cy0+aW5kcmVsc1tpXS0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJ MCwgMCwgJihpbmRzdGF0cy0+aWR4X3JlcG9ydCkpOworCQl9CisKIAkJaW5kc3RhdHMtPnN0 YXR1cyA9IFBBUkFMTEVMX0lORFZBQ19TVEFUVVNfSU5JVElBTDsKIAl9CiAKKwkvKgorCSAq IE5leHQsIGFjY3VtdWxhdGUgYnVmZmVyIGFuZCBXQUwgdXNhZ2UuICAoVGhpcyBtdXN0IHdh aXQgZm9yIHRoZSB3b3JrZXJzCisJICogdG8gZmluaXNoLCBvciB3ZSBtaWdodCBnZXQgaW5j b21wbGV0ZSBkYXRhLikKKwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCWZvciAoaW50IGkg PSAwOyBpIDwgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQorCQkJSW5zdHJB Y2N1bVBhcmFsbGVsUXVlcnkoJnB2cy0+YnVmZmVyX3VzYWdlW2ldLCAmcHZzLT53YWxfdXNh Z2VbaV0pOworCiAJLyoKIAkgKiBDYXJyeSB0aGUgc2hhcmVkIGJhbGFuY2UgdmFsdWUgdG8g aGVhcCBzY2FuIGFuZCBkaXNhYmxlIHNoYXJlZCBjb3N0aW5nCiAJICovCkBAIC05MjUsNiAr OTYzLDkgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCQlwZnJlZShpc3RhdF9yZXMpOwog CX0KIAorCS8qIExpa2UgUGFyYWxsZWxXb3JrZXJOdW1iZXIgY2FuIGJlIC0xIGZvciBsZWFk ZXIgYW5kIG1vcmUgMCBmb3Igd29ya2VycyAqLworCWluZHN0YXRzLT5pZF9wYXJhbGxlbF93 b3JrZXIgPSBQYXJhbGxlbFdvcmtlck51bWJlcjsKKwogCS8qCiAJICogVXBkYXRlIHRoZSBz dGF0dXMgdG8gY29tcGxldGVkLiBObyBuZWVkIHRvIGxvY2sgaGVyZSBzaW5jZSBlYWNoIHdv cmtlcgogCSAqIHRvdWNoZXMgZGlmZmVyZW50IGluZGV4ZXMuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdC5jCmluZGV4IGQyMWI5MzAyYzI5Li5kYzgxYmIxMmM4NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTExOTAsNiArMTE5MCwxMCBAQCBw Z3N0YXRfYnVpbGRfc25hcHNob3QoUGdTdGF0X0tpbmQgc3RhdEtpbmQpCiAJCWlmIChwLT5k cm9wcGVkKQogCQkJY29udGludWU7CiAKKwkJaWYgKHN0YXRLaW5kICE9IFBHU1RBVF9LSU5E X0lOVkFMSUQgJiYgc3RhdEtpbmQgIT0gcC0+a2V5LmtpbmQpCisJCQkvKiBMb2FkIHN0YXQg b2Ygc3BlY2lmaWMgdHlwZSwgaWYgZGVmaW5lZCAqLworCQkJY29udGludWU7CisKIAkJQXNz ZXJ0KHBnX2F0b21pY19yZWFkX3UzMigmcC0+cmVmY291bnQpID4gMCk7CiAKIAkJc3RhdHNf ZGF0YSA9IGRzYV9nZXRfYWRkcmVzcyhwZ1N0YXRMb2NhbC5kc2EsIHAtPmJvZHkpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCA0 NThiZDRlY2U0OS4uZGI2MTJkMjQzY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC00Nyw4ICs0Nyw2IEBAIHN0YXRpYyB2b2lk IGFkZF90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5m bywgaW50IG5lc3RfbGV2CiBzdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVs KFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90 cnVuY2Ryb3BfY291bnRlcnMoUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wg aXNfZHJvcCk7CiBzdGF0aWMgdm9pZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0 YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucyk7Ci1zdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11 bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3Jj LAotCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwog CiAKIC8qCkBAIC05OTEsMTAgKzk4OSwxMyBAQCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVy cyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucykKIAl9CiB9CiAKLXN0YXRpYyB2b2lk Cit2b2lkCiBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpk c3QsIEV4dFZhY1JlcG9ydCAqc3JjLAogCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0 eXBlX3NwZWNpZmljX2luZm8pCiB7CisJaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlz dGljcykKKwkJcmV0dXJuOworCiAJZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3JjLT50b3Rh bF9ibGtzX3JlYWQ7CiAJZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFsX2Jsa3Nf aGl0OwogCWRzdC0+dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxrc19kaXJ0 aWVkOwpAQCAtMTAxMCwyMCArMTAxMSwzNSBAQCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNf c3RhdHMoRXh0VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAogCWlmICghYWNj dW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pCiAJCXJldHVybjsKIAotCWRzdC0+Ymxr c19mZXRjaGVkICs9IHNyYy0+Ymxrc19mZXRjaGVkOwotCWRzdC0+Ymxrc19oaXQgKz0gc3Jj LT5ibGtzX2hpdDsKLQotCWRzdC0+cGFnZXNfc2Nhbm5lZCArPSBzcmMtPnBhZ2VzX3NjYW5u ZWQ7Ci0JZHN0LT5wYWdlc19yZW1vdmVkICs9IHNyYy0+cGFnZXNfcmVtb3ZlZDsKLQlkc3Qt PnZtX25ld19mcm96ZW5fcGFnZXMgKz0gc3JjLT52bV9uZXdfZnJvemVuX3BhZ2VzOwotCWRz dC0+dm1fbmV3X3Zpc2libGVfcGFnZXMgKz0gc3JjLT52bV9uZXdfdmlzaWJsZV9wYWdlczsK LQlkc3QtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyArPSBzcmMtPnZtX25ld192aXNp YmxlX2Zyb3plbl9wYWdlczsKLQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVz X2RlbGV0ZWQ7Ci0JZHN0LT50dXBsZXNfZnJvemVuICs9IHNyYy0+dHVwbGVzX2Zyb3plbjsK LQlkc3QtPnJlY2VudGx5X2RlYWRfdHVwbGVzICs9IHNyYy0+cmVjZW50bHlfZGVhZF90dXBs ZXM7Ci0JZHN0LT5pbmRleF92YWN1dW1fY291bnQgKz0gc3JjLT5pbmRleF92YWN1dW1fY291 bnQ7Ci0JZHN0LT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ICs9IHNyYy0+d3JhcGFyb3Vu ZF9mYWlsc2FmZV9jb3VudDsKLQlkc3QtPm1pc3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+bWlz c2VkX2RlYWRfcGFnZXM7Ci0JZHN0LT5taXNzZWRfZGVhZF90dXBsZXMgKz0gc3JjLT5taXNz ZWRfZGVhZF90dXBsZXM7CisJaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFM SUQpCisJCWRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKKworCUFzc2VydChzcmMtPnR5cGUgPT0g UEdTVEFUX0VYVFZBQ19JTlZBTElEIHx8IHNyYy0+dHlwZSA9PSBkc3QtPnR5cGUpOworCisJ aWYgKGRzdC0+dHlwZSA9PSBzcmMtPnR5cGUpCisJeworCQlkc3QtPmJsa3NfZmV0Y2hlZCAr PSBzcmMtPmJsa3NfZmV0Y2hlZDsKKwkJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0 OwogCisJCWlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19UQUJMRSkKKwkJeworCQkJ ZHN0LT50YWJsZS5wYWdlc19zY2FubmVkICs9IHNyYy0+dGFibGUucGFnZXNfc2Nhbm5lZDsK KwkJCWRzdC0+dGFibGUucGFnZXNfcmVtb3ZlZCArPSBzcmMtPnRhYmxlLnBhZ2VzX3JlbW92 ZWQ7CisJCQlkc3QtPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52 bV9uZXdfZnJvemVuX3BhZ2VzOworCQkJZHN0LT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdl cyArPSBzcmMtPnRhYmxlLnZtX25ld192aXNpYmxlX3BhZ2VzOworCQkJZHN0LT50YWJsZS52 bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXM7CisJCQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVz X2RlbGV0ZWQ7CisJCQlkc3QtPnRhYmxlLnR1cGxlc19mcm96ZW4gKz0gc3JjLT50YWJsZS50 dXBsZXNfZnJvemVuOworCQkJZHN0LT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlcyArPSBz cmMtPnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzOworCQkJZHN0LT50YWJsZS5pbmRleF92 YWN1dW1fY291bnQgKz0gc3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7CisJCQlkc3Qt PnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfcGFn ZXM7CisJCQlkc3QtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLm1p c3NlZF9kZWFkX3R1cGxlczsKKwkJCWRzdC0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9j b3VudCArPSBzcmMtPnRhYmxlLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisJCX0KKwkJ ZWxzZSBpZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5ERVgpCisJCXsKKwkJCWRz dC0+aW5kZXgucGFnZXNfZGVsZXRlZCArPSBzcmMtPmluZGV4LnBhZ2VzX2RlbGV0ZWQ7CisJ CQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7CisJCX0KKwl9 CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdz dGF0ZnVuY3MuYwppbmRleCBmMTgwYWMwZmEwMi4uZDQxNjg3Y2EzOWEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMjg2LDE4ICsyMjg2LDE5IEBAIHBnX3N0 YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCWV4dHZh Y3V1bS0+Ymxrc19oaXQpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPmJsa3NfaGl0KTsKIAotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnBhZ2VzX3NjYW5uZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnBhZ2VzX3JlbW92ZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnZtX25ld19mcm96ZW5fcGFnZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPnZtX25ld192aXNpYmxlX3BhZ2VzKTsKLQl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPm1pc3NlZF9k ZWFkX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 YWJsZS5wYWdlc19zY2FubmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT50YWJsZS5wYWdlc19yZW1vdmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfdmlzaWJsZV9w YWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUu dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlcyk7CiAJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dHVwbGVzX2RlbGV0ZWQpOwotCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnR1cGxlc19mcm96ZW4pOwotCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnJlY2VudGx5X2RlYWRfdHVw bGVzKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5taXNzZWRf ZGVhZF90dXBsZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmluZGV4X3ZhY3V1bV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudHVwbGVzX2Zyb3plbik7CisJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUucmVjZW50bHlfZGVhZF90 dXBsZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxl Lm1pc3NlZF9kZWFkX3R1cGxlcyk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50YWJsZS53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50KTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5pbmRleF92YWN1dW1fY291 bnQpOwogCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX3Jl Y29yZHMpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9m cGkpOwpAQCAtMjMxNiw2ICsyMzE3LDExNiBAQCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVz KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1f VEFCTEVTX1NUQVRTX0NPTFMpOwogCisJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVt ICovCisJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBs ZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOworfQorCisvKgorICogR2V0IHRoZSB2YWN1 dW0gc3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzLgorICovCitEYXR1bQorcGdfc3Rh dF9nZXRfdmFjdXVtX2luZGV4ZXMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwkjZGVmaW5lIFBH X1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTCTE2CisKKwlPaWQJCQkJCQlyZWxp ZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAgICAgKnRhYmVu dHJ5OworCUV4dFZhY1JlcG9ydCAJCQkqZXh0dmFjdXVtOworCVR1cGxlRGVzYwkJCQkgdHVw ZGVzYzsKKwlEYXR1bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fSU5ERVhfU1RB VFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJIG51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9J TkRFWF9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQkJCQkgYnVmWzI1Nl07CisJaW50CQkJ CQkJIGkgPSAwOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5pdGlhbGlzZSBh dHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBkZXNjcmlwdG9yICovCisJdHVw ZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRF WF9TVEFUU19DT0xTKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51 bWJlcikgKytpLCAicmVsaWQiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF8gYmxrc19y ZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19oaXQiLAorCQkJCQkgICBJ TlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0 b3RhbF9ibGtzX3dyaXR0ZW4iLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxfYmxrc19yZWFk IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsX2Jsa3NfaGl0IiwKKwkJCQkJICAgSU5UOE9J RCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAicGFnZXNfZGVsZXRlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInR1cGxlc19kZWxl dGVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX3JlY29yZHMiLAorCQkJCQkgICBJTlQ4 T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJ3YWxfZnBpIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2J5dGVzIiwKKwkJ CQkJICAgTlVNRVJJQ09JRCwgLTEsIDApOworCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtfcmVhZF90aW1lIiwKKwkJCQkJICAgRkxPQVQ4 T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSArK2ksICJibGtfd3JpdGVfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOwor CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJkZWxh eV90aW1lIiwKKwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF90aW1lIiwKKwkJCQkJICAg RkxPQVQ4T0lELCAtMSwgMCk7CisKKwlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1f SU5ERVhfU1RBVFNfQ09MUyk7CisKKwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCXRh YmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOworCisJaWYgKHRh YmVudHJ5ID09IE5VTEwpCisJeworCQkvKiBJZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBm b3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBz aXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4dHZhY3V1bSA9ICZhbGx6ZXJvOworCX0KKwll bHNlCisJeworCQlleHR2YWN1dW0gPSAmKHRhYmVudHJ5LT52YWN1dW1fZXh0KTsKKwl9CisK KwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3Jl YWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Js a3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3Rh bF9ibGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQkJZXh0dmFjdXVtLT5ibGtz X2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19o aXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXgu cGFnZXNfZGVsZXRlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+dHVwbGVzX2RlbGV0ZWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBn X3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0 X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0 RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0o YnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50 MzJHZXREYXR1bSgtMSkpOworCisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2 YWN1dW0tPmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0o ZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXRE YXR1bShleHR2YWN1dW0tPmRlbGF5X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0 RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKworCUFzc2VydChpID09IFBHX1NUQVRf R0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKKwogCS8qIFJldHVybnMgdGhlIHJlY29y ZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKIH0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4 IGYyZDMxZTE3NGI0Li4yYTk2Y2Y1MWEzNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25m aWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKIAl7CiAJCXsidHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3MiLCBQR0NfU1VTRVQsIFNUQVRTX0NVTVVMQVRJVkUsCi0JCQlnZXR0ZXh0X25vb3AoIkNv bGxlY3RzIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0YWJsZSByZWxhdGlvbnMuIiksCisJCQln ZXR0ZXh0X25vb3AoIkNvbGxlY3RzIHZhY3V1bSBzdGF0aXN0aWNzIGZvciByZWxhdGlvbnMu IiksCiAJCQlOVUxMCiAJCX0sCiAJCSZwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3Ms CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBiMGUzNjM3OTRkYy4uMzVkNjY0OWRi MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI0NDcsNCArMTI0NDcsMTMg QEAKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnLCBw cm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9 PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJyB9LAoreyBvaWQgPT4gJzgwMDQnLAorICBkZXNj ciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJuIHN0YXRzIHZhbHVlcycs CisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJywgcHJvcm93cyA9 PiAxMDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJv aXNzdHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBlcyA9 PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxmbG9hdDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVs aWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0 b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVs ZXRlZCx0dXBsZXNfZGVsZXRlZCx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtf cmVhZF90aW1lLGJsa193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZX0nLAorICBw cm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJyB9CiBdCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3ZhY3V1bS5oCmluZGV4IDk0ZDU5OTc2N2RmLi5jNmY1YTlmZmIwMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdmFjdXVtLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2J1Zi5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG9jay5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNhY2hl LmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCiAKIC8qCiAgKiBGbGFncyBmb3IgYW1wYXJhbGxl bHZhY3V1bW9wdGlvbnMgdG8gY29udHJvbCB0aGUgcGFydGljaXBhdGlvbiBvZiBidWxrZGVs ZXRlCkBAIC0yODgsNiArMjg5LDI2IEBAIHR5cGVkZWYgc3RydWN0IFZhY0RlYWRJdGVtc0lu Zm8KIAlpbnQ2NAkJbnVtX2l0ZW1zOwkJLyogY3VycmVudCAjIG9mIGVudHJpZXMgKi8KIH0g VmFjRGVhZEl0ZW1zSW5mbzsKIAorLyoKKyAqIENvdW50ZXJzIGFuZCB1c2FnZSBkYXRhIGZv ciBleHRlbmRlZCBzdGF0cyB0cmFja2luZy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTFZFeHRT dGF0Q291bnRlcnMKK3sKKwlUaW1lc3RhbXBUeiBzdGFydHRpbWU7CisJV2FsVXNhZ2UJd2Fs dXNhZ2U7CisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CisJZG91YmxlCQlWYWN1dW1EZWxheVRp bWU7CisJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50ZXIg YmxvY2tzX2hpdDsKK30gTFZFeHRTdGF0Q291bnRlcnM7CisKK3R5cGVkZWYgc3RydWN0IExW RXh0U3RhdENvdW50ZXJzSWR4Cit7CisJTFZFeHRTdGF0Q291bnRlcnMgY29tbW9uOworCWlu dDY0CQlwYWdlc19kZWxldGVkOworCWludDY0CQl0dXBsZXNfcmVtb3ZlZDsKK30gTFZFeHRT dGF0Q291bnRlcnNJZHg7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJ TVBPUlQgaW50IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZv ciBQb3N0R0lTICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9mcmVlemVfbWlu X2FnZTsKQEAgLTM4Niw0ICs0MDcsOSBAQCBleHRlcm4gZG91YmxlIGFubF9yYW5kb21fZnJh Y3Qodm9pZCk7CiBleHRlcm4gZG91YmxlIGFubF9pbml0X3NlbGVjdGlvbl9zdGF0ZShpbnQg bik7CiBleHRlcm4gZG91YmxlIGFubF9nZXRfbmV4dF9TKGRvdWJsZSB0LCBpbnQgbiwgZG91 YmxlICpzdGF0ZXB0cik7CiAKK2V4dGVybiB2b2lkIGV4dHZhY19zdGF0c19zdGFydF9pZHgo UmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAorCQkJCQkgICBM VkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIEJ1ZmZlclVzYWdlICpidWZmdXNhZ2Us IFdhbFVzYWdlICp3YWx1c2FnZSk7CitleHRlcm4gdm9pZCBleHR2YWNfc3RhdHNfZW5kX2lk eChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSBM VkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMsIEV4dFZhY1JlcG9ydCAqcmVwb3J0LAor CQkJCQkgQnVmZmVyVXNhZ2UgKmJ1ZmZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKICNl bmRpZgkJCQkJCQkvKiBWQUNVVU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdz dGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCA4MTgzNTBhZjhkNC4uYWVmMjg3 YmE4MWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNs dWRlL3Bnc3RhdC5oCkBAIC0xNjcsMTEgKzE2NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0 YXRfQmFja2VuZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09O RkxJQ1RfTlVNX1RZUEVTXTsKIH0gUGdTdGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogVHlw ZSBvZiBFeHRWYWNSZXBvcnQgKi8KK3R5cGVkZWYgZW51bSBFeHRWYWNSZXBvcnRUeXBlCit7 CisJUEdTVEFUX0VYVFZBQ19JTlZBTElEID0gMCwKKwlQR1NUQVRfRVhUVkFDX1RBQkxFID0g MSwKKwlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgorfSBFeHRWYWNSZXBvcnRUeXBlOworCiAv KiAtLS0tLS0tLS0tCiAgKgogICogRXh0VmFjUmVwb3J0CiAgKgotICogQWRkaXRpb25hbCBz dGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSBoZWFwIHJlbGF0aW9uLgor ICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSBy ZWxhdGlvbi4KICAqIHBhZ2VzX3JlbW92ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUg cGh5c2ljYWxseSBzaHJhbmssCiAgKiBpZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRv dGFsIHNpemUgb24gZGlzaykKICAqIHBhZ2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFj ZSB3aXRoaW4gdGhlIGluZGV4IGZpbGUKQEAgLTIwMCwxOCArMjA4LDQ0IEBAIHR5cGVkZWYg c3RydWN0IEV4dFZhY1JlcG9ydAogCWRvdWJsZQkJZGVsYXlfdGltZTsJCS8qIGhvdyBsb25n IHZhY3V1bSBzbGVwdCBpbiB2YWN1dW0gZGVsYXkgcG9pbnQsIGluIG1zZWMgKi8KIAlkb3Vi bGUJCXRvdGFsX3RpbWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlvbiwg aW4gbXNlYyAqLwogCi0JaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkvKiBoZWFwIHBhZ2VzIGV4 YW1pbmVkIChub3Qgc2tpcHBlZCBieSBWTSkgKi8KLQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJ CS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCi0JaW50 NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJv emVuICovCi0JaW50NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQg aW4gVk0gYXMgYWxsLXZpc2libGUgKi8KLQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZyb3pl biAqLwotCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBydW5l ZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICovCi0J aW50NjQJCW1pc3NlZF9kZWFkX3BhZ2VzOwkJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVhZCB0 dXBsZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0dXBsZXMgZGVsZXRlZCBi eSB2YWN1dW0gKi8KLQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96ZW4g dXAgYnkgdmFjdXVtICovCi0JaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBkZWxl dGVkIHR1cGxlcyB0aGF0IGFyZSBzdGlsbCB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rpb24g Ki8KLQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIGluZGV4 IHZhY3V1bWluZ3MgKi8KLQlpbnQ2NAkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyog dGhlIG51bWJlciBvZiB0aW1lcyB0byBwcmV2ZW50IHdvcmthcm91bmQgcHJvYmxlbSAqLwor CisJRXh0VmFjUmVwb3J0VHlwZSB0eXBlOwkJLyogaGVhcCwgaW5kZXgsIGV0Yy4gKi8KKwor CS8qIC0tLS0tLS0tLS0KKwkgKgorCSAqIFRoZXJlIGFyZSBzZXBhcmF0ZSBtZXRyaWNzIG9m IHN0YXRpc3RpYyBmb3IgdGFibGVzIGFuZCBpbmRleGVzLAorCSAqIHdoaWNoIGNvbGxlY3Qg ZHVyaW5nIHZhY3V1bS4KKwkgKiBUaGUgdW5pb24gb3BlcmF0b3IgYWxsb3dzIHRvIGNvbWJp bmUgdGhlc2Ugc3RhdGlzdGljcworCSAqIHNvIHRoYXQgZWFjaCBtZXRyaWMgaXMgYXNzaWdu ZWQgdG8gYSBzcGVjaWZpYyBjbGFzcyBvZiBjb2xsZWN0ZWQgc3RhdGlzdGljcy4KKwkgKiBT dWNoIGEgY29tYmluZWQgc3RydWN0dXJlIHdhcyBjYWxsZWQgcGVyX3R5cGVfc3RhdHMuCisJ ICogVGhlIG5hbWUgb2YgdGhlIHN0cnVjdHVyZSBpdHNlbGYgaXMgbm90IHVzZWQgYW55d2hl cmUsCisJICogaXQgZXhpc3RzIG9ubHkgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvZGUuCisJ ICogLS0tLS0tLS0tLQorCSovCisJdW5pb24KKwl7CisJCXN0cnVjdAorCQl7CisJCQlpbnQ2 NAkJcGFnZXNfc2Nhbm5lZDsJCS8qIGhlYXAgcGFnZXMgZXhhbWluZWQgKG5vdCBza2lwcGVk IGJ5IFZNKSAqLworCQkJaW50NjQJCXBhZ2VzX3JlbW92ZWQ7CQkvKiBoZWFwIHBhZ2VzIHJl bW92ZWQgYnkgdmFjdXVtICJ0cnVuY2F0aW9uIiAqLworCQkJaW50NjQJCXBhZ2VzX2Zyb3pl bjsJCS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KKwkJCWludDY0CQlwYWdl c19hbGxfdmlzaWJsZTsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICov CisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFj dXVtICovCisJCQlpbnQ2NAkJcmVjZW50bHlfZGVhZF90dXBsZXM7CS8qIGRlbGV0ZWQgdHVw bGVzIHRoYXQgYXJlIHN0aWxsIHZpc2libGUgdG8gc29tZSB0cmFuc2FjdGlvbiAqLworCQkJ aW50NjQJCXZtX25ld19mcm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg ZnJvemVuICovCisJCQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfcGFnZXM7CS8qIHBhZ2VzIG1h cmtlZCBpbiBWTSBhcyBhbGwtdmlzaWJsZSAqLworCQkJaW50NjQJCXZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlczsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlIGFu ZCBmcm96ZW4gKi8KKwkJCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMg bm90IHBydW5lZCBieSB2YWN1dW0gZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBs b2NrICovCisJCQlpbnQ2NAkJbWlzc2VkX2RlYWRfcGFnZXM7CQkvKiBwYWdlcyB3aXRoIG1p c3NlZCBkZWFkIHR1cGxlcyAqLworCQkJaW50NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyog bnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3MgKi8KKwkJCWludDY0CQl3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHByZXZlbnQgd29ya2Fy b3VuZCBwcm9ibGVtICovCisJCX0JCQl0YWJsZTsKKwkJc3RydWN0CisJCXsKKwkJCWludDY0 CQlwYWdlc19kZWxldGVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIGRlbGV0ZWQgYnkgdmFjdXVt ICovCisJCX0JCQlpbmRleDsKKwl9IC8qIHBlcl90eXBlX3N0YXRzICovOwogfSBFeHRWYWNS ZXBvcnQ7CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTczNCw3ICs3NjgsOCBAQCBleHRlcm4gUGdT dGF0X0Z1bmN0aW9uQ291bnRzICpmaW5kX2Z1bmNzdGF0X2VudHJ5KE9pZCBmdW5jX2lkKTsK IGV4dGVybiB2b2lkIHBnc3RhdF9jcmVhdGVfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4 dGVybiB2b2lkIHBnc3RhdF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4g dm9pZCBwZ3N0YXRfY29weV9yZWxhdGlvbl9zdGF0cyhSZWxhdGlvbiBkc3QsIFJlbGF0aW9u IHNyYyk7Ci0KK2V4dGVybiB2b2lkIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhF eHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCisJCQkJCQkJICAgYm9vbCBh Y2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbyk7CiBleHRlcm4gdm9pZCBwZ3N0YXRf aW5pdF9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2Fzc29j X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfdW5saW5rX3Jl bGF0aW9uKFJlbGF0aW9uIHJlbCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9w Z3N0YXRfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5o CmluZGV4IDg3NzIxODcyM2RjLi40ZjgzNmU3ZmNhMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdz dGF0X2ludGVybmFsLmgKQEAgLTYwMCw3ICs2MDAsNiBAQCBleHRlcm4gUGdTdGF0X0VudHJ5 UmVmICpwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQZ1N0YXRfS2luZCBraW5kLAogZXh0 ZXJuIHZvaWQgKnBnc3RhdF9mZXRjaF9lbnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJv aWQsIHVpbnQ2NCBvYmppZCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfc25hcHNob3RfZml4ZWQo UGdTdGF0X0tpbmQga2luZCk7CiAKLWV4dGVybiB2b2lkIHBnc3RhdF91cGRhdGVfc25hcHNo b3QoUGdTdGF0X0tpbmQga2luZCk7CiAvKgogICogRnVuY3Rpb25zIGluIHBnc3RhdF9hcmNo aXZlci5jCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggZGQ3 OTVkNThkZmMuLjJiZWNjN2YzODg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dApAQCAtMjI0NSw2ICsyMjQ1LDI4IEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVD VCByZWxpZCwKICAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00gcGdfc3RhdF9h bGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRh bG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFu YW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV9pbmRleGVzfCBT RUxFQ1QgcmVsLm9pZCBBUyByZWxpZCwKKyAgICBucy5uc3BuYW1lIEFTIHNjaGVtYSwKKyAg ICByZWwucmVsbmFtZSwKKyAgICBzdGF0cy50b3RhbF9ibGtzX3JlYWQsCisgICAgc3RhdHMu dG90YWxfYmxrc19oaXQsCisgICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0 YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzdGF0cy5yZWxfYmxrc19yZWFkLAorICAg IHN0YXRzLnJlbF9ibGtzX2hpdCwKKyAgICBzdGF0cy5wYWdlc19kZWxldGVkLAorICAgIHN0 YXRzLnR1cGxlc19kZWxldGVkLAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAgIHN0YXRz LndhbF9mcGksCisgICAgc3RhdHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19yZWFkX3Rp bWUsCisgICAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlfdGltZSwK KyAgICBzdGF0cy50b3RhbF90aW1lCisgICBGUk9NIChwZ19jbGFzcyByZWwKKyAgICAgSk9J TiBwZ19uYW1lc3BhY2UgbnMgT04gKChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSkpLAor ICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMocmVsLm9pZCkgc3RhdHMo cmVsaWQsIHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGly dGllZCwgdG90YWxfYmxrc193cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQs IHBhZ2VzX2RlbGV0ZWQsIHR1cGxlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwg d2FsX2J5dGVzLCBibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwg dG90YWxfdGltZSkKKyAgV0hFUkUgKHJlbC5yZWxraW5kID0gJ2knOjoiY2hhciIpOwogcGdf c3RhdF92YWN1dW1fdGFibGVzfCBTRUxFQ1QgbnMubnNwbmFtZSBBUyBzY2hlbWEsCiAgICAg cmVsLnJlbG5hbWUsCiAgICAgc3RhdHMucmVsaWQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iODQwYTZlZDRmZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX2luZGV4X3N0YXRp c3RpY3Mub3V0CkBAIC0wLDAgKzEsMTgzIEBACistLQorLS0gVGVzdCBjdW11bGF0aXZlIHZh Y3V1bSBzdGF0cyBzeXN0ZW0KKy0tCistLSBDaGVjayB0aGUgd2FsbCBzdGF0aXN0aWNzIGNv bGxlY3RlZCBkdXJpbmcgdmFjdXVtIG9wZXJhdGlvbjoKKy0tIG51bWJlciBvZiBmcm96ZW4g YW5kIHZpc2libGUgcGFnZXMgc2V0IGJ5IHZhY3V1bTsKKy0tIG51bWJlciBvZiBmcm96ZW4g YW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5kLgorLS0gU3RhdGlzdGljIHdh bF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdHMgYmVoYXZp b3IgaXMgdW5zdGFibGUuCistLQorLS0gY29uZGl0aW8gc2luZSBxdWEgbm9uCitTSE9XIHRy YWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KKyB0cmFja19jb3VudHMgCistLS0tLS0tLS0t LS0tLQorIG9uCisoMSByb3cpCisKK1xzZXQgc2FtcGxlX3NpemUgMTAwMDAKKy0tIG5vdCBl bmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0cmFj a19mdW5jdGlvbnMgVE8gJ2FsbCc7CistLSBUZXN0IHRoYXQgdmFjdXVtIHN0YXRpc3RpY3Mg d2lsbCBiZSBlbXB0eSB3aGVuIHBhcmFtZXRlciBpcyBvZmYuCitTRVQgdHJhY2tfdmFjdXVt X3N0YXRpc3RpY3MgVE8gJ29mZic7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJU IElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9z aXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUg eCAlIDIgPSAwOworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4 KSB2ZXN0YXQ7CistLSBNdXN0IGJlIGVtcHR5LgorU0VMRUNUICoKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyB2dAorV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOworIHJlbGlk IHwgc2NoZW1hIHwgcmVsbmFtZSB8IHRvdGFsX2Jsa3NfcmVhZCB8IHRvdGFsX2Jsa3NfaGl0 IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgcmVsX2Jsa3Nf cmVhZCB8IHJlbF9ibGtzX2hpdCB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBsZXNfZGVsZXRlZCB8 IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IGJsa19yZWFkX3RpbWUgfCBi bGtfd3JpdGVfdGltZSB8IGRlbGF5X3RpbWUgfCB0b3RhbF90aW1lIAorLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworUkVTRVQg dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwor U0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KKyB0cmFja192 YWN1dW1fc3RhdGlzdGljcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBvbgorKDEg cm93KQorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBn X3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1xzZXQgc2FtcGxl X3NpemUgMTAwMDAKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZhY3V1 bV9mcmVlemVfdGFibGVfYWdlID0gMDsKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5 ID0gc25hcHNob3Q7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCBwcmltYXJ5IGtleSkg V0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5T RVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBs ZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitTRUxFQ1Qgb2lkIEFTIGlvaWQgZnJv bSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorREVMRVRF IEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFj dXVtIGV4ZWN1dGlvbiBleHRlbmRlZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0 LnJlbG5hbWUscmVscGFnZXMscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZAorRlJPTSBw Z19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1l ID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8 IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVz dGF0X3BrZXkgfCAgICAgICAzMCB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMAor KDEgcm93KQorCitTRUxFQ1QgcmVscGFnZXMgQVMgaXJwCitGUk9NIHBnX2NsYXNzIGMKK1dI RVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CitWQUNVVU0gKFBBUkFMTEVMIDAs IEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0t IGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9J TlQ7CistLSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNz IHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFu IHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1 c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFt ZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkID0gMCBBUyBw YWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJP TSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxu YW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUg ICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisg dmVzdGF0X3BrZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisK K1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlw ZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2 dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0 LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlh YmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9m cGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9 ICd2ZXN0YXRfcGtleScgXGdzZXQKKy0tIExvb2sgaW50byBXQUwgcmVjb3JkcyBkZWx0YXMu CitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRlcyA+IDAgQVMgZGlX QgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0 X3BrZXknOworIGRpd3IgfCBkaXdiIAorLS0tLS0tKy0tLS0tLQorIHQgICAgfCB0CisoMSBy b3cpCisKK0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZF Ul9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlz IG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7Cist LSBwYWdlc19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFtZSxy ZWxwYWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPiAwIEFT IHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0 ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUg dnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgICBy ZWxuYW1lICAgfCByZWxwYWdlcyB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBsZXNfZGVsZXRlZCAK Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLQorIHZlc3RhdF9wa2V5IHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEg cm93KQorCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNfZGVsZXRl ZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2lu ZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXkn IEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50 byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IsIHdhbF9ieXRl cy06aXdiIEFTIGRpd2IsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkKK0ZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorLS0g V0FMIGFkdmFuY2Ugc2hvdWxkIGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyID4gMCBBUyBk aVdSLCA6ZGl3YiA+IDAgQVMgZGlXQjsKKyBkaXdyIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0K KyB0ICAgIHwgdAorKDEgcm93KQorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJp YWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFTIGl3Yix3YWxf ZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0X3BrZXknIFxnc2V0CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2 ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQg dG8gc3RhdCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3Rp Y3MKKy0tIGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQg aXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsK Ky0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNv cmRzLTppd3IgQVMgZGl3cjIsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IyLCB3YWxfZnBpLTpp ZnBpIEFTIGRpZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CistLSBXQUwgYW5kIG90aGVyIHN0YXRpc3RpY3Mg YWR2YW5jZSBzaG91bGQgbm90IGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyMj0wIEFTIGRp V1IsIDpkaWZwaTI9MCBBUyBpRlBJLCA6ZGl3YjI9MCBBUyBkaVdCOworIGRpd3IgfCBpZnBp IHwgZGl3YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAgICB8IHQgICAgfCB0CisoMSBy b3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAwIEFTIHJlbHBhZ2Vz LHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRl ZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRl eGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBB TkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNf ZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAgICAg ICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJl bHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBp dGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUg dnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQK Ky0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNv cmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0 YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQK K0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxM RUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0 OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hF Q0tQT0lOVDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciBy ZW1vdmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMt Oml3ciBBUyBkaXdyMywgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjMsIHdhbF9mcGktOmlmcGkg QVMgZGlmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9 ICd2ZXN0YXRfcGtleScgXGdzZXQKKy0tVGhlcmUgYXJlIG5vdGhpbmcgY2hhbmdlZAorU0VM RUNUIDpkaXdyMz0wIEFTIGRpV1IsIDpkaWZwaTM9MCBBUyBpRlBJLCA6ZGl3YjM9MCBBUyBk aVdCOworIGRpd3IgfCBpZnBpIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAg ICB8IHQgICAgfCB0CisoMSByb3cpCisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5k ZXggaXMgY29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAor LS0gaW4gdmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVu LCBwYWdlc19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVD VCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0 ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBB UyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19j bGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQg PSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1 cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCBmICAgICAgICB8IHQgICAgICAg ICAgICAgfCB0CisoMSByb3cpCisKK0RST1AgVEFCTEUgdmVzdGF0OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mu b3V0CmluZGV4IDBjMDVhODEyZGQxLi4xMTljN2FiZWE1ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91 dApAQCAtMTgxLDE3ICsxODEsMzkgQEAgV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFO RCB2dC5yZWxpZCA9IGMub2lkOwogIHZlc3RhdCAgfCB0ICAgICAgICAgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CiAoMSByb3cp CiAKK0RST1AgVEFCTEUgdmVzdGF0OworU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVz aCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOwor U0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDsKK0NSRUFURSBUQUJMRSB2ZXN0YXQg KHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAx MCk7CiBJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSw6c2FtcGxlX3NpemUpIGFzIHg7CiBBTkFMWVpFIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0 X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCiAtLSBtdXN0IGJlIGVtcHR5 CiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcywgdm1fbmV3X3Zpc2libGVfcGFnZXMsIHJl dl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2Fs bF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0 JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVz LnJlbGlkOwogIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8 IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIHwgdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAg ICAgIDAgfCAgICAgICAgICAgICAgICAgIDkxMCB8ICAgICAgICAgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAgICAgNDU1Cisg ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAg ICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAKICgxIHJvdykKIAogVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNB R0VfTElNSVQgMTI4KSB2ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNo KCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAKKygxIHJvdykKKwogLS0gYmFja2VuZCBkZWZyZWV6ZWQgcGFnZXMKIFNFTEVD VCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25l d192aXNpYmxlX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyxy ZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2Fs bF92aXNpYmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKIEZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92 YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFi bGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOwpAQCAtMjA0LDE2ICsyMjYs MjggQEAgU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgQVMgcGYsIHZtX25ld192aXNpYmxl X3BhZ2VzIEFTIHB2LHZtX25ld192aXNpYmxlX2Zyb3oKIEZST00gcGdfc3RhdF92YWN1dW1f dGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVz LnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0g cGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkIFxnc2V0CiBVUERBVEUgdmVzdGF0IFNFVCB4ID0g eCArIDEwMDE7CiBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgp IHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19zdGF0 X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA+IDpwZiBBUyB2bV9uZXdfZnJv emVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID4gOnB2IEFTIHZtX25ld192aXNpYmxl X3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA+IDpwdmYgQVMgdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzLHJldl9hbGxfZnJvemVuX3BhZ2VzID4gOmhhZnAgQVMgcmV2 X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID4gOmhhdnAgQVMgcmV2 X2FsbF92aXNpYmxlX3BhZ2VzCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3Rh dF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zl c3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3Rh Ymxlcy5yZWxpZDsKICB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfcGFn ZXMgfCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX2Zyb3plbl9wYWdl cyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBmICAgICAgICAg ICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgICB8IGYKKyBmICAgICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IHQKICgxIHJvdykKIAogU0VMRUNUIHZtX25l d19mcm96ZW5fcGFnZXMgQVMgcGYsIHZtX25ld192aXNpYmxlX3BhZ2VzIEFTIHB2LCB2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgQVMgcHZmLCByZXZfYWxsX2Zyb3plbl9wYWdlcyBB UyBoYWZwLHJldl9hbGxfdmlzaWJsZV9wYWdlcyBBUyBoYXZwCiBGUk9NIHBnX3N0YXRfdmFj dXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3Rh Ymxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxp ZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZCBcZ3NldAogVkFDVVVNIChQQVJBTExFTCAw LCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3Jj ZV9uZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogLS0gdmFjdXVtIGZyZWV6ZWQgcGFn ZXMKIFNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5f cGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFn ZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2Fs bF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9h bGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3Rh dCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxl cy5yZWxpZDsKQEAgLTIyMiw0ICsyNTYsNiBAQCBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxu YQogIHQgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IHQgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgIHwgdAogKDEg cm93KQogCitSRVNFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2U7CitSRVNFVCB2YWN1dW1fZnJl ZXplX3RhYmxlX2FnZTsKIERST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBkMTFmNmI3ZWY0Yi4uOTc3YTg3YTViMWYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTQwLDQgKzE0MCw1IEBAIHRl c3Q6IHRhYmxlc3BhY2UKICMgLS0tLS0tLS0tLQogIyBDaGVjayB2YWN1dW0gc3RhdGlzdGlj cwogIyAtLS0tLS0tLS0tCit0ZXN0OiB2YWN1dW1faW5kZXhfc3RhdGlzdGljcwogdGVzdDog dmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3Rp Y3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hZTE0NmUxZDIz ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRl eF9zdGF0aXN0aWNzLnNxbApAQCAtMCwwICsxLDE1MSBAQAorLS0KKy0tIFRlc3QgY3VtdWxh dGl2ZSB2YWN1dW0gc3RhdHMgc3lzdGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlz dGljcyBjb2xsZWN0ZWQgZHVyaW5nIHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2Yg ZnJvemVuIGFuZCB2aXNpYmxlIHBhZ2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2Yg ZnJvemVuIGFuZCB2aXNpYmxlIHBhZ2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRp c3RpYyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRz IGJlaGF2aW9yIGlzIHVuc3RhYmxlLgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgor U0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCisKK1xzZXQgc2FtcGxlX3NpemUg MTAwMDAKKworLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVz dCBpdC4uLgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKKworLS0gVGVzdCB0aGF0 IHZhY3V1bSBzdGF0aXN0aWNzIHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0ZXIgaXMgb2Zm LgorU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvZmYnOworCitDUkVBVEUgVEFC TEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxs ZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CisKK0RF TEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CisKK1ZBQ1VVTSAoUEFSQUxMRUwg MCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCistLSBNdXN0IGJlIGVtcHR5 LgorU0VMRUNUICoKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dAorV0hFUkUgdnQu cmVsbmFtZSA9ICd2ZXN0YXQnOworCitSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsK K0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CisKK1NIT1cgdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3M7ICAtLSBtdXN0IGJlIG9uCisKKy0tIGVuc3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBm bHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisKK1xzZXQgc2Ft cGxlX3NpemUgMTAwMDAKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZh Y3V1bV9mcmVlemVfdGFibGVfYWdlID0gMDsKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3Rl bmN5ID0gc25hcHNob3Q7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCBwcmltYXJ5IGtl eSkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOwor SU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNh bXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CisKK1NFTEVDVCBvaWQgQVMgaW9p ZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisK K0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBCZWZvcmUgdGhlIGZp cnN0IHZhY3V1bSBleGVjdXRpb24gZXh0ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0eS4KK1NF TEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQK K0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQu cmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1Qg cmVscGFnZXMgQVMgaXJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVz dGF0X3BrZXknIFxnc2V0CisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJ TUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5 IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gVGhlIHRh YmxlIGFuZCBpbmRleCBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyBzaG91bGQgc2hvdyB1 cyB0aGF0CistLSB2YWN1dW0gZnJvemVkIHBhZ2VzIGFuZCBjbGVhbiB1cCBwYWdlcywgYnV0 IHBhZ2VzX3JlbW92ZWQgc3RheWVkIHRoZSBzYW1lCistLSBiZWNhdXNlIG9mIG5vdCBmdWxs IHRhYmxlIGhhdmUgY2xlYW5lZCB1cAorU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmly cCA9IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0 dXBsZXNfZGVsZXRlZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1 dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRf cGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdl cyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitG Uk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0t IFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRz IEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRf dmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKwor LS0gTG9vayBpbnRvIFdBTCByZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+ IDAgQVMgZGlXUiwgd2FsX2J5dGVzID4gMCBBUyBkaVdCCitGUk9NIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleSc7CisKK0RFTEVURSBGUk9N IHZlc3RhdDs7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgs IElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVj ayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIHBhZ2VzX3JlbW92ZWQg bXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAw IEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA+IDAgQVMgcGFnZXNfZGVsZXRlZCx0 dXBsZXNfZGVsZXRlZC06aXRkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2dC5yZWxuYW1lLHJl bHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBp dGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUg dnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQK KworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3Jl Y29yZHMtOml3ciBBUyBkaXdyLCB3YWxfYnl0ZXMtOml3YiBBUyBkaXdiLCB3YWxfZnBpLTpp ZnBpIEFTIGRpZnBpCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworLS0gV0FMIGFkdmFuY2Ugc2hvdWxkIGJlIGRl dGVjdGVkLgorU0VMRUNUIDpkaXdyID4gMCBBUyBkaVdSLCA6ZGl3YiA+IDAgQVMgZGlXQjsK KworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3Jl Y29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00gcGdf c3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3Nl dAorCitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIg PSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xsZWN0b3Iu IFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBkZXRlY3Rl ZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5IHRvIGNo ZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFk dmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBBUyBkaXdy Miwgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjIsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkyCitG Uk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtl eScgXGdzZXQKKworLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxk IG5vdCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZGl3cjI9MCBBUyBkaVdSLCA6ZGlmcGkyPTAg QVMgaUZQSSwgOmRpd2IyPTAgQVMgZGlXQjsKKworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFn ZXMtOmlycCA8IDAgQVMgcmVscGFnZXMscGFnZXNfZGVsZXRlZC06aXBkID0gMCBBUyBwYWdl c19kZWxldGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAwIEFTIHR1cGxlc19kZWxldGVkCitG Uk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHZ0 LnJlbG5hbWUscmVscGFnZXMgQVMgaXJwLHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19k ZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFz cyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBj Lm9pZCBcZ3NldAorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NF TEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlm cGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0 X3BrZXknIFxnc2V0CisKK0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsK K1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xF QU5VUCBPTikgdmVzdGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwg c3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8g dmFyaWFibGVzIGFmdGVyIHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUgdGFibGUKK1NF TEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IzLCB3YWxfYnl0ZXMtOml3YiBBUyBkaXdi Mywgd2FsX2ZwaS06aWZwaSBBUyBkaWZwaTMKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhl cyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCistLVRoZXJlIGFyZSBu b3RoaW5nIGNoYW5nZWQKK1NFTEVDVCA6ZGl3cjM9MCBBUyBkaVdSLCA6ZGlmcGkzPTAgQVMg aUZQSSwgOmRpd2IzPTAgQVMgZGlXQjsKKworLS0KKy0tIE5vdywgdGhlIHRhYmxlIGFuZCBp bmRleCBpcyBjb21wcmVzc2VkIGludG8gemVybyBudW1iZXIgb2YgcGFnZXMuIENoZWNrIGl0 CistLSBpbiB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcy4KKy0tIFRoZSBwYWdlc19mcm96 ZW4sIHBhZ2VzX3NjYW5uZWQgdmFsdWVzIHNob3VsZG4ndCBiZSBjaGFuZ2VkCistLQorU0VM RUNUIHZ0LnJlbG5hbWUscmVscGFnZXMtOmlycCA9IDAgQVMgcmVscGFnZXMscGFnZXNfZGVs ZXRlZC06aXBkID0gMCBBUyBwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLTppdGQgPSAw IEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBn X2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxp ZCA9IGMub2lkOworCitEUk9QIFRBQkxFIHZlc3RhdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCmluZGV4IDhhZDY5MTA4 Y2ExLi5kZmQ3YWY3MDAyNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFj dXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92 YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCkBAIC0xNDgsMTQgKzE0OCwyMiBAQCBTRUxF Q1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzLTpmcCA9IDAgQVMgdm1fbmV3X2Zy b3plbl9wYWdlcyx0dXBsZXNfZGVsZQogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQs IHBnX2NsYXNzIGMKIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQg PSBjLm9pZDsKIAorRFJPUCBUQUJMRSB2ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9u ZXh0X2ZsdXNoKCk7CitTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1 dW1fZnJlZXplX3RhYmxlX2FnZSA9IDA7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkg V0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworCiBJ TlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2Ft cGxlX3NpemUpIGFzIHg7CiBBTkFMWVpFIHZlc3RhdDsKK1NFTEVDVCBwZ19zdGF0X2ZvcmNl X25leHRfZmx1c2goKTsKIAogLS0gbXVzdCBiZSBlbXB0eQogU0VMRUNUIHZtX25ld19mcm96 ZW5fcGFnZXMsIHZtX25ld192aXNpYmxlX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyxy ZXZfYWxsX3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzCiBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVt X3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5yZWxpZDsKIAogVkFDVVVNIChQ QVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CitTRUxFQ1QgcGdf c3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiAKIC0tIGJhY2tlbmQgZGVmcmVlemVkIHBhZ2Vz CiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA+IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdl cyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDAgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMgPSAwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2Vz LHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDAgQVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCkBA IC0xNjUsNiArMTczLDcgQEAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRf YWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmEKIAogVVBEQVRF IHZlc3RhdCBTRVQgeCA9IHggKyAxMDAxOwogVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJf VVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CiAKIFNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gOnBmIEFTIHZtX25ld19m cm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPiA6cHYgQVMgdm1fbmV3X3Zpc2li bGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID4gOnB2ZiBBUyB2bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9mcm96ZW5fcGFnZXMgPiA6aGFmcCBBUyBy ZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPiA6aGF2cCBBUyBy ZXZfYWxsX3Zpc2libGVfcGFnZXMKIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19z dGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAn dmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxf dGFibGVzLnJlbGlkOwpAQCAtMTcyLDkgKzE4MSwxMiBAQCBTRUxFQ1Qgdm1fbmV3X2Zyb3pl bl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgcHYsIHZtX25ld192aXNp YmxlX2ZybwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxl cyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBw Z19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQg XGdzZXQKIAogVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2 ZXN0YXQ7CitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiAKIC0tIHZhY3V1 bSBmcmVlemVkIHBhZ2VzCiBTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyA9IDpwZiBBUyB2 bV9uZXdfZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID0gOnB2IEFTIHZtX25l d192aXNpYmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDpwdmYgQVMg dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCByZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDpo YWZwIEFTIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9IDpo YXZwIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVs bmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19z dGF0X2FsbF90YWJsZXMucmVsaWQ7CiAKK1JFU0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZTsK K1JFU0VUIHZhY3V1bV9mcmVlemVfdGFibGVfYWdlOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FT Q0FERTsKLS0gCjIuMzQuMQoK --------------Tg2A7YPgkbXUDy0UqOjXI9mZ Content-Type: text/x-patch; charset=UTF-8; name="v15-0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="v15-0003-Machinery-for-grabbing-an-extended-vacuum-statistic"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBhNTAwMjZjZWZhOGNjMTg5YjA5ZWExYTgxZWIxNDM0Zjk2MjJhN2UwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogRnJpLCAxMCBKYW4gMjAyNSAxMDo1MDowMCArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMy80XSBNYWNoaW5lcnkgZm9yIGdyYWJiaW5nIGFuIGV4dGVuZGVkIHZh Y3V1bSBzdGF0aXN0aWNzIG9uCiBkYXRhYmFzZXMuCgpEYXRhYmFzZSB2YWN1dW0gc3RhdGlz dGljcyBpbmZvcm1hdGlvbiBpcyB0aGUgY29sbGVjdGVkIGdlbmVyYWwKdmFjdXVtIHN0YXRp c3RpY3MgaW5kZXhlcyBhbmQgdGFibGVzIG93bmVkIGJ5IHRoZSBkYXRhYmFzZXMsIHdoaWNo CnRoZXkgYmVsb25nIHRvLgpTbywgYnVmZmVyLCB3YWwsIHN0YXRpc3RpY3Mgb2YgSS9PIHRp bWUgb2YgcmVhZCBhbmQgd3JpdGVuIGJsb2NrcwpzdGF0aXN0aWNzIHdpbGwgYmUgb2JzZXJ2 ZWQgYmVjYXVzZSB0aGV5IGFyZSBjb2xsZWN0ZWQgZm9yIGJvdGgKdGFibGVzLCBpbmRleGVz LiBJbiBhZGRpdGlvbiwgd2Ugc2hvdyB0aGUgbnVtYmVyIG9mIGVycm9ycyBjYXVnaHQKZHVy aW5nIG9wZXJhdGlvbiBvZiB0aGUgdmFjdXVtIG9ubHkgZm9yIHRoZSBlcnJvciBsZXZlbC4K CkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LAog ICBBbmRyZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdyZXNwcm8ucnU+LAogICBBbmRy ZWkgWnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlw IEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2Fk YS5tc2hrQGdtYWlsLmNvbT4sCiAgICAgICBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2lt b3ZAdGFudG9ybGFicy5jb20+LCBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+LAogICAgICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFs ZXhhbmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+LAogICAgICAgSmltIE5h c2J5IDxqbmFzYnlAdXBncmFkZS5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jICAgICAgICAgIHwgMTUgKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAyNiArKysrLQogc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgIHwgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgIHwgNDMgKysrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCA5NSArKysrKysrKysrKysr KysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAg fCAxNSArKy0KIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAg ICB8IDE2ICsrKysKIC4uLnV0ID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mu b3V0fSB8IDY5ICsrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlICAgICAgICAgICAgfCAgMiArLQogLi4ucWwgPT4gdmFjdXVtX3RhYmxlc19hbmRf ZGJfc3RhdGlzdGljcy5zcWx9IHwgNjAgKysrKysrKysrKystCiAxMSBmaWxlcyBjaGFuZ2Vk LCAzMzggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIHJlbmFtZSBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3t2YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0ID0+IHZhY3V1 bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Mub3V0fSAoODQlKQogcmVuYW1lIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3t2YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsID0+IHZhY3V1bV90 YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsfSAoODQlKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYwppbmRleCAxNWQyN2VkMzlkOS4uY2ExNzIxOTc3ZTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTM0NTgsNiArMzQ1OCw5IEBA IHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJc3dpdGNoIChlcnJpbmZvLT5w aGFzZSkKIAl7CiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1NDQU5fSEVBUDoKKwkJCWlm KGdldGVycmVsZXZlbCgpID09IEVSUk9SKQorCQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9l cnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCiAJCQlpZiAo QmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8tPmJsa25vKSkKIAkJCXsKIAkJCQlpZiAoT2Zm c2V0TnVtYmVySXNWYWxpZChlcnJpbmZvLT5vZmZudW0pKQpAQCAtMzQ3Myw2ICszNDc2LDkg QEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWJyZWFrOwogCiAJCWNh c2UgVkFDVVVNX0VSUkNCX1BIQVNFX1ZBQ1VVTV9IRUFQOgorCQkJaWYoZ2V0ZXJyZWxldmVs KCkgPT0gRVJST1IpCisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+ cmVsb2lkLCBQR1NUQVRfRVhUVkFDX1RBQkxFKTsKKwogCQkJaWYgKEJsb2NrTnVtYmVySXNW YWxpZChlcnJpbmZvLT5ibGtubykpCiAJCQl7CiAJCQkJaWYgKE9mZnNldE51bWJlcklzVmFs aWQoZXJyaW5mby0+b2ZmbnVtKSkKQEAgLTM0ODgsMTYgKzM0OTQsMjUgQEAgdmFjdXVtX2Vy cm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VS UkNCX1BIQVNFX1ZBQ1VVTV9JTkRFWDoKKwkJCWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9S KQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPmluZG9pZCwgUEdT VEFUX0VYVFZBQ19JTkRFWCk7CisKIAkJCWVycmNvbnRleHQoIndoaWxlIHZhY3V1bWluZyBp bmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+ aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJ CWJyZWFrOwogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX0lOREVYX0NMRUFOVVA6CisJ CQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1 bV9lcnJvcihlcnJpbmZvLT5pbmRvaWQsIFBHU1RBVF9FWFRWQUNfSU5ERVgpOworCiAJCQll cnJjb250ZXh0KCJ3aGlsZSBjbGVhbmluZyB1cCBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24g XCIlcy4lc1wiIiwKIAkJCQkJICAgZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFt ZXNwYWNlLCBlcnJpbmZvLT5yZWxuYW1lKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVkFDVVVN X0VSUkNCX1BIQVNFX1RSVU5DQVRFOgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1Ip CisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+cmVsb2lkLCBQR1NU QVRfRVhUVkFDX1RBQkxFKTsKKwogCQkJaWYgKEJsb2NrTnVtYmVySXNWYWxpZChlcnJpbmZv LT5ibGtubykpCiAJCQkJZXJyY29udGV4dCgid2hpbGUgdHJ1bmNhdGluZyByZWxhdGlvbiBc IiVzLiVzXCIgdG8gJXUgYmxvY2tzIiwKIAkJCQkJCSAgIGVycmluZm8tPnJlbG5hbWVzcGFj ZSwgZXJyaW5mby0+cmVsbmFtZSwgZXJyaW5mby0+Ymxrbm8pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDA5ZTkzYjIxZTgyLi4yZjljMjI0NTlmYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTQ2Miw0ICsxNDYyLDI4 IEBAIEZST00KICAgcGdfY2xhc3MgcmVsCiAgIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5z Lm9pZCA9IHJlbC5yZWxuYW1lc3BhY2UsCiAgIExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVt X2luZGV4ZXMocmVsLm9pZCkgc3RhdHMKLVdIRVJFIHJlbC5yZWxraW5kID0gJ2knOwpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1dIRVJFIHJlbC5yZWxraW5kID0gJ2knOworCitD UkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZSBBUworU0VMRUNUCisgIGRiLm9p ZCBhcyBkYm9pZCwKKyAgZGIuZGF0bmFtZSBBUyBkYm5hbWUsCisKKyAgc3RhdHMuZGJfYmxr c19yZWFkIEFTIGRiX2Jsa3NfcmVhZCwKKyAgc3RhdHMuZGJfYmxrc19oaXQgQVMgZGJfYmxr c19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtzX2RpcnRp ZWQsCisgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4s CisKKyAgc3RhdHMud2FsX3JlY29yZHMgQVMgd2FsX3JlY29yZHMsCisgIHN0YXRzLndhbF9m cGkgQVMgd2FsX2ZwaSwKKyAgc3RhdHMud2FsX2J5dGVzIEFTIHdhbF9ieXRlcywKKworICBz dGF0cy5ibGtfcmVhZF90aW1lIEFTIGJsa19yZWFkX3RpbWUsCisgIHN0YXRzLmJsa193cml0 ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgIHN0YXRzLmRlbGF5X3RpbWUgQVMgZGVs YXlfdGltZSwKKyAgc3RhdHMudG90YWxfdGltZSBBUyB0b3RhbF90aW1lLAorICBzdGF0cy5l cnJvcnMgQVMgZXJyb3JzCitGUk9NCisgIHBnX2RhdGFiYXNlIGRiLAorICBMQVRFUkFMIHBn X3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShkYi5vaWQpIHN0YXRzOwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2RhdGFiYXNlLmMKaW5kZXggMDVhOGNjZmRiNzUuLmQ1YzFlMmEyY2Y1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwpAQCAtNDQ5LDYg KzQ0OSw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYp OwogCiAJbWVtc2V0KHBlbmRpbmdlbnQsIDAsIHNpemVvZigqcGVuZGluZ2VudCkpOworCW1l bXNldCgmKHBlbmRpbmdlbnQpLT52YWN1dW1fZXh0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0 KSk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggZGI2MTJkMjQzY2QuLjdkOTVhNDQ5NmQ2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24u YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwpA QCAtMjAzLDYgKzIwMywzOCBAQCBwZ3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlvbiByZWwp CiAJfQogfQogCisvKiAtLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9y KCkgLQorICoKKyAqCVRlbGwgdGhlIGNvbGxlY3RvciBhYm91dCBhbiAoYXV0byl2YWN1dW0g aW50ZXJydXB0aW9uLgorICogLS0tLS0tLS0tCisgKi8KK3ZvaWQKK3Bnc3RhdF9yZXBvcnRf dmFjdXVtX2Vycm9yKE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpCit7 CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CisJUGdTdGF0U2hhcmVkX1JlbGF0aW9u ICpzaHRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCU9pZAkJ CWRib2lkID0gIE15RGF0YWJhc2VJZDsKKwlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7 CS8qIHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KKworCWlmICghcGdzdGF0X3RyYWNrX2Nv dW50cykKKwkJcmV0dXJuOworCisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZf bG9ja2VkKFBHU1RBVF9LSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVv aWQsIGZhbHNlKTsKKworCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICop IGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0 YXRzOworCisJdGFiZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKKwlwZ3N0YXRf dW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CisKKwlkYmVudHJ5ID0gcGdzdGF0X3ByZXBfZGF0 YWJhc2VfcGVuZGluZyhkYm9pZCk7CisJZGJlbnRyeS0+dmFjdXVtX2V4dC5lcnJvcnMrKzsK KwlkYmVudHJ5LT52YWN1dW1fZXh0LnR5cGUgPSBtX3R5cGU7Cit9CisKIC8qCiAgKiBSZXBv cnQgdGhhdCB0aGUgdGFibGUgd2FzIGp1c3QgdmFjdXVtZWQgYW5kIGZsdXNoIElPIHN0YXRp c3RpY3MuCiAgKi8KQEAgLTIxNCw2ICsyNDYsNyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShP aWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVm OwogCVBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqc2h0YWJlbnRyeTsKIAlQZ1N0YXRfU3RhdFRh YkVudHJ5ICp0YWJlbnRyeTsKKwlQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKmRiZW50cnk7CiAJ T2lkCQkJZGJvaWQgPSAoc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCk7CiAJ VGltZXN0YW1wVHogdHM7CiAKQEAgLTI2OCw2ICszMDEsMTYgQEAgcGdzdGF0X3JlcG9ydF92 YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAkgKi8KIAlwZ3N0YXRfZmx1c2hf aW8oZmFsc2UpOwogCXBnc3RhdF9mbHVzaF9iYWNrZW5kKGZhbHNlLCBQR1NUQVRfQkFDS0VO RF9GTFVTSF9JTyk7CisKKwlpZiAoZGJvaWQgIT0gSW52YWxpZE9pZCkKKwl7CisJCWVudHJ5 X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9EQVRBQkFT RSwKKwkJCQkJCQkJCQkJZGJvaWQsIEludmFsaWRPaWQsIGZhbHNlKTsKKwkJZGJlbnRyeSA9 IChQZ1N0YXRTaGFyZWRfRGF0YWJhc2UgKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisK KwkJcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzKCZkYmVudHJ5LT5zdGF0cy52YWN1 dW1fZXh0LCBwYXJhbXMsIGZhbHNlKTsKKwkJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9y ZWYpOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5k ZXggZDQxNjg3Y2EzOWEuLjYwYTNiNjcyYWRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdz dGF0ZnVuY3MuYwpAQCAtMjQyNyw2ICsyNDI3LDEwMSBAQCBwZ19zdGF0X2dldF92YWN1dW1f aW5kZXhlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRf VkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOwogCisJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFz IERhdHVtICovCisJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9y bV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOworfQorCitEYXR1bQorcGdfc3Rh dF9nZXRfdmFjdXVtX2RhdGFiYXNlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJI2RlZmluZSBQ R19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUwkxMworCisJT2lkCQkJCQkJ IGRiaWQgPSBQR19HRVRBUkdfT0lEKDApOworCVBnU3RhdF9TdGF0REJFbnRyeSAJCSpkYmVu dHJ5OworCUV4dFZhY1JlcG9ydCAJCQkqZXh0dmFjdXVtOworCVR1cGxlRGVzYwkJCQkgdHVw ZGVzYzsKKwlEYXR1bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0Vf U1RBVFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJIG51bGxzW1BHX1NUQVRfR0VUX1ZBQ1VV TV9EQVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQkJCQkgYnVmWzI1Nl07CisJ aW50CQkJCQkJIGkgPSAwOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5pdGlh bGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBkZXNjcmlwdG9yICov CisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX1ZBQ1VV TV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgKytpLCAiZGJpZCIsCisJCQkJCSAgIElOVDRPSUQsIC0xLCAwKTsK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFs XyBibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2hpdCIsCisJ CQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGlydGllZCIsCisJCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsK KwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9y ZWNvcmRzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2ZwaSIsCisJCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgIndhbF9ieXRlcyIsCisJCQkJCSAgIE5VTUVSSUNPSUQsIC0xLCAwKTsKKworCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3JlYWRf dGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3dyaXRlX3RpbWUiLAorCQkJCQkg ICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAiZGVsYXlfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi dG90YWxfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0lu aXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiZXJyb3JzIiwKKwkJCQkJICAg SU5UNE9JRCwgLTEsIDApOworCisJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0RB VEFCQVNFX1NUQVRTX0NPTFMpOworCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwlk YmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfZGJlbnRyeShkYmlkKTsKKworCWlmIChkYmVu dHJ5ID09IE5VTEwpCisJeworCQkvKiBJZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBmb3Vu ZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KKwkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXpl b2YoRXh0VmFjUmVwb3J0KSk7CisJCWV4dHZhY3V1bSA9ICZhbGx6ZXJvOworCX0KKwllbHNl CisJeworCQlleHR2YWN1dW0gPSAmKGRiZW50cnktPnZhY3V1bV9leHQpOworCX0KKworCWkg PSAwOworCisJdmFsdWVzW2krK10gPSBPYmplY3RJZEdldERhdHVtKGRiaWQpOworCisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19yZWFkKTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2hp dCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxr c19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 b3RhbF9ibGtzX3dyaXR0ZW4pOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPndhbF9mcGkpOworCisJLyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBn X3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0 X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOworCXZhbHVlc1tpKytdID0gRGlyZWN0 RnVuY3Rpb25DYWxsMyhudW1lcmljX2luLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0o YnVmKSwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKKwkJCQkJCQkJCSAgSW50 MzJHZXREYXR1bSgtMSkpOworCisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2 YWN1dW0tPmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0o ZXh0dmFjdXVtLT5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXRE YXR1bShleHR2YWN1dW0tPmRlbGF5X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0 RGF0dW0oZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdl dERhdHVtKGV4dHZhY3V1bS0+ZXJyb3JzKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VU X1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKKwogCS8qIFJldHVybnMgdGhlIHJlY29y ZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKIH0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzNWQ2NjQ5 ZGIzMS4uYTk3ZTNiN2E1MWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI0 MzAsNyArMTI0MzAsNyBAQAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHkn IH0sCiAKIHsgb2lkID0+ICc4MDAxJywKLSAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1 bV90YWJsZXMgcmV0dXJuIHN0YXRzIHZhbHVlcycsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dl dF92YWN1dW1fdGFibGVzIHJldHVybnMgdmFjdXVtIHN0YXRzIHZhbHVlcyBmb3IgdGFibGUn LAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzJywgcHJvcm93cyA9 PiAxMDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJv aXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLAogICBwcm9hcmd0eXBlcyA9 PiAnb2lkJywKQEAgLTEyNDQ4LDEyICsxMjQ0OCwyMSBAQAogICBwcm9wYXJhbGxlbCA9PiAn cicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJv c3JjID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKIHsgb2lkID0+ ICc4MDA0JywKLSAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzIHJldHVy biBzdGF0cyB2YWx1ZXMnLAorICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4 ZXMgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciBpbmRleCcsCiAgIHByb25hbWUg PT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJywgcHJvcm93cyA9PiAxMDAwLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNzdHJpY3QgPT4g J2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLAogICBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAg cHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsbnVtZXJpYyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxm bG9hdDh9JywKICAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG99JywKICAgcHJvYXJnbmFtZXMgPT4gJ3tyZWxvaWQscmVsaWQsdG90YWxfYmxr c19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3NfZGlydGllZCx0b3RhbF9ibGtzX3dy aXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQscGFnZXNfZGVsZXRlZCx0dXBsZXNf ZGVsZXRlZCx3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJs a193cml0ZV90aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZX0nLAotICBwcm9zcmMgPT4gJ3Bn X3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzJyB9CisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRf dmFjdXVtX2luZGV4ZXMnIH0sCit7IG9pZCA9PiAnODAwNScsCisgIGRlc2NyID0+ICdwZ19z dGF0X2dldF92YWN1dW1fZGF0YWJhc2UgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZv ciBkYXRhYmFzZScsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFz ZScsIHByb3Jvd3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywKKyAg cHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxv YXQ4LGZsb2F0OCxpbnQ0fScsCisgIHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7ZGJpZCxkYm9pZCxkYl9ibGtz X3JlYWQsZGJfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRl bix3YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0 ZV90aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZSxlcnJvcnN9JywKKyAgcHJvc3JjID0+ICdw Z19zdGF0X2dldF92YWN1dW1fZGF0YWJhc2UnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGFlZjI4N2JhODFj Li41NDE4ZWNlNTNiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIv c3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTIxMCw2ICsyMTAsOCBAQCB0eXBlZGVmIHN0cnVj dCBFeHRWYWNSZXBvcnQKIAogCWludDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBk ZWxldGVkIGJ5IHZhY3V1bSAqLwogCisJaW50MzIJCQllcnJvcnM7CisKIAlFeHRWYWNSZXBv cnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLwogCiAJLyogLS0tLS0tLS0t LQpAQCAtNzgwLDYgKzc4Miw3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVt KE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0 X2FuYWx5emUoUmVsYXRpb24gcmVsLAogCQkJCQkJCQkgIFBnU3RhdF9Db3VudGVyIGxpdmV0 dXBsZXMsIFBnU3RhdF9Db3VudGVyIGRlYWR0dXBsZXMsCiAJCQkJCQkJCSAgYm9vbCByZXNl dGNvdW50ZXIpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoT2lk IHRhYmxlb2lkLCBFeHRWYWNSZXBvcnRUeXBlIG1fdHlwZSk7CiAKIC8qCiAgKiBJZiBzdGF0 cyBhcmUgZW5hYmxlZCwgYnV0IHBlbmRpbmcgZGF0YSBoYXNuJ3QgYmVlbiBwcmVwYXJlZCB5 ZXQsIGNhbGwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMmJlY2M3 ZjM4ODUuLjlkODRmYmEzNzhjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dApAQCAtMjI0NSw2ICsyMjQ1LDIyIEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCBy ZWxpZCwKICAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00gcGdfc3RhdF9hbGxf dGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9n Jzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1l ICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZXwgU0VM RUNUIGRiLm9pZCBBUyBkYm9pZCwKKyAgICBkYi5kYXRuYW1lIEFTIGRibmFtZSwKKyAgICBz dGF0cy5kYl9ibGtzX3JlYWQsCisgICAgc3RhdHMuZGJfYmxrc19oaXQsCisgICAgc3RhdHMu dG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAg ICBzdGF0cy53YWxfcmVjb3JkcywKKyAgICBzdGF0cy53YWxfZnBpLAorICAgIHN0YXRzLndh bF9ieXRlcywKKyAgICBzdGF0cy5ibGtfcmVhZF90aW1lLAorICAgIHN0YXRzLmJsa193cml0 ZV90aW1lLAorICAgIHN0YXRzLmRlbGF5X3RpbWUsCisgICAgc3RhdHMudG90YWxfdGltZSwK KyAgICBzdGF0cy5lcnJvcnMKKyAgIEZST00gcGdfZGF0YWJhc2UgZGIsCisgICAgTEFURVJB TCBwZ19zdGF0X2dldF92YWN1dW1fZGF0YWJhc2UoZGIub2lkKSBzdGF0cyhkYm9pZCwgZGJf Ymxrc19yZWFkLCBkYl9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtz X3dyaXR0ZW4sIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3Rp bWUsIGJsa193cml0ZV90aW1lLCBkZWxheV90aW1lLCB0b3RhbF90aW1lLCBlcnJvcnMpOwog cGdfc3RhdF92YWN1dW1faW5kZXhlc3wgU0VMRUNUIHJlbC5vaWQgQVMgcmVsaWQsCiAgICAg bnMubnNwbmFtZSBBUyBzY2hlbWEsCiAgICAgcmVsLnJlbG5hbWUsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRp c3RpY3Mub3V0CnNpbWlsYXJpdHkgaW5kZXggODQlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dApyZW5hbWUgdG8g c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0 aWNzLm91dAppbmRleCAxMTljN2FiZWE1Zi4uNWVmZTg5OThhYmUgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0 YXRpc3RpY3Mub3V0CkBAIC02LDcgKzYsNiBAQAogLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQg dmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCiAtLSBTdGF0aXN0aWMgd2FsX2Zw aSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBp cyB1bnN0YWJsZS4KIC0tCi0tLSBjb25kaXRpbyBzaW5lIHF1YSBub24KIFNIT1cgdHJhY2tf Y291bnRzOyAgLS0gbXVzdCBiZSBvbgogIHRyYWNrX2NvdW50cyAKIC0tLS0tLS0tLS0tLS0t CkBAIC00Myw2ICs0MiwxMSBAQCBTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAgLS0g bXVzdCBiZSBvbgogIG9uCiAoMSByb3cpCiAKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9u X3N0YXRpc3RpY192YWN1dW1fZGI7CitDUkVBVEUgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0 aXN0aWNfdmFjdXVtX2RiMTsKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsK Ky0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4K K1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CiAtLSBlbnN1cmUgcGVuZGluZyBzdGF0 cyBhcmUgZmx1c2hlZAogU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogIHBn X3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKQEAgLTI1OSwzICsyNjMsNjYgQEAgRlJPTSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMucmVsbmEKIFJFU0VUIHZhY3V1bV9mcmVlemVfbWluX2FnZTsKIFJFU0VU IHZhY3V1bV9mcmVlemVfdGFibGVfYWdlOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsK Ky0tIE5vdyBjaGVjayB2YWN1dW0gc3RhdGlzdGljcyBmb3IgY3VycmVudCBkYXRhYmFzZQor U0VMRUNUIGRibmFtZSwKKyAgICAgICBkYl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQs CisgICAgICAgdG90YWxfYmxrc19kaXJ0aWVkID4gMCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQs CisgICAgICAgdG90YWxfYmxrc193cml0dGVuID4gMCBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4s CisgICAgICAgd2FsX3JlY29yZHMgPiAwIEFTIHdhbF9yZWNvcmRzLAorICAgICAgIHdhbF9m cGkgPiAwIEFTIHdhbF9mcGksCisgICAgICAgd2FsX2J5dGVzID4gMCBBUyB3YWxfYnl0ZXMs CisgICAgICAgdG90YWxfdGltZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92 YWN1dW1fZGF0YWJhc2UKK1dIRVJFIGRibmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKTsKKyAg ICAgICAgICAgICBkYm5hbWUgICAgICAgICAgICAgfCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Js a3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRlbiB8IHdhbF9yZWNvcmRzIHwgd2FsX2Zw aSB8IHdhbF9ieXRlcyB8IHRvdGFsX3RpbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYiB8IHQgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgdAorKDEgcm93KQorCitSRVNFVCB0cmFja192YWN1 dW1fc3RhdGlzdGljczsKKy0tIGVuc3VyZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitT RUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0 X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9m ZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0 OworVVBEQVRFIHZlc3RhdCBTRVQgeCA9IDEwMDAxOworVkFDVVVNIChQQVJBTExFTCAwLCBC VUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CitcYyByZWdyZXNzaW9uX3N0YXRpc3Rp Y192YWN1dW1fZGIxOworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwb3N0 Z3JlcyBkYXRhYmFzZSBmcm9tIGFub3RoZXIgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisg ICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Js a3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Js a3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNv cmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBp LAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3Rp bWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitX SEVSRSBkYm5hbWUgPSAncmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiJzsKKyAgICAg ICAgICAgICBkYm5hbWUgICAgICAgICAgICAgfCBkYl9ibGtzX2hpdCB8IHRvdGFsX2Jsa3Nf ZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRlbiB8IHdhbF9yZWNvcmRzIHwgd2FsX2ZwaSB8 IHdhbF9ieXRlcyB8IHRvdGFsX3RpbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYiB8IHQgICAgICAgICAgIHwgdCAg ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgdAorKDEgcm93KQorCitcYyByZWdyZXNzaW9uX3N0YXRp c3RpY192YWN1dW1fZGIKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CitcYyByZWdyZXNz aW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2Rh dGFiYXNlIGQKK0NST1NTIEpPSU4gcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcygwKQorV0hF UkUgb2lkID0gMDsgLS0gbXVzdCBiZSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworXGMgcG9zdGdyZXMKK0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0 aWNfdmFjdXVtX2RiMTsKK0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFj dXVtX2RiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOTc3YTg3YTVi MWYuLjE5Yzc2Yjk2ODMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAg LTE0MSw0ICsxNDEsNCBAQCB0ZXN0OiB0YWJsZXNwYWNlCiAjIENoZWNrIHZhY3V1bSBzdGF0 aXN0aWNzCiAjIC0tLS0tLS0tLS0KIHRlc3Q6IHZhY3V1bV9pbmRleF9zdGF0aXN0aWNzCi10 ZXN0OiB2YWN1dW1fdGFibGVzX3N0YXRpc3RpY3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCit0ZXN0OiB2YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFj dXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1 bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCnNpbWlsYXJpdHkgaW5kZXggODQlCnJl bmFtZSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGlj cy5zcWwKcmVuYW1lIHRvIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfYW5k X2RiX3N0YXRpc3RpY3Muc3FsCmluZGV4IGRmZDdhZjcwMDI3Li5kMGU0YTIwMTRjNiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19zdGF0aXN0aWNz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX2FuZF9kYl9z dGF0aXN0aWNzLnNxbApAQCAtNyw3ICs3LDYgQEAKIC0tIFN0YXRpc3RpYyB3YWxfZnBpIGlz IG5vdCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVu c3RhYmxlLgogLS0KIAotLS0gY29uZGl0aW8gc2luZSBxdWEgbm9uCiBTSE9XIHRyYWNrX2Nv dW50czsgIC0tIG11c3QgYmUgb24KIFxzZXQgc2FtcGxlX3NpemUgMTAwMDAKIApAQCAtMzgs NiArMzcsMTMgQEAgRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKIAogU0hPVyB0cmFja192 YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KIAorQ1JFQVRFIERBVEFCQVNFIHJl Z3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNz aW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFj dXVtX2RiOworCistLSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0 ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworCiAtLSBlbnN1cmUg cGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAogU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCgpOwogCkBAIC0xOTAsMyArMTk2LDU1IEBAIEZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJl bG5hCiBSRVNFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2U7CiBSRVNFVCB2YWN1dW1fZnJlZXpl X3RhYmxlX2FnZTsKIERST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CistLSBOb3cgY2hlY2sg dmFjdXVtIHN0YXRpc3RpY3MgZm9yIGN1cnJlbnQgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUs CisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFs X2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFs X2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9y ZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxf ZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFs X3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNl CitXSEVSRSBkYm5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCk7CisKK1JFU0VUIHRyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzOworCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hl ZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitDUkVBVEUgVEFCTEUg dmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFj dG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitVUERBVEUg dmVzdGF0IFNFVCB4ID0gMTAwMDE7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FH RV9MSU1JVCAxMjgpIHZlc3RhdDsKKworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVt X2RiMTsKKworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBwb3N0Z3JlcyBk YXRhYmFzZSBmcm9tIGFub3RoZXIgZGF0YWJhc2UKK1NFTEVDVCBkYm5hbWUsCisgICAgICAg ZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRvdGFsX2Jsa3NfZGly dGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRvdGFsX2Jsa3Nfd3Jp dHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdhbF9yZWNvcmRzID4g MCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3YWxfZnBpLAorICAg ICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRvdGFsX3RpbWUgPiAw IEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlCitXSEVSRSBk Ym5hbWUgPSAncmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiJzsKKworXGMgcmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiCisKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7 CisKK1xjIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjE7CitTRUxFQ1QgY291bnQo KikKK0ZST00gcGdfZGF0YWJhc2UgZAorQ1JPU1MgSk9JTiBwZ19zdGF0X2dldF92YWN1dW1f dGFibGVzKDApCitXSEVSRSBvaWQgPSAwOyAtLSBtdXN0IGJlIDAKKworXGMgcG9zdGdyZXMK K0RST1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1Ag REFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOwotLSAKMi4zNC4xCgo= --------------Tg2A7YPgkbXUDy0UqOjXI9mZ Content-Type: text/x-patch; charset=UTF-8; name="v15-0004-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v15-0004-Add-documentation-about-the-system-views-that-are-u"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBiMzU5ZGY0Y2Q4OTI4YWE0NTVhYzk0NTU0ODlmNzlmMjE5NjNlOTk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDc0NiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3NDYgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCBhNTg2MTU2NjE0ZC4uNzNi OWUwYWU0NWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTUwNjYsNCArNTA2Niw3 NTAgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRf dmFjdXVtX2RhdGFiYXNlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxwcmltYXJ5PnBnX3N0 YXRfdmFjdXVtX2RhdGFiYXNlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9z dHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggZGF0YWJhc2Ug aW4gdGhlIGN1cnJlbnQgY2x1c3Rlciwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0CisgICB2 YWN1dW1pbmcgdGhhdCBkYXRhYmFzZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRi aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAg ICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRp bWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIg Y2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRp cnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdy aXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29y ZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0 YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBk YXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVk IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFi YXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFz ZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVy YXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBz bGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBw ZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzIChz ZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3Qi Lz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBv ZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBV c2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29u ZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZXJy b3JzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdmFjdXVtIG9wZXJhdGlvbnMg cGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgICAgd2VyZSBpbnRlcnJ1cHRlZCBv biBhbnkgZXJyb3JzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg PC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyAgPHNl Y3QxIGlkPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWluZGV4ZXMiPgorICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT48L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0idmlldy1wZy1zdGF0LXZhY3V1bS1pbmRleGVzIj4KKyAgIDxw cmltYXJ5PnBnX3N0YXRfdmFjdXVtX2luZGV4ZXM8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJt PgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1f aW5kZXhlczwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93IGZvciBlYWNo IGluZGV4IGluIHRoZSBjdXJyZW50IGRhdGFiYXNlIChpbmNsdWRpbmcgVE9BU1QKKyAgIHRh YmxlIGluZGV4ZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgdmFjdXVtaW5nIHRoYXQg c3BlY2lmaWMgaW5kZXguCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT4gQ29sdW1uczwv dGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgT0lEIG9mIGFuIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoaXMg aW5kZXggaXMgaW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsbmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1i ZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAg ICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dG90YWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1l cyBkYXRhYmFzZSBibG9ja3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgYnVmZmVyIGNh Y2hlIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGlu ZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfZGly dGllZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyBkaXJ0aWVk IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4 CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRl bjwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5 IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4Cisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIE51bWJlciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9t IHRoaXMKKyAgICAgICAgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tz IG9mIHRoaXMgaW5kZXggd2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZm ZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3Qg bmVjZXNzYXJ5CisgICAgICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAg ICAgICAgcHJvamVjdDsgYnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0n cyBmaWxlIHN5c3RlbSBjYWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGFnZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGRlbGV0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5k ZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2RlbGV0ZWQ8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9u cyBkZWxldGVkIGZyb20gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdB TCByZWNvcmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJm b3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD53YWxfZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGZ1bGwgcGFn ZSBpbWFnZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZv cm1lZCBvbiB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PndhbF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRl cyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3Jl YWRfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJs b2NrcyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBp bmRleCwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8t dGltaW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3Bl cmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNv bmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJs ZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgc2xl ZXBpbmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVy Zm9ybWVkIG9uCisgICAgICAgIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcyAoc2VlIDx4 cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1jb3N0Ii8+Cisg ICAgICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRpbWUgb2YgdmFj dXVtaW5nIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVXNlciBDUFUg dGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgVG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRz CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8L3Rib2R5Pgor ICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0idmll dy1wZy1zdGF0LXZhY3V1bS10YWJsZXMiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3Rh dF92YWN1dW1fdGFibGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLXRhYmxlcyI+CisgICA8cHJpbWFyeT5wZ19zdGF0 X3ZhY3V1bV90YWJsZXM8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgor ICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3Ru YW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggdGFibGUgaW4gdGhlIGN1 cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGVzKSwgc2hvd2luZyBz dGF0aXN0aWNzIGFib3V0IHZhY3V1bWluZyB0aGF0IHNwZWNpZmljIHRhYmxlLgorICA8L3Bh cmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVt X3RhYmxlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIGEgdGFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyB0YWJsZSBpcyBpbgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFt ZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2Yg dGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3MgcmVh ZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJs ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZv dW5kIGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMK KyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1i ZXIgb2YgYmxvY2tzIHdyaXR0ZW4gZGlyZWN0bHkgYnkgdmFjdXVtIG9yIGF1dG8gdmFjdXVt LgorICAgICAgICBCbG9ja3MgdGhhdCBhcmUgZGlydGllZCBieSBhIHZhY3V1bSBwcm9jZXNz IGNhbiBiZSB3cml0dGVuIG91dCBieSBhbm90aGVyIHByb2Nlc3MuCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRp b25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRoaXMKKyAgICAgICAg dGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfaGl0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRoaXMgdGFibGUg d2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIgY2FjaGUgYnkgdmFj dXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNzYXJ5CisgICAg ICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAgICAgcHJvamVjdDsg YnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBmaWxlIHN5c3RlbSBj YWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFnZXNfc2Nhbm5l ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGV4YW1pbmVkIGJ5IHZhY3V1bSBv cGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX3JlbW92ZWQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiBwYWdlcyByZW1vdmVkIGZyb20gdGhlIHBoeXNpY2FsIHN0b3JhZ2UgYnkg dmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dm1fbmV3X2Zyb3plbl9wYWdlczwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0 IGFsbC1mcm96ZW4gYnkgdmFjdXVtCisgICAgICAgIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dm1fbmV3X3Zpc2libGVfcGFn ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aGUgbnVtYmVyIG9mIHBhZ2VzIG5ld2x5 IHNldCBhbGwtdmlzaWJsZSBieSB2YWN1dW0KKyAgICAgICAgaW4gdGhlIHZpc2liaWxpdHkg bWFwLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aGUgbnVtYmVyIG9m IHBhZ2VzIG5ld2x5IHNldCBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgorICAgICAgICBi eSB2YWN1dW0gaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD50dXBsZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9m IGRlYWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGRlbGV0ZWQgZnJvbSB0aGlzIHRhYmxl CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnR1cGxlc19mcm96ZW48L3N0 cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgIE51bWJlciBvZiB0dXBsZXMgb2YgdGhpcyB0YWJsZSB0aGF0IHZhY3V1 bSBvcGVyYXRpb25zIG1hcmtlZCBhcworICAgICAgICBmcm96ZW4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+cmVjZW50bHlfZGVhZF90dXBsZXM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9ucyBsZWZ0IGluIHRo aXMgdGFibGUgZHVlCisgICAgICAgIHRvIHRoZWlyIHZpc2liaWxpdHkgaW4gdHJhbnNhY3Rp b25zCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bWlzc2VkX2RlYWRfdHVw bGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZnVsbHkgREVBRCAobm90IGp1c3QgUkVD RU5UTFlfREVBRCkgdHVwbGVzICB0aGF0IGNvdWxkIG5vdCBiZQorICAgICAgICBwcnVuZWQg ZHVlIHRvIGZhaWx1cmUgdG8gYWNxdWlyZSBhIGNsZWFudXAgbG9jayBvbiBhIGhlYXAgcGFn ZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5kZXhfdmFjdXVtX2Nv dW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgaW5kZXhlcyBvbiB0aGlzIHRh YmxlIHdlcmUgdmFjdXVtZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRp bWVzIHRoZSB2YWN1dW0gd2FzIHJ1biB0byBwcmV2ZW50IGEgd3JhcGFyb3VuZCBwcm9ibGVt LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5taXNzZWRfZGVhZF9wYWdl czwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIHRoYXQgaGFkIGF0IGxlYXN0IG9u ZSBtaXNzZWRfZGVhZF90dXBsZXMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPndhbF9yZWNvcmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJl Y29yZHMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1l ZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndh bF9mcGk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGlt YWdlcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVk IG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2Fs X2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5dGVzIGdl bmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhp cyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90 aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tz IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIHRhYmxl LCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1p bmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRp b25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMg KGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwK KyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGlu ZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3Jt ZWQgb24KKyAgICAgICAgdGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYg bGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAg ICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5 c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1p bmcgdGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1l IG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBU b3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8 L3Rncm91cD4KKyAgPC90YWJsZT4KKyAgPHBhcmE+Q29sdW1ucyA8c3RydWN0ZmllbGQ+dG90 YWxfKjwvc3RydWN0ZmllbGQ+LCA8c3RydWN0ZmllbGQ+d2FsXyo8L3N0cnVjdGZpZWxkPgor ICAgIGFuZCA8c3RydWN0ZmllbGQ+YmxrXyo8L3N0cnVjdGZpZWxkPiBpbmNsdWRlIGRhdGEg b24gdmFjdXVtaW5nIGluZGV4ZXMgb24gdGhpcyB0YWJsZSwgd2hpbGUgY29sdW1ucworICAg IDxzdHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IGFuZCA8c3RydWN0Zmll bGQ+dXNlcl90aW1lPC9zdHJ1Y3RmaWVsZD4gb25seSBpbmNsdWRlIGRhdGEKKyAgICBvbiB2 YWN1dW1pbmcgdGhlIGhlYXAuPC9wYXJhPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+Ci0tIAoy LjM0LjEKCg== --------------Tg2A7YPgkbXUDy0UqOjXI9mZ--