Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oLAax-0007qU-Kw for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Aug 2022 21:47:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oLAaw-0005xe-Gk for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Aug 2022 21:47:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oLAau-0005xV-Q8 for pgsql-hackers@lists.postgresql.org; Mon, 08 Aug 2022 21:47:30 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oLAao-00025l-Kc for pgsql-hackers@postgresql.org; Mon, 08 Aug 2022 21:47:28 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 894305C0140; Mon, 8 Aug 2022 17:47:17 -0400 (EDT) Received: from imap49 ([10.202.2.99]) by compute2.internal (MEProxy); Mon, 08 Aug 2022 17:47:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eulerto.com; h= cc:cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm2; t=1659995237; x=1660081637; bh=HTu07Ljcc+ BP1I+r32jYOdEj5BIbc10g/VanV6ohNgA=; b=VQaY2jezBk5en4iUMrZk3I5nrr 0LeihWXuGWYgXuTL4P3GkTnmLS9UEU3vZvFiamj8AJqNRdByE/QZWCf2VFH45dgo BTNcKOstShYbfNapsJRzG04/FRH1RMhCV1wmL/kAlel+L31yrBiXMjVcNX+P0Mul a5bk1m7sEnl88xpIDwtkG/V3iLcx/dZofFLjSrlpV8kRpCZCSbi8d9EL3gebDanA 2M6Y4wZyVt6Tq583xG/UbbMeuWZ/ihGawlUt5qVK8vZ0nQunyRU4YmgxChqTarEY 8k2dw2Lmypf6yz/83+hR4JVjCqhvUd33/sH9hqMsxjP8LNEqPtwGf9P4ZVRg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1659995237; x=1660081637; bh=HTu07Ljcc+BP1I+r32jYOdEj5BIb c10g/VanV6ohNgA=; b=fKlq2uceRbL1+MdUWs+q900UqNDWd+i1qGU2ESrVSvwl k8GpjmnBn/9k8fE1cbbngsSrcEg1TpTx0pO2teLyVKLEijvGhyCOcurX4Dstcmed EQMLqDU7ulilVRxm0MUsbRySEJ7BfA6XIn8j7TZ+UiGwqJSzIVvxb4zEgh9UdeqI 1jZUWdo4CN3iVqGZoi7xP3XWC3AL7CLSwFzYULYnuyjt4Iv9yAb2abxVgwKbeLcG oVB8I2Ap5a0KyAz+lZJMw0UhZ44RvRbC5efwnBN1Ch59cvoJcD7skY0dYng1wo77 QbwZgKqCHfNJ7Gt5Ufo4EsujG5CkCp4Bz2AG5U9ajg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdefledgtdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehmtderreerredtnecuhfhrohhmpedfgfhu lhgvrhcuvfgrvhgvihhrrgdfuceovghulhgvrhesvghulhgvrhhtohdrtghomheqnecugg ftrfgrthhtvghrnheptddtueeuhfevtdduueelteeuheejieevkeegueefjeetvedtleet vdehgedvledunecuffhomhgrihhnpedtfedvrghpphhlhiguvghlrgihrdhplhdpvghnth gvrhhprhhishgvuggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm pehmrghilhhfrhhomhepvghulhgvrhesvghulhgvrhhtohdrtghomh X-ME-Proxy: Feedback-ID: i0c21471d:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 3290315A0087; Mon, 8 Aug 2022 17:47:17 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.7.0-alpha0-758-ge0d20a54e1-fm-20220729.001-ge0d20a54 Mime-Version: 1.0 Message-Id: <85ee6c87-ca0b-4330-9a7a-8a6cd389f7e0@www.fastmail.com> In-Reply-To: References: <73b06a32-56ab-4056-86ff-e307f3c316f1@www.fastmail.com> <20220322010410.m6ccotflls45d7vq@alap3.anarazel.de> <29bd8c6e-9c87-4a72-abea-52218a387e2e@www.fastmail.com> Date: Mon, 08 Aug 2022 18:46:56 -0300 From: "Euler Taveira" To: "Melih Mutlu" Cc: "Andres Freund" , "Amit Kapila" , "Marcos Pegoraro" , pgsql-hackers , "Peter Smith" Subject: Re: logical replication restrictions Content-Type: multipart/mixed; boundary=7e38a69add054c05ac95bfb8ccf600a6 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --7e38a69add054c05ac95bfb8ccf600a6 Content-Type: multipart/alternative; boundary=453fdf61176f4218970dcf93a7f32372 --453fdf61176f4218970dcf93a7f32372 Content-Type: text/plain On Wed, Jul 13, 2022, at 2:34 PM, Melih Mutlu wrote: [Sorry for the delay...] > 22. src/test/subscription/t/032_apply_delay.pl >> >> I received the following error when trying to run these 'subscription' tests: >> >> t/032_apply_delay.pl ............... No such class log_location at >> t/032_apply_delay.pl line 49, near "my log_location" >> syntax error at t/032_apply_delay.pl line 49, near "my log_location =" > > I'm having these errors too. Seems like some declarations are missing. Fixed in v5. > >>> + specified amount of time. If this value is specified without units, >>> + it is taken as milliseconds. The default is zero, adding no delay. >>> + > I'm also having an issue when I give min_apply_delay parameter without units. > I expect that if I set min_apply_delay to 5000 (without any unit), it will be interpreted as 5000 ms. Good catch. I fixed it in v5. > > Lastly, I have a question about this delay during tablesync. > It's stated here that apply delays are not for initial tablesync. > >>> >>> + The delay occurs only on WAL records for transaction begins and after >>> + the initial table synchronization. It is possible that the >>> + replication delay between publisher and subscriber exceeds the value >>> + of this parameter, in which case no delay is added. Note that the >>> + delay is calculated between the WAL time stamp as written on >>> + publisher and the current time on the subscriber. Delays in logical >>> + decoding and in transfer the transaction may reduce the actual wait >>> + time. If the system clocks on publisher and subscriber are not >>> + synchronized, this may lead to apply changes earlier than expected. >>> + This is not a major issue because a typical setting of this parameter >>> + are much larger than typical time deviations between servers. >>> + > > There might be a case where tablesync workers are in SYNCWAIT state and waiting for apply worker to tell them to CATCHUP. > And if apply worker is waiting in apply_delay function, tablesync workers will be stuck at SYNCWAIT state and this might delay tablesync at least "min_apply_delay" amount of time or more. > Is it something we would want? What do you think? Good catch. That's an oversight. It should wait for the initial table synchronization before starting to apply the delay. The main reason is the current logical replication worker design. It only closes the tablesync workers after the catchup phase. As you noticed we cannot impose the delay as soon as the COPY finishes because it will take a long time to finish due to possibly lack of workers. Instead, let's wait for the READY state for all tables then apply the delay. I added an explanation for it. I also modified the test a bit to use the new function wait_for_subscription_sync introduced in the commit 0c20dd33db1607d6a85ffce24238c1e55e384b49. I attached a v6. -- Euler Taveira EDB https://www.enterprisedb.com/ --453fdf61176f4218970dcf93a7f32372 Content-Type: text/html Content-Transfer-Encoding: quoted-printable
On Wed, Ju= l 13, 2022, at 2:34 PM, Melih Mutlu wrote:

= [Sorry for the delay...]

<= div dir=3D"ltr">
22. src/test/subscription/t/032_apply_delay.pl

I received the following error when trying to run= these 'subscription' tests:

t/032_appl= y_delay.pl ............... No such class log_location at
t/032_apply_delay.pl line 49, near "my log_location= "
syntax error at t/032_apply_delay.pl line 4= 9, near "my log_location =3D"

= I'm having these errors too. Seems like some declarations are missi= ng.
Fixed in v5.
<= /div>


+  =         specified amount of time. If this value is s= pecified without units,
+        &nb= sp; it is taken as milliseconds. The default is zero, adding no delay.
+         </para>
I'm also having an issue when I give min_= apply_delay parameter without units.
I expect that if I se= t  min_apply_delay to 5000 (without any unit), it will be interpret= ed as 5000 ms.
=
Good c= atch. I fixed it in v5.


Lastly, I have a question about this dela= y during tablesync. 
It's stated here that apply dela= ys are not for initial tablesync.

 <para= >
+          The delay occur= s only on WAL records for transaction begins and after
<= blockquote class=3D"qt-gmail_quote" style=3D"margin-top:0px;margin-right= :0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-le= ft-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;">+=           the initial table synchronization. It= is possible that the
+         = ; replication delay between publisher and subscriber exceeds the value
+          of this parameter, in= which case no delay is added. Note that the
+  &nb= sp;       delay is calculated between the WAL time stamp = as written on
+          publis= her and the current time on the subscriber. Delays in logical
+          decoding and in transfer the t= ransaction may reduce the actual wait
+     = ;     time. If the system clocks on publisher and subscriber a= re not
+          synchronized,= this may lead to apply changes earlier than expected.
<= blockquote class=3D"qt-gmail_quote" style=3D"margin-top:0px;margin-right= :0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-le= ft-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;">+=           This is not a major issue because a t= ypical setting of this parameter
+      &= nbsp;   are much larger than typical time deviations between server= s.
+         </para>
<= /blockquote>

There might be a case where= tablesync workers are in SYNCWAIT state and waiting for apply work= er to tell them to CATCHUP. 
And if apply worker is w= aiting in apply_delay function, tablesync workers will be stuck at SYNCW= AIT state and this might delay tablesync at least "min_apply_delay" amou= nt of time or more.
Is it something we would want? What do=  you think?
Good catch. That's an oversight. It should wait for the initial table<= br>
synchronization before starting to apply the delay. The ma= in reason is the
current logical replication worker design= . It only closes the tablesync workers
after the catchup p= hase. As you noticed we cannot impose the delay as soon as
the COPY finishes because it will take a long time to finish due to pos= sibly
lack of workers.  Instead, let's wait for the R= EADY state for all tables then
apply the delay. I added an= explanation for it.

I also modified the te= st a bit to use the new function
wait_for_subscription_syn= c introduced in the commit
0c20dd33db1607d6a85ffce24238c1e= 55e384b49.

I attached a v6.
<= br>

--
Euler Taveira

= --453fdf61176f4218970dcf93a7f32372-- --7e38a69add054c05ac95bfb8ccf600a6 Content-Disposition: attachment;filename="v6-0001-Time-delayed-logical-replication-subscriber.patch" Content-Type: text/x-patch; name="v6-0001-Time-delayed-logical-replication-subscriber.patch" Content-Transfer-Encoding: BASE64 RnJvbSA0NjVhNmQ1YWE0OTE4NTVlMjkyNWRhMjQ3ODUxMDNjYWMwYzUyMGEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdWxlciBUYXZlaXJhIDxldWxlci50YXZlaXJhQGVu dGVycHJpc2VkYi5jb20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAxMTozMToxMCAtMDMwMApT dWJqZWN0OiBbUEFUQ0ggdjZdIFRpbWUtZGVsYXllZCBsb2dpY2FsIHJlcGxpY2F0aW9uIHN1 YnNjcmliZXIKClNpbWlsYXIgdG8gcGh5c2ljYWwgcmVwbGljYXRpb24sIGEgdGltZS1kZWxh eWVkIGNvcHkgb2YgdGhlIGRhdGEgZm9yCmxvZ2ljYWwgcmVwbGljYXRpb24gaXMgdXNlZnVs IGZvciBzb21lIHNjZW5hcmlvcyAocGFydGljdWxhcmx5IHRvIGZpeAplcnJvcnMgdGhhdCBt aWdodCBjYXVzZSBkYXRhIGxvc3MpLgoKSWYgdGhlIHN1YnNjcmliZXIgc2V0cyBtaW5fYXBw bHlfZGVsYXkgcGFyYW1ldGVyLCB0aGUgbG9naWNhbApyZXBsaWNhdGlvbiB3b3JrZXIgd2ls bCBkZWxheSB0aGUgdHJhbnNhY3Rpb24gY29tbWl0IGZvciBtaW5fYXBwbHlfZGVsYXkKbWls bGlzZWNvbmRzLgoKVGhlIGRlbGF5IGlzIGNhbGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FMIHRp bWUgc3RhbXAgYW5kIHRoZSBjdXJyZW50IHRpbWUKb24gdGhlIHN1YnNjcmliZXIuCgpUaGUg ZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMgZm9yIHRyYW5zYWN0aW9uIGJlZ2lu cy4gVGhlIG1haW4KcmVhc29uIGlzIHRvIGF2b2lkIGtlZXBpbmcgYSB0cmFuc2FjdGlvbiBv cGVuIGZvciBhIGxvbmcgdGltZS4gUmVndWxhcgphbmQgcHJlcGFyZWQgdHJhbnNhY3Rpb25z IGFyZSBjb3ZlcmVkLiBTdHJlYW1lZCB0cmFuc2FjdGlvbnMgYXJlIGFsc28KY292ZXJlZC4K CkF1dGhvcjogRXVsZXIgVGF2ZWlyYQpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBQi1KTHdZT1l3TD1YVHlBWEtpSDVDdE1fVm04S2pLaDdhYWl0Q0t2bUNoNHJ6cjVwUUBt YWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAg ICAgICAgICB8ICAxMCArKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbCAgIHwgICA1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24u c2dtbCAgfCAgNDMgKysrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlv bi5jICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs ICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMgICAgfCAgNDggKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jICAgfCAxMDAgKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jICAgICAgICAgIHwgIDMyICsrKysKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAg ICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YyAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaCAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2RhdGF0eXBlL3RpbWVzdGFt cC5oICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy90aW1lc3RhbXAuaCAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3Jp cHRpb24ub3V0IHwgMTY1ICsrKysrKysrKysrKy0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVz cy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgIHwgIDIwICsrKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMyX2FwcGx5X2RlbGF5LnBsIHwgMTI5ICsrKysrKysrKysrKysrKysKIDE4 IGZpbGVzIGNoYW5nZWQsIDUxNSBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVs YXkucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGNkMmNjMzdhZWIuLmVmYzc0NWE5ZWEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCkBAIC03ODMzLDYgKzc4MzMsMTYgQEAgU0NSQU0tU0hBLTI1NiQ8 cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVw bGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3ViYXBw bHlkZWxheTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBEZWxheSB0aGUgYXBwbGljYXRpb24gb2YgY2hhbmdl cyBieSBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS4gVGhlCisgICAgICAgdW5pdCBpcyBp biBtaWxsaXNlY29uZHMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK ICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnN1 Ym5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggNjRlZmMyMWY1My4uODkwMWUxMzYx YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y MDgsOCArMjA4LDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIGFyZSA8 bGl0ZXJhbD5zbG90X25hbWU8L2xpdGVyYWw+LAogICAgICAgPGxpdGVyYWw+c3luY2hyb25v dXNfY29tbWl0PC9saXRlcmFsPiwKICAgICAgIDxsaXRlcmFsPmJpbmFyeTwvbGl0ZXJhbD4s IDxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD4sCi0gICAgICA8bGl0ZXJhbD5kaXNhYmxl X29uX2Vycm9yPC9saXRlcmFsPiwgYW5kCi0gICAgICA8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+LgorICAgICAgPGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD4sCisgICAg ICA8bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+LCBhbmQKKyAgICAgIDxsaXRlcmFsPm1pbl9h cHBseV9kZWxheTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sCmluZGV4IDczOTBjNzE1YmMuLjFmYzhlNzQ3NGEgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0zMTcsNyArMzE3LDM2IEBA IENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1 YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgICA8L3ZhcmlhYmxl bGlzdD48L3BhcmE+CisKKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48 bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBl Pik8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAg ICAgIEJ5IGRlZmF1bHQsIHN1YnNjcmliZXIgYXBwbGllcyBjaGFuZ2VzIGFzIHNvb24gYXMg cG9zc2libGUuIEFzIHdpdGgKKyAgICAgICAgICB0aGUgcGh5c2ljYWwgcmVwbGljYXRpb24g ZmVhdHVyZQorICAgICAgICAgICg8eHJlZiBsaW5rZW5kPSJndWMtcmVjb3ZlcnktbWluLWFw cGx5LWRlbGF5Ii8+KSwgaXQgY2FuIGJlIHVzZWZ1bCB0bworICAgICAgICAgIGhhdmUgYSB0 aW1lLWRlbGF5ZWQgbG9naWNhbCByZXBsaWNhLiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgeW91 IHRvCisgICAgICAgICAgZGVsYXkgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYnkgYSBz cGVjaWZpZWQgYW1vdW50IG9mIHRpbWUuIElmCisgICAgICAgICAgdGhpcyB2YWx1ZSBpcyBz cGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQgaXMgdGFrZW4gYXMgc2Vjb25kcy4gVGhlCisg ICAgICAgICAgZGVmYXVsdCBpcyB6ZXJvLCBhZGRpbmcgbm8gZGVsYXkuCisgICAgICAgICA8 L3BhcmE+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZGVsYXkgb2NjdXJzIG9u bHkgb24gV0FMIHJlY29yZHMgZm9yIHRyYW5zYWN0aW9uIGJlZ2lucyBhbmQgYWZ0ZXIKKyAg ICAgICAgICB0aGUgaW5pdGlhbCB0YWJsZSBzeW5jaHJvbml6YXRpb24uIEl0IGlzIHBvc3Np YmxlIHRoYXQgdGhlCisgICAgICAgICAgcmVwbGljYXRpb24gZGVsYXkgYmV0d2VlbiBwdWJs aXNoZXIgYW5kIHN1YnNjcmliZXIgZXhjZWVkcyB0aGUgdmFsdWUKKyAgICAgICAgICBvZiB0 aGlzIHBhcmFtZXRlciwgaW4gd2hpY2ggY2FzZSBubyBkZWxheSBpcyBhZGRlZC4gTm90ZSB0 aGF0IHRoZQorICAgICAgICAgIGRlbGF5IGlzIGNhbGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FM IHRpbWUgc3RhbXAgYXMgd3JpdHRlbiBvbgorICAgICAgICAgIHB1Ymxpc2hlciBhbmQgdGhl IGN1cnJlbnQgdGltZSBvbiB0aGUgc3Vic2NyaWJlci4gVGltZSBzcGVudCBpbiBsb2dpY2Fs CisgICAgICAgICAgZGVjb2RpbmcgYW5kIGluIHRyYW5zZmVyaW5nIHRoZSB0cmFuc2FjdGlv biBtYXkgcmVkdWNlIHRoZSBhY3R1YWwgd2FpdAorICAgICAgICAgIHRpbWUuIElmIHRoZSBz eXN0ZW0gY2xvY2tzIG9uIHB1Ymxpc2hlciBhbmQgc3Vic2NyaWJlciBhcmUgbm90CisgICAg ICAgICAgc3luY2hyb25pemVkLCB0aGlzIG1heSBsZWFkIHRvIGFwcGx5IGNoYW5nZXMgZWFy bGllciB0aGFuIGV4cGVjdGVkLgorICAgICAgICAgIFRoaXMgaXMgbm90IGEgbWFqb3IgaXNz dWUgYmVjYXVzZSBhIHR5cGljYWwgc2V0dGluZyBvZiB0aGlzIHBhcmFtZXRlcgorICAgICAg ICAgIGFyZSBtdWNoIGxhcmdlciB0aGFuIHR5cGljYWwgdGltZSBkZXZpYXRpb25zIGJldHdl ZW4gc2VydmVycy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3Bh cmE+CiAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC00MTMsNiAr NDQyLDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gbXlzdWIKICAgICAgICAgUFVCTElDQVRJ T04gaW5zZXJ0X29ubHkKICAgICAgICAgICAgICAgIFdJVEggKGVuYWJsZWQgPSBmYWxzZSk7 CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhIHN1 YnNjcmlwdGlvbiB0byBhIHJlbW90ZSBzZXJ2ZXIgdGhhdCByZXBsaWNhdGVzIHRhYmxlcyBp bgorICAgdGhlIDxsaXRlcmFsPmJhejwvbGl0ZXJhbD4gcHVibGljYXRpb24gYW5kIHN0YXJ0 cyByZXBsaWNhdGluZyBpbW1lZGlhdGVseSBvbgorICAgY29tbWl0LiBQcmUtZXhpc3Rpbmcg ZGF0YSBpcyBub3QgY29waWVkLiBUaGUgYXBwbGljYXRpb24gb2YgY2hhbmdlcyBpcworICAg ZGVsYXllZCBieSA0IGhvdXJzLgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFNVQlNDUklQ VElPTiBmb28KKyAgICAgICAgIENPTk5FQ1RJT04gJ2hvc3Q9MTkyLjE2OC4xLjUwIHBvcnQ9 NTQzMiB1c2VyPWZvbyBkYm5hbWU9Zm9vZGInCisgICAgICAgIFBVQkxJQ0FUSU9OIGJhegor ICAgICAgICAgICAgICAgV0lUSCAoY29weV9kYXRhID0gZmFsc2UsIG1pbl9hcHBseV9kZWxh eSA9ICc0aCcpOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAog IDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4 IGE1MDZmYzNlYzguLmQ5M2UzNzRlZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uYwpAQCAtNjQsNiArNjQsNyBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1Ymlk LCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5vaWQgPSBzdWJpZDsKIAlzdWItPmRiaWQgPSBz dWJmb3JtLT5zdWJkYmlkOwogCXN1Yi0+c2tpcGxzbiA9IHN1YmZvcm0tPnN1YnNraXBsc247 CisJc3ViLT5hcHBseWRlbGF5ID0gc3ViZm9ybS0+c3ViYXBwbHlkZWxheTsKIAlzdWItPm5h bWUgPSBwc3RyZHVwKE5hbWVTdHIoc3ViZm9ybS0+c3VibmFtZSkpOwogCXN1Yi0+b3duZXIg PSBzdWJmb3JtLT5zdWJvd25lcjsKIAlzdWItPmVuYWJsZWQgPSBzdWJmb3JtLT5zdWJlbmFi bGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGYzNjliMWZj MTQuLjUwMTc1MzIzYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK QEAgLTEyOTcsOSArMTI5NywxMCBAQCBSRVZPS0UgQUxMIE9OIHBnX3JlcGxpY2F0aW9uX29y aWdpbl9zdGF0dXMgRlJPTSBwdWJsaWM7CiAKIC0tIEFsbCBjb2x1bW5zIG9mIHBnX3N1YnNj cmlwdGlvbiBleGNlcHQgc3ViY29ubmluZm8gYXJlIHB1YmxpY2x5IHJlYWRhYmxlLgogUkVW T0tFIEFMTCBPTiBwZ19zdWJzY3JpcHRpb24gRlJPTSBwdWJsaWM7Ci1HUkFOVCBTRUxFQ1Qg KG9pZCwgc3ViZGJpZCwgc3Vic2tpcGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJs ZWQsCi0gICAgICAgICAgICAgIHN1YmJpbmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0 YXRlLCBzdWJkaXNhYmxlb25lcnIsCi0gICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJz eW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMsIHN1Ym9yaWdpbikKK0dSQU5UIFNFTEVDVCAo b2lkLCBzdWJkYmlkLCBzdWJza2lwbHNuLCBzdWJhcHBseWRlbGF5LCBzdWJuYW1lLCBzdWJv d25lciwKKyAgICAgICAgICAgICAgc3ViZW5hYmxlZCwgc3ViYmluYXJ5LCBzdWJzdHJlYW0s IHN1YnR3b3BoYXNlc3RhdGUsCisgICAgICAgICAgICAgIHN1YmRpc2FibGVvbmVyciwgc3Vi c2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucywKKyAgICAgICAgICAg ICAgc3Vib3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENS RUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZjczZGZiNjA2Ny4uYWFlZGE3ZThh OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtNDcs NiArNDcsNyBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRp bHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1 dGlscy90aW1lc3RhbXAuaCIKIAogLyoKICAqIE9wdGlvbnMgdGhhdCBjYW4gYmUgc3BlY2lm aWVkIGJ5IHRoZSB1c2VyIGluIENSRUFURS9BTFRFUiBTVUJTQ1JJUFRJT04KQEAgLTY1LDYg KzY2LDcgQEAKICNkZWZpbmUgU1VCT1BUX0RJU0FCTEVfT05fRVJSCQkweDAwMDAwNDAwCiAj ZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMDA4MDAKICNkZWZpbmUgU1VCT1BUX09SSUdJ TgkJCQkweDAwMDAxMDAwCisjZGVmaW5lIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkJCTB4MDAw MDIwMDAKIAogLyogY2hlY2sgaWYgdGhlICd2YWwnIGhhcyAnYml0cycgc2V0ICovCiAjZGVm aW5lIElzU2V0KHZhbCwgYml0cykgICgoKHZhbCkgJiAoYml0cykpID09IChiaXRzKSkKQEAg LTg5LDYgKzkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCWRpc2FibGVv bmVycjsKIAljaGFyCSAgICpvcmlnaW47CiAJWExvZ1JlY1B0cglsc247CisJaW50NjQJCW1p bl9hcHBseV9kZWxheTsKIH0gU3ViT3B0czsKIAogc3RhdGljIExpc3QgKmZldGNoX3RhYmxl X2xpc3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucyk7CkBA IC0xNDEsNiArMTQ0LDggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9wdHMtPmRpc2FibGVvbmVyciA9 IGZhbHNlOwogCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJ CW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAoTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAo SXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpKQorCQlvcHRz LT5taW5fYXBwbHlfZGVsYXkgPSAwOwogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVh Y2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTMxOSwxMiArMzI0LDM1IEBAIHBhcnNlX3N1YnNj cmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25z LAogCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VCT1BUX0xTTjsKIAkJCW9wdHMtPmxz biA9IGxzbjsKIAkJfQorCQllbHNlIGlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BU X01JTl9BUFBMWV9ERUxBWSkgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAibWlu X2FwcGx5X2RlbGF5IikgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFsOworCQkJSW50ZXJ2 YWwgICAqaW50ZXJ2YWw7CisKKwkJCWlmIChJc1NldChvcHRzLT5zcGVjaWZpZWRfb3B0cywg U1VCT1BUX01JTl9BUFBMWV9ERUxBWSkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0o ZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9N SU5fQVBQTFlfREVMQVk7CisJCQl2YWwgPSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCisJCQlp bnRlcnZhbCA9IERhdHVtR2V0SW50ZXJ2YWxQKERpcmVjdEZ1bmN0aW9uQ2FsbDMoaW50ZXJ2 YWxfaW4sCisJCQkJCQkJCQkJCQkJCQkJCUNTdHJpbmdHZXREYXR1bSh2YWwpLAorCQkJCQkJ CQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKEludmFsaWRPaWQpLAorCQkJCQkJCQkJCQkJ CQkJCQlJbnQzMkdldERhdHVtKC0xKSkpOworCQkJb3B0cy0+bWluX2FwcGx5X2RlbGF5ID0g aW50ZXJ2YWxfdG9fbXMoaW50ZXJ2YWwpOworCQl9CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJIGVycm1z ZygidW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6IFwiJXNcIiIsIGRlZmVs LT5kZWZuYW1lKSkpOwogCX0KIAorCWlmIChvcHRzLT5taW5fYXBwbHlfZGVsYXkgPCAwICYm IElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAorCQkJCWVycm1zZygib3B0aW9uIFwiJXNcIiBtdXN0IG5vdCBiZSBuZWdhdGl2 ZSIsICJtaW5fYXBwbHlfZGVsYXkiKSk7CisKIAkvKgogCSAqIFdlJ3ZlIGJlZW4gZXhwbGlj aXRseSBhc2tlZCB0byBub3QgY29ubmVjdCwgdGhhdCByZXF1aXJlcyBzb21lCiAJICogYWRk aXRpb25hbCBwcm9jZXNzaW5nLgpAQCAtNTU3LDcgKzU4NSw4IEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQs CiAJCQkJCSAgU1VCT1BUX1NMT1RfTkFNRSB8IFNVQk9QVF9DT1BZX0RBVEEgfAogCQkJCQkg IFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJICBT VUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX1RXT1BIQVNFX0NPTU1JVCB8Ci0JCQkJCSAgU1VC T1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX0RJ U0FCTEVfT05fRVJSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAgU1VCT1BUX01JTl9BUFBM WV9ERUxBWSk7CiAJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5v cHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwogCiAJLyoKQEAgLTYyMiw2ICs2NTEs NyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJhc2VJZCk7 CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExTTkdl dERhdHVtKEludmFsaWRYTG9nUmVjUHRyKTsKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRp b25fc3ViYXBwbHlkZWxheSAtIDFdID0gSW50NjRHZXREYXR1bShvcHRzLm1pbl9hcHBseV9k ZWxheSk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym5hbWUgLSAxXSA9CiAJ CURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0oc3RtdC0+c3Vi bmFtZSkpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvd25lciAtIDFdID0g T2JqZWN0SWRHZXREYXR1bShvd25lcik7CkBAIC0xMDQ0LDcgKzEwNzQsNyBAQCBBbHRlclN1 YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAkJCQlzdXBwb3J0ZWRfb3B0cyA9IChTVUJPUFRfU0xPVF9OQU1FIHwKIAkJCQkJ CQkJICBTVUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJ CQkJCSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8Ci0JCQkJ CQkJCSAgU1VCT1BUX09SSUdJTik7CisJCQkJCQkJCSAgU1VCT1BUX09SSUdJTiB8IFNVQk9Q VF9NSU5fQVBQTFlfREVMQVkpOwogCiAJCQkJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMo cHN0YXRlLCBzdG10LT5vcHRpb25zLAogCQkJCQkJCQkJCSAgIHN1cHBvcnRlZF9vcHRzLCAm b3B0cyk7CkBAIC0xMTAwLDYgKzExMzAsMTIgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXJlcGxh Y2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmRpc2FibGVvbmVyciAtIDFdCiAJCQkJCQk9 IHRydWU7CiAJCQkJfQorCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJP UFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJCQl7CisJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJhcHBseWRlbGF5IC0gMV0gPQorCQkJCQkJSW50NjRHZXREYXR1bShvcHRz Lm1pbl9hcHBseV9kZWxheSk7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1YmFwcGx5ZGVsYXkgLSAxXSA9IHRydWU7CisJCQkJfQogCiAJCQkJaWYgKElzU2V0KG9w dHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQkJCXsKQEAgLTExMzAsNiAr MTE2NiwxNCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlpZiAob3B0cy5lbmFibGVkKQogCQkJCQlB cHBseUxhdW5jaGVyV2FrZXVwQXRDb21taXQoKTsKIAorCQkJCS8qCisJCQkJICogSWYgdGhp cyBzdWJzY3JpcHRpb24gaGFzIGJlZW4gZGlzYWJsZWQgYW5kIGl0IGhhcyBhbiBhcHBseQor CQkJCSAqIGRlbGF5IHNldCwgd2FrZSB1cCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3Jr ZXIgdG8gZmluaXNoCisJCQkJICogaXQgYXMgc29vbiBhcyBwb3NzaWJsZS4KKwkJCQkgKi8K KwkJCQlpZiAoIW9wdHMuZW5hYmxlZCAmJiBzdWItPmFwcGx5ZGVsYXkgPiAwKQorCQkJCQls b2dpY2FscmVwX3dvcmtlcl93YWtldXAoc3ViLT5vaWQsIEludmFsaWRPaWQpOworCiAJCQkJ dXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDVmOGM1NDE3NjMuLjE4YWVjZTM0 OTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2Vy LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAt MzI0LDYgKzMyNCw4IEBAIHN0YXRpYyB2b2lkIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24o dm9pZCk7CiAKIHN0YXRpYyB2b2lkIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQp OwogCitzdGF0aWMgdm9pZCBhcHBseV9kZWxheShUaW1lc3RhbXBUeiB0cyk7CisKIC8qIHBy b3RvdHlwZSBuZWVkZWQgYmVjYXVzZSBvZiBzdHJlYW1fY29tbWl0ICovCiBzdGF0aWMgdm9p ZCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMpOwogCkBAIC04MDMsNiArODA1LDcyIEBA IHNsb3RfbW9kaWZ5X2RhdGEoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFR1cGxlVGFibGVTbG90 ICpzcmNzbG90LAogCUV4ZWNTdG9yZVZpcnR1YWxUdXBsZShzbG90KTsKIH0KIAorLyoKKyAq IFdoZW4gbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciBpcyBzZXQgb24gc3Vic2NyaWJlciwg d2Ugd2FpdCBsb25nIGVub3VnaCB0bworICogbWFrZSBzdXJlIGEgdHJhbnNhY3Rpb24gaXMg YXBwbGllZCBhdCBsZWFzdCB0aGF0IGludGVydmFsIGJlaGluZCB0aGUKKyAqIHB1Ymxpc2hl ci4KKyAqCisgKiBJdCBhcHBsaWVzIHRoZSBkZWxheSBmb3IgdGhlIG5leHQgdHJhbnNhY3Rp b24gYnV0IGJlZm9yZSBzdGFydGluZyB0aGUKKyAqIHRyYW5zYWN0aW9uLiBUaGUgbWFpbiBy ZWFzb24gZm9yIHRoaXMgZGVzaWduIGlzIHRvIGF2b2lkIGEgbG9uZy1ydW5uaW5nCisgKiB0 cmFuc2FjdGlvbiAod2hpY2ggY2FuIGNhdXNlIHNvbWUgb3BlcmF0aW9uYWwgY2hhbGxlbmdl cykgaWYgdGhlIHVzZXIgc2V0cyBhCisgKiBoaWdoIHZhbHVlIGZvciB0aGUgZGVsYXkuIFRo aXMgZGVzaWduIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwaHlzaWNhbAorICogcmVwbGljYXRp b24gKHRoYXQgYXBwbGllcyB0aGUgZGVsYXkgYXQgY29tbWl0IHRpbWUpIG1haW5seSBiZWNh dXNlIHdyaXRlCisgKiBvcGVyYXRpb25zIG1heSBhbGxvdyBzb21lIGlzc3VlcyAoc3VjaCBh cyBibG9hdCBhbmQgbG9ja3MpIHRoYXQgY2FuIGJlCisgKiBtaW5pbWl6ZWQgaWYgaXQgZG9l cyBub3Qga2VlcCB0aGUgdHJhbnNhY3Rpb24gb3BlbiBmb3Igc3VjaCBhIGxvbmcgdGltZS4K KyAqCisgKiBUaGUgbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciB3aWxsIHRha2UgZWZmZWN0 IG9ubHkgYWZ0ZXIgYWxsIHRhYmxlcyBhcmUgaW4KKyAqIFJFQURZIHN0YXRlLgorICovCitz dGF0aWMgdm9pZAorYXBwbHlfZGVsYXkoVGltZXN0YW1wVHogdHMpCit7CisJVGltZXN0YW1w VHoJZGVsYXlfdW50aWwgPSAwOworCisJLyogbm90aGluZyB0byBkbyBpZiBubyBkZWxheSBz ZXQgKi8KKwlpZiAoTXlTdWJzY3JpcHRpb24tPmFwcGx5ZGVsYXkgPD0gMCkKKwkJcmV0dXJu OworCisJLyoKKwkgKiBBcHBseSBkZWxheSBvbmx5IGFmdGVyIGFsbCB0YWJsZXN5bmMgd29y a2VycyBoYXZlIHJlYWNoZWQgUkVBRFkgc3RhdGUuIEEKKwkgKiB0YWJsZXN5bmMgd29ya2Vy IGFyZSBrZXB0IHVudGlsIGl0IHJlYWNoZXMgUkVBRFkgc3RhdGUuIElmIHdlIGFsbG93IHRo ZQorCSAqIGRlbGF5IGR1cmluZyB0aGUgY2F0Y2h1cCBwaGFzZSwgb25jZSB3ZSByZWFjaCB0 aGUgbGltaXQgb2YgdGFibGVzeW5jCisJICogd29ya2VycywgaXQgd2lsbCBpbXBvc2UgYSBk ZWxheSBmb3IgZWFjaCBzdWJzZXF1ZW50IHdvcmtlci4gSXQgbWVhbnMgaXQKKwkgKiB3aWxs IHRha2UgYSBsb25nIHRpbWUgdG8gZmluaXNoIHRoZSBpbml0aWFsIHRhYmxlIHN5bmNocm9u aXphdGlvbi4KKwkgKiBJbnN0ZWFkLCB0aGUgYXBwbHkgZGVsYXkgd2lsbCBiZSBhY3RpdmF0 ZWQgb25seSBhZnRlciBhbGwgdGFibGVzIGFyZSBpbgorCSAqIFJFQURZIHN0YXRlLgorCSAq LworCWlmICghQWxsVGFibGVzeW5jc1JlYWR5KCkpCisJCXJldHVybjsKKworCS8qIHNldCBh cHBseSBkZWxheSAqLworCWRlbGF5X3VudGlsID0gVGltZXN0YW1wVHpQbHVzTWlsbGlzZWNv bmRzKFRpbWVzdGFtcFR6R2V0RGF0dW0odHMpLAorCQkJCQkJCQkJCQkJTXlTdWJzY3JpcHRp b24tPmFwcGx5ZGVsYXkpOworCisJd2hpbGUgKHRydWUpCisJeworCQlsb25nCQlkaWZmbXM7 CisKKwkJZGlmZm1zID0gVGltZXN0YW1wRGlmZmVyZW5jZU1pbGxpc2Vjb25kcyhHZXRDdXJy ZW50VGltZXN0YW1wKCksIGRlbGF5X3VudGlsKTsKKworCQkvKgorCQkgKiBFeGl0IHdpdGhv dXQgYXJtaW5nIHRoZSBsYXRjaCBpZiBpdCdzIGFscmVhZHkgcGFzdCB0aW1lIHRvIGFwcGx5 CisJCSAqIHRoaXMgdHJhbnNhY3Rpb24uCisJCSAqLworCQlpZiAoZGlmZm1zIDw9IDApCisJ CQlicmVhazsKKworCQllbG9nKERFQlVHMiwgImxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkg ZGVsYXk6ICVsZCBtcyIsIGRpZmZtcyk7CisKKwkJV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJ ICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwKKwkJ CQkgIGRpZmZtcywKKwkJCQkgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQVBQTFlfREVMQVkpOwor CQlSZXNldExhdGNoKE15TGF0Y2gpOworCisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisJ fQorfQorCiAvKgogICogSGFuZGxlIEJFR0lOIG1lc3NhZ2UuCiAgKi8KQEAgLTgxNCw2ICs4 ODIsOSBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCWxvZ2ljYWxyZXBf cmVhZF9iZWdpbihzLCAmYmVnaW5fZGF0YSk7CiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRf eGFjdChiZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCisJLyogU2hv dWxkIHdlIGRlbGF5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uPyAqLworCWFwcGx5X2RlbGF5 KGJlZ2luX2RhdGEuY29tbWl0dGltZSk7CisKIAlyZW1vdGVfZmluYWxfbHNuID0gYmVnaW5f ZGF0YS5maW5hbF9sc247CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGJlZ2lu X2RhdGEuZmluYWxfbHNuKTsKQEAgLTg2OCw2ICs5MzksOSBAQCBhcHBseV9oYW5kbGVfYmVn aW5fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJbG9naWNhbHJlcF9yZWFkX2JlZ2luX3ByZXBh cmUocywgJmJlZ2luX2RhdGEpOwogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVn aW5fZGF0YS54aWQsIGJlZ2luX2RhdGEucHJlcGFyZV9sc24pOwogCisJLyogU2hvdWxkIHdl IGRlbGF5IHRoZSBjdXJyZW50IHByZXBhcmVkIHRyYW5zYWN0aW9uPyAqLworCWFwcGx5X2Rl bGF5KGJlZ2luX2RhdGEucHJlcGFyZV90aW1lKTsKKwogCXJlbW90ZV9maW5hbF9sc24gPSBi ZWdpbl9kYXRhLnByZXBhcmVfbHNuOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdl cyhiZWdpbl9kYXRhLnByZXBhcmVfbHNuKTsKQEAgLTEwOTAsNiArMTE2NCwxOSBAQCBhcHBs eV9oYW5kbGVfc3RyZWFtX3ByZXBhcmUoU3RyaW5nSW5mbyBzKQogCiAJZWxvZyhERUJVRzEs ICJyZWNlaXZlZCBwcmVwYXJlIGZvciBzdHJlYW1lZCB0cmFuc2FjdGlvbiAldSIsIHByZXBh cmVfZGF0YS54aWQpOwogCisJLyoKKwkgKiBTaG91bGQgd2UgZGVsYXkgdGhlIGN1cnJlbnQg cHJlcGFyZWQgdHJhbnNhY3Rpb24/CisJICoKKwkgKiBBbHRob3VnaCB0aGUgZGVsYXkgaXMg YXBwbGllZCBpbiBCRUdJTiBQUkVQQVJFIG1lc3NhZ2VzLCBzdHJlYW1lZAorCSAqIHByZXBh cmVkIHRyYW5zYWN0aW9ucyBhcHBseSB0aGUgZGVsYXkgaW4gYSBTVFJFQU0gUFJFUEFSRSBt ZXNzYWdlLgorCSAqIFRoYXQncyBvayBiZWNhdXNlIG5vIGNoYW5nZXMgaGF2ZSBiZWVuIGFw cGxpZWQgeWV0CisJICogKGFwcGx5X3Nwb29sZWRfbWVzc2FnZXMoKSB3aWxsIGRvIGl0KS4K KwkgKiBUaGUgU1RSRUFNIFNUQVJUIG1lc3NhZ2UgZG9lcyBub3QgY29udGFpbiBhIHByZXBh cmUgdGltZSAoaXQgd2lsbCBiZQorCSAqIGF2YWlsYWJsZSB3aGVuIHRoZSBpbi1wcm9ncmVz cyBwcmVwYXJlZCB0cmFuc2FjdGlvbiBmaW5pc2hlcyksIGhlbmNlLCBpdAorCSAqIHdhcyBu b3QgcG9zc2libGUgdG8gYXBwbHkgYSBkZWxheSBhdCB0aGF0IHRpbWUuCisJICovCisJYXBw bHlfZGVsYXkocHJlcGFyZV9kYXRhLnByZXBhcmVfdGltZSk7CisKIAkvKiBSZXBsYXkgYWxs IHRoZSBzcG9vbGVkIG9wZXJhdGlvbnMuICovCiAJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhw cmVwYXJlX2RhdGEueGlkLCBwcmVwYXJlX2RhdGEucHJlcGFyZV9sc24pOwogCkBAIC0xNDgx LDYgKzE1NjgsMTkgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9jb21taXQoU3RyaW5nSW5mbyBz KQogCiAJZWxvZyhERUJVRzEsICJyZWNlaXZlZCBjb21taXQgZm9yIHN0cmVhbWVkIHRyYW5z YWN0aW9uICV1IiwgeGlkKTsKIAorCS8qCisJICogU2hvdWxkIHdlIGRlbGF5IHRoZSBjdXJy ZW50IHRyYW5zYWN0aW9uPworCSAqCisJICogQWx0aG91Z2ggdGhlIGRlbGF5IGlzIGFwcGxp ZWQgaW4gQkVHSU4gbWVzc2FnZXMsIHN0cmVhbWVkIHRyYW5zYWN0aW9ucworCSAqIGFwcGx5 IHRoZSBkZWxheSBpbiBhIFNUUkVBTSBDT01NSVQgbWVzc2FnZS4gVGhhdCdzIG9rIGJlY2F1 c2Ugbm8gY2hhbmdlcworCSAqIGhhdmUgYmVlbiBhcHBsaWVkIHlldCAoYXBwbHlfc3Bvb2xl ZF9tZXNzYWdlcygpIHdpbGwgZG8gaXQpLgorCSAqIFRoZSBTVFJFQU0gU1RBUlQgbWVzc2Fn ZSB3b3VsZCBiZSBhIG5hdHVyYWwgY2hvaWNlIGZvciB0aGlzIGRlbGF5IGJ1dAorCSAqIHRo ZXJlIGlzIG5vIGNvbW1pdCB0aW1lIHlldCAoaXQgd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0 aGUgaW4tcHJvZ3Jlc3MKKwkgKiB0cmFuc2FjdGlvbiBmaW5pc2hlcyksIGhlbmNlLCBpdCB3 YXMgbm90IHBvc3NpYmxlIHRvIGFwcGx5IGEgZGVsYXkgYXQKKwkgKiB0aGF0IHRpbWUuCisJ ICovCisJYXBwbHlfZGVsYXkoY29tbWl0X2RhdGEuY29tbWl0dGltZSk7CisKIAlhcHBseV9z cG9vbGVkX21lc3NhZ2VzKHhpZCwgY29tbWl0X2RhdGEuY29tbWl0X2xzbik7CiAKIAlhcHBs eV9oYW5kbGVfY29tbWl0X2ludGVybmFsKCZjb21taXRfZGF0YSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMKaW5kZXggNDljZGIyOTBhYy4uODlmNTdmN2MzMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMjQxMSw2ICsyNDExLDM4IEBAIGludGVydmFs X2NtcF9pbnRlcm5hbChjb25zdCBJbnRlcnZhbCAqaW50ZXJ2YWwxLCBjb25zdCBJbnRlcnZh bCAqaW50ZXJ2YWwyKQogCXJldHVybiBpbnQxMjhfY29tcGFyZShzcGFuMSwgc3BhbjIpOwog fQogCisvKgorICogR2l2ZW4gYW4gSW50ZXJ2YWwgcmV0dXJucyB0aGUgbnVtYmVyIG9mIG1p bGxpc2Vjb25kcy4KKyAqLworaW50NjQKK2ludGVydmFsX3RvX21zKGNvbnN0IEludGVydmFs ICppbnRlcnZhbCkKK3sKKwlpbnQ2NAkJCWRheXM7CisJaW50NjQJCQltczsKKwlpbnQ2NAkJ CXJlc3VsdDsKKworCWRheXMgPSBpbnRlcnZhbC0+bW9udGggKiBJTlQ2NENPTlNUKDMwKTsK KwlkYXlzICs9IGludGVydmFsLT5kYXk7CisKKwkvKgorCSAqIFRoZSBmb2xsb3dpbmcgb3Bl cmF0aW9ucyB1c2UgdGhlc2Ugc3BlY2lhbCBmdW5jdGlvbnMgdG8gZGV0ZWN0IG92ZXJmbG93 LgorCSAqIE51bWJlciBvZiBtcyBwZXIgaW5mb3JtZWQgZGF5cy4KKwkgKi8KKwlpZiAocGdf bXVsX3M2NF9vdmVyZmxvdyhkYXlzLCBNU0VDU19QRVJfREFZLCAmcmVzdWx0KSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKKwkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCS8q IGFkZHMgcG9ydGlvbiB0aW1lIChpbiBtcykgdG8gdGhlIHByZXZpb3VzIHJlc3VsdC4gKi8K KwltcyA9IGludGVydmFsLT50aW1lIC8gSU5UNjRDT05TVCgxMDAwKTsKKwlpZiAocGdfYWRk X3M2NF9vdmVyZmxvdyhyZXN1bHQsIG1zLCAmcmVzdWx0KSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCXJldHVybiByZXN1bHQ7 Cit9CisKIERhdHVtCiBpbnRlcnZhbF9lcShQR19GVU5DVElPTl9BUkdTKQogewpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKaW5kZXggZGE2NjA1MTc1YS4uNWVmNjFmM2RlMSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBA IC00NDQxLDYgKzQ0NDEsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJ aW50CQkJaV9zdWJzeW5jY29tbWl0OwogCWludAkJCWlfc3VicHVibGljYXRpb25zOwogCWlu dAkJCWlfc3ViYmluYXJ5OworCWludAkJCWlfc3ViYXBwbHlkZWxheTsKIAlpbnQJCQlpLAog CQkJCW50dXBzOwogCkBAIC00NDkzLDkgKzQ0OTQsMTUgQEAgZ2V0U3Vic2NyaXB0aW9ucyhB cmNoaXZlICpmb3V0KQogCQkJCQkJICBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0RJU0FC TEVEKTsKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE2MDAwMCkKLQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJvcmlnaW5cbiIpOworCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJvcmlnaW4sXG4iKTsKKwkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJhcHBseWRlbGF5XG4iKTsKKwl9CiAJZWxzZQot CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAnJXMnIEFTIHN1Ym9yaWdpblxuIiwgTE9H SUNBTFJFUF9PUklHSU5fQU5ZKTsKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi ICclcycgQVMgc3Vib3JpZ2luLFxuIiwgTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgMCBBUyBzdWJhcHBseWRlbGF5XG4iKTsKKwl9 CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJz Y3JpcHRpb24gc1xuIgpAQCAtNDUyMyw2ICs0NTMwLDcgQEAgZ2V0U3Vic2NyaXB0aW9ucyhB cmNoaXZlICpmb3V0KQogCWlfc3VidHdvcGhhc2VzdGF0ZSA9IFBRZm51bWJlcihyZXMsICJz dWJ0d29waGFzZXN0YXRlIik7CiAJaV9zdWJkaXNhYmxlb25lcnIgPSBQUWZudW1iZXIocmVz LCAic3ViZGlzYWJsZW9uZXJyIik7CiAJaV9zdWJvcmlnaW4gPSBQUWZudW1iZXIocmVzLCAi c3Vib3JpZ2luIik7CisJaV9zdWJhcHBseWRlbGF5ID0gUFFmbnVtYmVyKHJlcywgInN1YmFw cGx5ZGVsYXkiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoU3Vi c2NyaXB0aW9uSW5mbykpOwogCkBAIC00NTUzLDYgKzQ1NjEsOCBAQCBnZXRTdWJzY3JpcHRp b25zKEFyY2hpdmUgKmZvdXQpCiAJCXN1YmluZm9baV0uc3ViZGlzYWJsZW9uZXJyID0KIAkJ CXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJkaXNhYmxlb25lcnIpKTsKIAkJ c3ViaW5mb1tpXS5zdWJvcmlnaW4gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf c3Vib3JpZ2luKSk7CisJCXN1YmluZm9baV0uc3ViYXBwbHlkZWxheSA9CisJCQlzdHJ0b2k2 NChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJhcHBseWRlbGF5KSwgTlVMTCwgMTApOwogCiAJ CS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1w YWJsZU9iamVjdCgmKHN1YmluZm9baV0uZG9iaiksIGZvdXQpOwpAQCAtNDYzMiw2ICs0NjQy LDkgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRp b25JbmZvICpzdWJpbmZvKQogCWlmIChzdHJjbXAoc3ViaW5mby0+c3Vic3luY2NvbW1pdCwg Im9mZiIpICE9IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCBzeW5jaHJvbm91 c19jb21taXQgPSAlcyIsIGZtdElkKHN1YmluZm8tPnN1YnN5bmNjb21taXQpKTsKIAorCWlm IChzdWJpbmZvLT5zdWJhcHBseWRlbGF5ID4gMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksICIsIG1pbl9hcHBseV9kZWxheSA9ICciIElOVDY0X0ZPUk1BVCAiIG1zJyIsIHN1Ymlu Zm8tPnN1YmFwcGx5ZGVsYXkpOworCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIp O1xuIik7CiAKIAlpZiAoc3ViaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVG SU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDY5ZWU5MzlkNDQuLjkxYjczZTEwZDIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNjYxLDYgKzY2MSw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJz Y3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3ViZGlzYWJsZW9uZXJyOwogCWNoYXIJICAgKnN1 Ym9yaWdpbjsKIAljaGFyCSAgICpzdWJzeW5jY29tbWl0OworCWludDY0CQlzdWJhcHBseWRl bGF5OwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9uczsKIH0gU3Vic2NyaXB0aW9uSW5mbzsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCAzMjdhNjk0ODdiLi4wYmUxZDQ0ZTgxIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpA QCAtNjQ2OSw3ICs2NDY5LDcgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVy eU9wdCBteW9wdCA9IHBzZXQucG9wdDsKIAlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVf Y29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCWZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBAIC02NTExLDEwICs2 NTExLDEzIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGlzYWJsZSBvbiBlcnJvciIpKTsKIAorCQkv KiBvcmlnaW4gYW5kIG1pbl9hcHBseV9kZWxheSBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdjE2 IGFuZCBoaWdoZXIgKi8KIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQogCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJc biIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk9yaWdpbiIpKTsKKwkJCQkJCQkgICIsIHN1 Ym9yaWdpbiBBUyBcIiVzXCJcbiIKKwkJCQkJCQkgICIsIHN1YmFwcGx5ZGVsYXkgQVMgXCIl c1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJPcmlnaW4iKSwKKwkJCQkJCQkgIGdl dHRleHRfbm9vcCgiQXBwbHkgZGVsYXkiKSk7CiAKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKIAkJCQkJCSAgIiwgIHN1YnN5bmNjb21taXQgQVMgXCIlc1wiXG4iCmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMKaW5kZXggZjI2NWUwNDNlOS4uNDIwNzBmNzI0MCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YwpAQCAtMTg3Myw3ICsxODczLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRl eHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNB VElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNl IGlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnkpICYm IFRhaWxNYXRjaGVzKCJTRVQiLCAiKCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAi ZGlzYWJsZV9vbl9lcnJvciIsICJvcmlnaW4iLCAic2xvdF9uYW1lIiwKKwkJQ09NUExFVEVf V0lUSCgiYmluYXJ5IiwgImRpc2FibGVfb25fZXJyb3IiLCAib3JpZ2luIiwgIm1pbl9hcHBs eV9kZWxheSIsICJzbG90X25hbWUiLAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25v dXNfY29tbWl0Iik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBTS0lQICggKi8K IAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hB bnkpICYmIFRhaWxNYXRjaGVzKCJTS0lQIiwgIigiKSkKQEAgLTMxNTMsNyArMzE1Myw3IEBA IHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQp CiAJLyogQ29tcGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAo IDxvcHQ+IiAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBU SU9OIikgJiYgVGFpbE1hdGNoZXMoIldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJi aW5hcnkiLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLCAiY3JlYXRlX3Nsb3QiLAotCQkJCQkg ICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAib3JpZ2luIiwgInNsb3RfbmFtZSIs CisJCQkJCSAgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJvcmlnaW4iLCAibWlu X2FwcGx5X2RlbGF5IiwgInNsb3RfbmFtZSIsCiAJCQkJCSAgInN0cmVhbWluZyIsICJzeW5j aHJvbm91c19jb21taXQiLCAidHdvX3BoYXNlIik7CiAKIC8qIENSRUFURSBUUklHR0VSIC0t LSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IDdiOTg3MTRm MzAuLjM4OTRiOTdhY2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aApAQCAtNzAsNiArNzAsOCBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNj cmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCVhMb2dS ZWNQdHIJc3Vic2tpcGxzbjsJCS8qIEFsbCBjaGFuZ2VzIGZpbmlzaGVkIGF0IHRoaXMgTFNO IGFyZQogCQkJCQkJCQkgKiBza2lwcGVkICovCiAKKwlpbnQ2NAkJc3ViYXBwbHlkZWxheTsJ LyogUmVwbGljYXRpb24gYXBwbHkgZGVsYXkgKi8KKwogCU5hbWVEYXRhCXN1Ym5hbWU7CQkv KiBOYW1lIG9mIHRoZSBzdWJzY3JpcHRpb24gKi8KIAogCU9pZAkJCXN1Ym93bmVyIEJLSV9M T09LVVAocGdfYXV0aGlkKTsgLyogT3duZXIgb2YgdGhlIHN1YnNjcmlwdGlvbiAqLwpAQCAt MTE5LDYgKzEyMSw3IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCQkJCQkJCQkg KiBpbiAqLwogCVhMb2dSZWNQdHIJc2tpcGxzbjsJCS8qIEFsbCBjaGFuZ2VzIGZpbmlzaGVk IGF0IHRoaXMgTFNOIGFyZQogCQkJCQkJCQkgKiBza2lwcGVkICovCisJaW50NjQJCWFwcGx5 ZGVsYXk7CQkvKiBSZXBsaWNhdGlvbiBhcHBseSBkZWxheSAqLwogCWNoYXIJICAgKm5hbWU7 CQkJLyogTmFtZSBvZiB0aGUgc3Vic2NyaXB0aW9uICovCiAJT2lkCQkJb3duZXI7CQkJLyog T2lkIG9mIHRoZSBzdWJzY3JpcHRpb24gb3duZXIgKi8KIAlib29sCQllbmFibGVkOwkJLyog SW5kaWNhdGVzIGlmIHRoZSBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmggYi9zcmMvaW5jbHVkZS9kYXRh dHlwZS90aW1lc3RhbXAuaAppbmRleCBkMTU1ZjFiMDNiLi5kNWJiZmFkMWM0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9kYXRhdHlwZS90aW1lc3RhbXAuaAorKysgYi9zcmMvaW5jbHVk ZS9kYXRhdHlwZS90aW1lc3RhbXAuaApAQCAtMTI3LDYgKzEyNyw4IEBAIHN0cnVjdCBwZ19p dG1faW4KICNkZWZpbmUgU0VDU19QRVJfTUlOVVRFIDYwCiAjZGVmaW5lIE1JTlNfUEVSX0hP VVIJNjAKIAorI2RlZmluZSBNU0VDU19QRVJfREFZCUlOVDY0Q09OU1QoODY0MDAwMDApCisK ICNkZWZpbmUgVVNFQ1NfUEVSX0RBWQlJTlQ2NENPTlNUKDg2NDAwMDAwMDAwKQogI2RlZmlu ZSBVU0VDU19QRVJfSE9VUglJTlQ2NENPTlNUKDM2MDAwMDAwMDApCiAjZGVmaW5lIFVTRUNT X1BFUl9NSU5VVEUgSU5UNjRDT05TVCg2MDAwMDAwMCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3RpbWVzdGFtcC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmgK aW5kZXggZWRmM2E5NzMxOC4uOTE3MDkwMzVkYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvdGltZXN0YW1wLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmgK QEAgLTc4LDYgKzc4LDggQEAgZXh0ZXJuIGJvb2wgVGltZXN0YW1wRGlmZmVyZW5jZUV4Y2Vl ZHMoVGltZXN0YW1wVHogc3RhcnRfdGltZSwKIAkJCQkJCQkJCSAgIFRpbWVzdGFtcFR6IHN0 b3BfdGltZSwKIAkJCQkJCQkJCSAgIGludCBtc2VjKTsKIAorZXh0ZXJuIGludDY0IGludGVy dmFsX3RvX21zKGNvbnN0IEludGVydmFsICppbnRlcnZhbCk7CisKIGV4dGVybiBUaW1lc3Rh bXBUeiB0aW1lX3RfdG9fdGltZXN0YW1wdHoocGdfdGltZV90IHRtKTsKIGV4dGVybiBwZ190 aW1lX3QgdGltZXN0YW1wdHpfdG9fdGltZV90KFRpbWVzdGFtcFR6IHQpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggZWYwZWJmOTZi OS4uMTM1ZDU1NTcwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2Ny aXB0aW9uLm91dApAQCAtNzcsMTggKzc3LDE4IEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIG9y aWdpbiB2YWx1ZTogImZvbyIKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi NCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9O IHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlLCBvcmln aW4gPSBub25lKTsKIFdBUk5JTkc6ICB0YWJsZXMgd2VyZSBub3Qgc3Vic2NyaWJlZCwgeW91 IHdpbGwgaGF2ZSB0byBydW4gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJ Q0FUSU9OIHRvIHN1YnNjcmliZSB0aGUgdGFibGVzCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG5vbmUgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IEFwcGx5IGRlbGF5IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAg ICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8 ICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWI0IFNFVCAob3JpZ2luID0gYW55KTsKIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg QXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg ICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViMzsKQEAgLTk4LDEwICs5OCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVj dGlvbiBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25u ZWN0aW9uIGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRlc3RwdWIy LCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTE4LDEwICsxMTgsMTAg QEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0 ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJ UCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAg ICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBBcHBseSBkZWxheSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgIDAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQog KDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMTMwLDEwICsxMzAsMTAg QEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSBOT05F KTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAv MCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgZiAgICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBBcHBseSBkZWxheSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IGYgICAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg ICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAtMTY1LDEwICsxNjUsMTAg QEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUIChzeW5jaHJv bm91c19jb21taXQgPSBmb29iYXIpOwogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJh bWV0ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6ICJmb29iYXIiCiBISU5UOiAgQXZhaWxhYmxl IHZhbHVlczogbG9jYWwsIHJlbW90ZV93cml0ZSwgcmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgZiAg ICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwg MC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBBcHBseSBkZWxheSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgZiAgICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgMCB8IGxvY2Fs ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgx IHJvdykKIAogLS0gcmVuYW1lIGJhY2sgdG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTIw MSwxOSArMjAxLDE5IEBAIEVSUk9SOiAgYmluYXJ5IHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1 ZQogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNv bm5lY3QgPSBmYWxzZSwgYmluYXJ5ID0gdHJ1ZSk7CiBXQVJOSU5HOiAgdGFibGVzIHdlcmUg bm90IHN1YnNjcmliZWQsIHlvdSB3aWxsIGhhdmUgdG8gcnVuIEFMVEVSIFNVQlNDUklQVElP TiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiB0byBzdWJzY3JpYmUgdGhlIHRhYmxlcwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAg ICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBB cHBseSBkZWxheSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IGYgICAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAg ICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSBy b3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTIyNCwxOSAr MjI0LDE5IEBAIEVSUk9SOiAgc3RyZWFtaW5nIHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZQog Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5l Y3QgPSBmYWxzZSwgc3RyZWFtaW5nID0gdHJ1ZSk7CiBXQVJOSU5HOiAgdGFibGVzIHdlcmUg bm90IHN1YnNjcmliZWQsIHlvdSB3aWxsIGhhdmUgdG8gcnVuIEFMVEVSIFNVQlNDUklQVElP TiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiB0byBzdWJzY3JpYmUgdGhlIHRhYmxlcwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IHQgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBB cHBseSBkZWxheSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHQgICAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAg ICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMjUx LDEwICsyNTEsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQg UFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0 cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVz dHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBm ICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRp b24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IGYg ICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVz ZWQgbW9yZSB0aGVuIG9uY2UKQEAgLTI2OSwxMCArMjY5LDEwIEBAIEVSUk9SOiAgcHVibGlj YXRpb24gInRlc3RwdWIzIiBpcyBub3QgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3Rz dWIiCiAtLSBvayAtIGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lU SCAocmVmcmVzaCA9IGZhbHNlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTMwNiwxMCArMzA2LDEwIEBAIEVS Uk9SOiAgdHdvX3BoYXNlIHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZQogQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg dHdvX3BoYXNlID0gdHJ1ZSk7CiBXQVJOSU5HOiAgdGFibGVzIHdlcmUgbm90IHN1YnNjcmli ZWQsIHlvdSB3aWxsIGhhdmUgdG8gcnVuIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVT SCBQVUJMSUNBVElPTiB0byBzdWJzY3JpYmUgdGhlIHRhYmxlcwogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBBcHBseSBkZWxheSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8IHAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgIDAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK ICgxIHJvdykKIAogLS1mYWlsIC0gYWx0ZXIgb2YgdHdvX3BoYXNlIG9wdGlvbiBub3Qgc3Vw cG9ydGVkLgpAQCAtMzE4LDEwICszMTgsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vi c2NyaXB0aW9uIHBhcmFtZXRlcjogInR3b19waGFzZSIKIC0tIGJ1dCBjYW4gYWx0ZXIgc3Ry ZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJsZWQKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAgfCBwICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAo MSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90 X25hbWUgPSBOT05FKTsKQEAgLTMzMCwxMCArMzMwLDEwIEBAIERST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjsKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04g dGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHRydWUsIHR3b19w aGFzZSA9IHRydWUpOwogV0FSTklORzogIHRhYmxlcyB3ZXJlIG5vdCBzdWJzY3JpYmVkLCB5 b3Ugd2lsbCBoYXZlIHRvIHJ1biBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVC TElDQVRJT04gdG8gc3Vic2NyaWJlIHRoZSB0YWJsZXMKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAgfCBw ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAgfCBwICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25h bWUgPSBOT05FKTsKQEAgLTM0NSwxOCArMzQ1LDQ3IEBAIEVSUk9SOiAgZGlzYWJsZV9vbl9l cnJvciByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcg UFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGRpc2FibGVfb25f ZXJyb3IgPSBmYWxzZSk7CiBXQVJOSU5HOiAgdGFibGVzIHdlcmUgbm90IHN1YnNjcmliZWQs IHlvdSB3aWxsIGhhdmUgdG8gcnVuIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQ VUJMSUNBVElPTiB0byBzdWJzY3JpYmUgdGhlIHRhYmxlcwogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBBcHBseSBkZWxheSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgIDAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2Fi bGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAg ICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisoMSByb3cpCisKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsK K0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIGZhaWwgLS0gbWluX2Fw cGx5X2RlbGF5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg bWluX2FwcGx5X2RlbGF5ID0gZm9vKTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZXJ2YWw6ICJmb28iCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkg PSAtMSk7CitFUlJPUjogIG9wdGlvbiAibWluX2FwcGx5X2RlbGF5IiBtdXN0IG5vdCBiZSBu ZWdhdGl2ZQorLS0gc3VjY2VzcyAtLSAxMjMgcworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2Rl bGF5ID0gMTIzKTsKK1dBUk5JTkc6ICB0YWJsZXMgd2VyZSBub3Qgc3Vic2NyaWJlZCwgeW91 IHdpbGwgaGF2ZSB0byBydW4gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJ Q0FUSU9OIHRvIHN1YnNjcmliZSB0aGUgdGFibGVzCitcZFJzKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgQXBwbHkgZGVsYXkgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgMTIzMDAwIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisoMSByb3cpCisKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05F KTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIHN1Y2Nlc3MgLS0g aW50ZXJ2YWwgaXMgY29udmVydGVkIGludG8gbXMgYW5kIHN0b3JlZCBhcyBpbnRlZ2VyCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CitXQVJOSU5H OiAgdGFibGVzIHdlcmUgbm90IHN1YnNjcmliZWQsIHlvdSB3aWxsIGhhdmUgdG8gcnVuIEFM VEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTiB0byBzdWJzY3JpYmUg dGhlIHRhYmxlcworXGRScysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IEFwcGx5IGRlbGF5IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg ZiAgICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCAgICAxNjA1NTAwMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCA0NDI1ZmFmYzQ2Li5mYmE0MjIzYWE4IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTI2NCw2ICsyNjQsMjYg QEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25f ZXJyb3IgPSB0cnVlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjsKIAorLS0gZmFpbCAtLSBtaW5fYXBwbHlfZGVsYXkgbXVzdCBiZSBhIG5vbi1uZWdhdGl2 ZSBpbnRlZ2VyCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNU SU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIg V0lUSCAoY29ubmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSBmb28pOworQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgbWluX2FwcGx5X2RlbGF5ID0gLTEpOworCistLSBzdWNjZXNzIC0tIDEyMyBzCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAxMjMpOworCitcZFJzKworCitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CisKKy0tIHN1Y2Nlc3MgLS0gaW50 ZXJ2YWwgaXMgY29udmVydGVkIGludG8gbXMgYW5kIHN0b3JlZCBhcyBpbnRlZ2VyCitDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CisKK1xkUnMrCisK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBO T05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKwogUkVTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXkucGwgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXkucGwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uNGYwMjIyM2Q0ZAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5wbApAQCAtMCwwICsxLDEy OSBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKworIyBUZXN0IHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5Cit1c2Ugc3Ry aWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBDcmVh dGUgcHVibGlzaGVyIG5vZGUuCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0 KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+YXBw ZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJJ2xvZ2ljYWxfZGVjb2Rpbmdfd29ya19t ZW0gPSA2NGtCJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJz Y3JpYmVyIG5vZGUuCitteSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0Owor JG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJImxv Z19taW5fbWVzc2FnZXMgPSBkZWJ1ZzIiKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0Owor CisjIENyZWF0ZSBzb21lIHByZWV4aXN0aW5nIGNvbnRlbnQgb24gcHVibGlzaGVyLgorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRl c3RfdGFiIChhIGludCBwcmltYXJ5IGtleSwgYiB2YXJjaGFyKSIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVzdF90YWIgVkFM VUVTICgxLCAnZm9vJyksICgyLCAnYmFyJykiKTsKKworIyBTZXR1cCBzdHJ1Y3R1cmUgb24g c3Vic2NyaWJlci4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJDUkVBVEUgVEFCTEUgdGVzdF90YWIgKGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQsIGMg dGltZXN0YW1wdHogREVGQVVMVCBub3coKSwgZCBiaWdpbnQgREVGQVVMVCA5OTkpIgorKTsK KworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uLgorbXkgJHB1Ymxpc2hlcl9jb25uc3Ry ID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FU SU9OIHRhcF9wdWIgRk9SIFRBQkxFIHRlc3RfdGFiIik7CisKK215ICRhcHBuYW1lID0gJ3Rh cF9zdWInOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNS RUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5z dHIgYXBwbGljYXRpb25fbmFtZT0kYXBwbmFtZScgUFVCTElDQVRJT04gdGFwX3B1YiBXSVRI IChzdHJlYW1pbmcgPSBvbiwgbWluX2FwcGx5X2RlbGF5ID0gJzJzJykiCispOworCisjIFdh aXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2guCiskbm9kZV9zdWJzY3JpYmVy LT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICRhcHBuYW1l KTsKKworIyBDaGVjayBsb2cgc3RhcnRpbmcgbm93IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9u IGFwcGx5IGRlbGF5LgorbXkgJGxvZ19sb2NhdGlvbiA9IC1zICRub2RlX3N1YnNjcmliZXIt PmxvZ2ZpbGU7CisKK215ICRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9N IHRlc3RfdGFiIik7CitpcygkcmVzdWx0LCBxcSgyfDF8MiksICdjaGVjayBpbml0aWFsIGRh dGEgd2FzIGNvcGllZCB0byBzdWJzY3JpYmVyJyk7CisKKyMgTmV3IHJvdyB0byB0cmlnZ2Vy IGFwcGx5IGRlbGF5LgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiSU5TRVJUIElOVE8gdGVzdF90YWIgVkFMVUVTICgzLCAnYmF6JykiKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlc3RfdGFi IFZBTFVFUyAoNCwgJ2FiYycpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMgKDUsICdkZWYnKSIpOwor Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJGFwcG5hbWUpOworCiskcmVz dWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0ZXN0X3RhYiIpOworaXMoJHJl c3VsdCwgcXEoNXwxfDUpLCAnY2hlY2sgaWYgdGhlIG5ldyByb3dzIHdlcmUgYXBwbGllZCB0 byBzdWJzY3JpYmVyJyk7CisKK2NoZWNrX2FwcGx5X2RlbGF5X2xvZygibG9naWNhbCByZXBs aWNhdGlvbiBhcHBseSBkZWxheSIpOworCisjIFRlc3Qgc3RyZWFtZWQgdHJhbnNhY3Rpb24u CisjIEluc2VydCwgdXBkYXRlIGFuZCBkZWxldGUgZW5vdWdoIHJvd3MgdG8gZXhjZWVkIDY0 a0IgbGltaXQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBx eworQkVHSU47CitJTlNFUlQgSU5UTyB0ZXN0X3RhYiBTRUxFQ1QgaSwgbWQ1KGk6OnRleHQp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDYsIDUwMDApIHMoaSk7CitVUERBVEUgdGVzdF90YWIg U0VUIGIgPSBtZDUoYikgV0hFUkUgbW9kKGEsMikgPSAwOworREVMRVRFIEZST00gdGVzdF90 YWIgV0hFUkUgbW9kKGEsMykgPSAwOworQ09NTUlUOworfSk7CisKKyRub2RlX3B1Ymxpc2hl ci0+d2FpdF9mb3JfY2F0Y2h1cCgkYXBwbmFtZSk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBt aW4oYSksIG1heChhKSBGUk9NIHRlc3RfdGFiIik7CitpcygkcmVzdWx0LCBxcSgzMzM0fDF8 NTAwMCksICdjaGVjayBpZiB0aGUgbmV3IHJvd3Mgd2VyZSBhcHBsaWVkIHRvIHN1YnNjcmli ZXInKTsKKworY2hlY2tfYXBwbHlfZGVsYXlfbG9nKCJsb2dpY2FsIHJlcGxpY2F0aW9uIGFw cGx5IGRlbGF5Iik7CisKKyMgVGVzdCBBTFRFUiBTVUJTQ1JJUFRJT04uIERlbGF5IDg2NDYw IHNlY29uZHMgKDEgZGF5IDEgbWludXRlKS4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1YiBTRVQgKG1pbl9h cHBseV9kZWxheSA9IDg2NDYwKSIKKyk7CisKKyMgTmV3IHJvdyB0byB0cmlnZ2VyIGFwcGx5 IGRlbGF5LgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5T RVJUIElOVE8gdGVzdF90YWIgVkFMVUVTICgwLCAnZm9vYmFyJykiKTsKKworIyBEaXNhYmxl IHN1YnNjcmlwdGlvbi4gd29ya2VyIHNob3VsZCBkaWUgaW1tZWRpYXRlbHkuCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9O IHRhcF9zdWIgRElTQUJMRSIKKyk7CisKKyMgV2FpdCB1bnRpbCB3b3JrZXIgZGllcy4KK215 ICRzdWJfcXVlcnkgPQorICAiU0VMRUNUIGNvdW50KDEpID0gMCBGUk9NIHBnX3N0YXRfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAndGFwX3N1YicgQU5EIHBpZCBJUyBOT1QgTlVM TDsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAk c3ViX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJz Y3JpYmVyIHRvIGRpZSI7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3A7Ciskbm9kZV9wdWJs aXNoZXItPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOworCitzdWIgY2hlY2tfYXBwbHlfZGVs YXlfbG9nCit7CisJbXkgJG1lc3NhZ2UgICAgICAgICAgPSBzaGlmdDsKKwlteSAkb2xkX2xv Z19sb2NhdGlvbiA9ICRsb2dfbG9jYXRpb247CisKKwkkbG9nX2xvY2F0aW9uID0gJG5vZGVf c3Vic2NyaWJlci0+d2FpdF9mb3JfbG9nKHFyLyRtZXNzYWdlLywgJGxvZ19sb2NhdGlvbik7 CisKKwljbXBfb2soJGxvZ19sb2NhdGlvbiwgJz4nLCAkb2xkX2xvZ19sb2NhdGlvbiwKKwkJ ImxvZ2ZpbGUgY29udGFpbnMgdHJpZ2dlcmVkIGxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkg ZGVsYXkiCisJKTsKK30KLS0gCjIuMzAuMgoK --7e38a69add054c05ac95bfb8ccf600a6--