<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>196870</bug_id>
          
          <creation_ts>2019-04-12 11:24:02 -0700</creation_ts>
          <short_desc>Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages</short_desc>
          <delta_ts>2023-12-10 10:26:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>266189</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1526839</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 11:24:02 -0700</bug_when>
    <thetext>Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526858</commentid>
    <comment_count>1</comment_count>
      <attachid>367337</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 11:51:49 -0700</bug_when>
    <thetext>Created attachment 367337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526861</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 11:52:36 -0700</bug_when>
    <thetext>@wilander, this should take care of your issue with HTTPS ping loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526876</commentid>
    <comment_count>3</comment_count>
      <attachid>367337</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-04-12 12:26:57 -0700</bug_when>
    <thetext>Comment on attachment 367337
Patch

Nice. Could you add a Ping layout test with testRunner.setAllowsAnySSLCertificate(true) and the ping endpoint as https? Should be easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526915</commentid>
    <comment_count>4</comment_count>
      <attachid>367347</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 14:53:00 -0700</bug_when>
    <thetext>Created attachment 367347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526916</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 14:53:23 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #3)
&gt; Comment on attachment 367337 [details]
&gt; Patch
&gt; 
&gt; Nice. Could you add a Ping layout test with
&gt; testRunner.setAllowsAnySSLCertificate(true) and the ping endpoint as https?
&gt; Should be easy.

Yep, probably need to terminate network process and then do a ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526923</commentid>
    <comment_count>6</comment_count>
      <attachid>367351</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-12 15:45:47 -0700</bug_when>
    <thetext>Created attachment 367351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529424</commentid>
    <comment_count>7</comment_count>
      <attachid>367351</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 15:10:59 -0700</bug_when>
    <thetext>Comment on attachment 367351
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=367351&amp;action=review

I think this needs an API test that verifies this delegate is being called under the correct circumstances and the credentials are used as expected.

&gt; Source/WebKit/NetworkProcess/PingLoad.cpp:135
&gt; -        completionHandler(AuthenticationChallengeDisposition::PerformDefaultHandling, { });
&gt; +        m_networkLoadChecker-&gt;networkProcess().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.sessionID, 0, 0, challenge, WTFMove(completionHandler));

We almost certainly don&apos;t want ping loads to handle authentication challenges.  Then there would be random popups asking for credentials.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:82
&gt; +        case NSURLSessionAuthChallengeUseCredential:

This is duplicate code with NavigationState.mm

&gt; LayoutTests/ChangeLog:8
&gt; +        * http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html:

Wouldn&apos;t this changed test have passed before because we performed default behavior?  Now we&apos;re just performing default behavior in a different place, so this test does not verify the change works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529430</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 15:12:15 -0700</bug_when>
    <thetext>Challenge.mm has a growing number of similar authentication unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529451</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-22 16:25:13 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 367351 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=367351&amp;action=review
&gt; 
&gt; I think this needs an API test that verifies this delegate is being called
&gt; under the correct circumstances and the credentials are used as expected.

I&apos;ll add one.
 
&gt; &gt; Source/WebKit/NetworkProcess/PingLoad.cpp:135
&gt; &gt; -        completionHandler(AuthenticationChallengeDisposition::PerformDefaultHandling, { });
&gt; &gt; +        m_networkLoadChecker-&gt;networkProcess().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.sessionID, 0, 0, challenge, WTFMove(completionHandler));
&gt; 
&gt; We almost certainly don&apos;t want ping loads to handle authentication
&gt; challenges.  Then there would be random popups asking for credentials.

This is limited to server trust evaluation, there is no need to ask user for credentials.
There might be a need for prompt to ask whether user trusts the site or not, but this is really an application decision.
Overall, the design I see is that this additional delegate would only be about asking whether the given certificate is already granted, not whether user is granting it.

Also, ping loads are no different from service worker fetches in that respect.
In the future, ping loads might just be regular fetch until their context is destroyed.
See https://bugs.webkit.org/show_bug.cgi?id=196807

&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        * http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html:
&gt; 
&gt; Wouldn&apos;t this changed test have passed before because we performed default
&gt; behavior?  Now we&apos;re just performing default behavior in a different place,
&gt; so this test does not verify the change works.

Before the patch, the test would be broken.
By killing the network process, we are sure there is no connection.
The ping triggers a new connection, thus a server trust evaluation.
The default behavior will be done in network process and will cancel the creation of the connection.
After the patch, we go to UIProcess and ask WTR whether to proceed with the load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529522</commentid>
    <comment_count>10</comment_count>
      <attachid>368012</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-22 22:05:33 -0700</bug_when>
    <thetext>Created attachment 368012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529592</commentid>
    <comment_count>11</comment_count>
      <attachid>368033</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-23 08:30:52 -0700</bug_when>
    <thetext>Created attachment 368033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563206</commentid>
    <comment_count>12</comment_count>
      <attachid>368033</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-20 12:55:27 -0700</bug_when>
    <thetext>Comment on attachment 368033
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=368033&amp;action=review

&gt; Source/WebKit/NetworkProcess/PingLoad.cpp:151
&gt; +        m_networkLoadChecker-&gt;networkProcess().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.sessionID, 0, 0, challenge, WTFMove(completionHandler));

This needs rebasing.  The 0&apos;s are now empty identifiers.  We might need to make them nullopt&apos;s.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:54
&gt; +        , m_hasAuthenticationChallengeSelector([m_delegate.get() respondsToSelector:@selector(didReceiveAuthenticationChallenge: completionHandler:)])

extra space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563996</commentid>
    <comment_count>13</comment_count>
      <attachid>376999</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-22 02:09:03 -0700</bug_when>
    <thetext>Created attachment 376999
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564016</commentid>
    <comment_count>14</comment_count>
      <attachid>376999</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-22 04:05:18 -0700</bug_when>
    <thetext>Comment on attachment 376999
Patch for landing

Clearing flags on attachment: 376999

Committed r249001: &lt;https://trac.webkit.org/changeset/249001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564017</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-22 04:05:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564021</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-22 04:06:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/54593556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564462</commentid>
    <comment_count>17</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-08-23 08:29:26 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/249001/webkit

caused this test to fail constantly: imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html

it was a flakey failure before. The diff makes it look like this is just a rebasline, can you confirm? 

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fwebsocket-in-service-worker.https.html

Diff:
--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-actual.txt
@@ -1,3 +1,3 @@
 
-FAIL Verify WebSockets can be created in a Service Worker assert_equals: expected &quot;PASS&quot; but got &quot;FAIL: Got an error event&quot;
+PASS Verify WebSockets can be created in a Service Worker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564571</commentid>
    <comment_count>18</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-08-23 13:23:28 -0700</bug_when>
    <thetext>Reverted r249001 for reason:

Caused one layout test to fail on all configurations and another to time out on Catalina / iOS 13.

Committed r249063: &lt;https://trac.webkit.org/changeset/249063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564920</commentid>
    <comment_count>19</comment_count>
      <attachid>377238</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 05:23:41 -0700</bug_when>
    <thetext>Created attachment 377238
Relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564922</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 05:54:50 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #18)
&gt; Reverted r249001 for reason:
&gt; 
&gt; Caused one layout test to fail on all configurations and another to time out
&gt; on Catalina / iOS 13.

Layout test was going from FAIL to PASS.
The other test was updated to cope with the more accurate handling of window.testRunner.setAllowsAnySSLCertificate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564923</commentid>
    <comment_count>21</comment_count>
      <attachid>377238</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 05:57:28 -0700</bug_when>
    <thetext>Comment on attachment 377238
Relanding

Rejecting attachment 377238 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 377238, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/12968665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564925</commentid>
    <comment_count>22</comment_count>
      <attachid>377241</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 06:00:13 -0700</bug_when>
    <thetext>Created attachment 377241
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564942</commentid>
    <comment_count>23</comment_count>
      <attachid>377241</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 08:00:12 -0700</bug_when>
    <thetext>Comment on attachment 377241
Patch for landing

Clearing flags on attachment: 377241

Committed r249096: &lt;https://trac.webkit.org/changeset/249096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564943</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 08:00:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367337</attachid>
            <date>2019-04-12 11:51:49 -0700</date>
            <delta_ts>2019-04-12 14:52:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196870-20190412115148.patch</filename>
            <type>text/plain</type>
            <size>23902</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEwZTY1OWJiOTQwYmViNTQ2
MDRjOTYyMjU3NGZkYTUxMjM1Yjk4OGMuLjdiNWU3YzQ5OWY1Mzk1MjVmZGE2YmM1ZTliMTgxMzJj
ZTY2MjkxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMDQtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBOZXR3b3JrUHJvY2VzcyBwcm92aWRlIHRoZSBzZXNzaW9uIElEIGZvciBh
bnkgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIG5v
IGFzc29jaWF0ZWQgcGFnZSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBvciB0aGlz
IGlzIHJlbGF0ZWQgdG8gYSBzZXJ2aWNlIHdvcmtlciwKKyAgICAgICAgYXNrIHRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gdGFrZSBhIGRlY2lzaW9uLgorICAgICAgICBBZGQgd2Vic2l0ZSBkYXRh
IHN0b3JlIGRlbGVnYXRlIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHRoZSBkZWNpc2lv
bi4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgor
CisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNl
aXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgIChXZWJzaXRlRGF0YVN0
b3JlQ2xpZW50OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50KToKKyAgICAgICAgKFdlYnNpdGVEYXRh
U3RvcmVDbGllbnQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOgorCiAyMDE5LTA0LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2Ugbm9ybWFsIGxvYWRpbmcgcGF0aCBmb3IgcGluZyBsb2FkcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwCmluZGV4IGJlZjhkMDZlZTE4ZDVmZjBkY2ZmYzEwMzY4MjlhNzE0OTdj
YjRjNGUuLjQ2Y2M3MDliMGJhY2Q0NDM4ZjZlNTVjNDA0YTY3NDE0YWIwNzc4ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0
aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1f
cGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNh
dGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0
ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnBhZ2VJRCwgbV9wYXJhbWV0ZXJzLmZyYW1lSUQs
IGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwCmluZGV4IDNlNWFkYWYxMWI5Y2Q3N2I5NjA3ZjgzOWZmMDkyMjhjY2YwZTY3
OTQuLjczZDAxZThkNmZhZTlmYjkyMWE1MDVkY2Q4N2RhOWI2YmQ0NzViNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTE0NCw0
ICsxNDQsOSBAQCBTdHJpbmcgTmV0d29ya0RhdGFUYXNrOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKK1BBTDo6U2Vzc2lvbklEIE5ldHdvcmtEYXRh
VGFzazo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uLT5zZXNzaW9u
SUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCBjZTdiMmFkNTA2MzY1YTQzMjhiYTU3
M2FmMTYxNzA5NjBiYWJmYmNhLi45NGY0MDY1ZDcyMmNkN2IwOGVlN2ZkYWM2MGJkYzYxNmU2ZjQ3
MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC0xMjgsNiArMTI5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZGVz
Y3JpcHRpb24oKSBjb25zdDsKIAorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5k
ZXggM2E2ZmExMGNmOWY3ZWQ0YmZjZDgzZDBiYTI3NDY4ZWIyMzE3MDYwYi4uMzk5NGM3N2RkMTFm
YjEwM2JjZDZkNTEzZWY0YWNiODQ3ZjRhNDkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIE5ldHdvcmtM
b2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxl
bmdlLCBDaGFsbAogICAgIGlmIChhdXRvKiBwZW5kaW5nRG93bmxvYWQgPSBtX3Rhc2stPnBlbmRp
bmdEb3dubG9hZCgpKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1h
bmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnBlbmRpbmdEb3dubG9h
ZCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV90YXNrLT5zZXNzaW9uSUQoKSwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNwb25zZUNvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCA4MjlmN2MyMDI0ODViNzNhYTZiOTM4
NjQ4YmU5Zjk2ZDc1YjE3ZDVkLi4wZmQ2YjM4NTI2ZjczNzg5YjQ1MzliMWRkN2MzZmY3NzI0NGQw
MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisgICAg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vz
czsgfQorCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAg
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDI5Njg1ZTdlNTlmNzMzZDI5
OTM2YTUwMTM2ZmY5MjU3NjQ4YWQ4ZTYuLmI3NjkzYzBjNWY1YTZlM2ZmMDIyNjY4YTAxOGIxOTBh
MDM2ODczYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBA
IC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgQ2hhbGxlbmcKIHsKICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7CiAgICAgaWYgKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsIHsgfSk7CisgICAgICAgIG1fbmV0d29ya0xv
YWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBjaGFs
bGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggMjZlMTE4MmMxY2NkMDVlZGY2OWI3Mzk1MWM2NWU3ZjUxOWFkNzk3MS4uMWExYjU2OTk2
ZjAyZGJiOWRlYjUyOTRlMmNhN2I1ZjA1MzVhY2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0zMCw2
ICszMCw3IEBACiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1w
b3J0ICJXS0hUVFBDb29raWVTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TQXJyYXkuaCIK
KyNpbXBvcnQgIldLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCkBAIC0zOCw2ICszOSw3IEBACiAjaW1wb3J0ICJX
ZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgiCisj
aW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbXBvcnQgPFdlYktpdC9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0
Zi9VUkwuaD4KQEAgLTQ4LDYgKzUwLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFdlYnNpdGVE
YXRhU3RvcmVDbGllbnQoaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gZGVsZWdhdGUp
CiAgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKICAgICAgICAgLCBtX2hhc1JlcXVlc3RT
dG9yYWdlU3BhY2VTZWxlY3RvcihbbV9kZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHJlcXVlc3RTdG9yYWdlU3BhY2U6IGZyYW1lT3JpZ2luOiBxdW90YTogY3VycmVu
dFNpemU6IHNwYWNlUmVxdWlyZWQ6IGRlY2lzaW9uSGFuZGxlcjopXSkKKyAgICAgICAgLCBtX2hh
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VsZWN0b3IoW21fZGVsZWdhdGUuZ2V0KCkgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
IGNvbXBsZXRpb25IYW5kbGVyOildKQogICAgIHsKICAgICB9CiAKQEAgLTczLDggKzc2LDQzIEBA
IHByaXZhdGU6CiAgICAgICAgIFttX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpIHJlcXVlc3RT
dG9yYWdlU3BhY2U6bWFpbkZyYW1lVVJMIGZyYW1lT3JpZ2luOmZyYW1lVVJMIHF1b3RhOnF1b3Rh
IGN1cnJlbnRTaXplOmN1cnJlbnRTaXplIHNwYWNlUmVxdWlyZWQ6c3BhY2VSZXF1aXJlZCBkZWNp
c2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICB9CiAKKyAgICBzdGF0aWMg
V2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uIHRvQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
b24gZGlzcG9zaXRpb24pCisgICAgeworICAgICAgICBzd2l0Y2ggKGRpc3Bvc2l0aW9uKSB7Cisg
ICAgICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWw6CisgICAg
ICAgICAgICByZXR1cm4gV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9u
OjpVc2VDcmVkZW50aWFsOworICAgICAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQ
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgorICAgICAgICAgICAgcmV0dXJuIFdlYktpdDo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKKyAg
ICAgICAgY2FzZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6CisgICAgICAgICAgICByZXR1cm4gV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uOjpDYW5jZWw7CisgICAgICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0aENo
YWxsZW5nZVJlamVjdFByb3RlY3Rpb25TcGFjZToKKyAgICAgICAgICAgIHJldHVybiBXZWJLaXQ6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFj
ZUFuZENvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJJbnZhbGlkIE5TVVJMU2Vzc2lvbkF1dGhD
aGFsbGVuZ2VEaXNwb3NpdGlvbiAoJWxkKSIsIChsb25nKWRpc3Bvc2l0aW9uXTsKKyAgICB9CisK
KyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZWY8V2ViS2l0OjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkgZmluYWwKKyAgICB7Cisg
ICAgICAgIGlmICghbV9oYXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbGVjdG9yIHx8ICFtX2Rl
bGVnYXRlKSB7CisgICAgICAgICAgICBjaGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFs
bGVuZ2UoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3Jt
RGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGF1dG8gbnNVUkxDaGFsbGVuZ2UgPSB3cmFwcGVyKGNoYWxsZW5nZSk7CisgICAgICAgIGF1
dG8gY2hlY2tlciA9IFdlYktpdDo6Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KG1fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCksIEBzZWxlY3RvcihkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6IGNvbXBsZXRpb25IYW5kbGVyOikpOworICAgICAgICBhdXRvIGNv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjaGFsbGVuZ2UgPSBXVEZNb3ZlKGNoYWxs
ZW5nZSksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNC
ZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY2hlY2tl
ci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBjaGFsbGVuZ2UtPmxp
c3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UodG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uKGRpc3Bvc2l0aW9uKSwgV2ViQ29yZTo6Q3JlZGVudGlhbChjcmVkZW50aWFsKSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIFttX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpuc1VSTENoYWxsZW5nZSBjb21wbGV0aW9uSGFu
ZGxlcjpjb21wbGV0aW9uSGFuZGxlci5nZXQoKV07CisgICAgfQorCiAgICAgV2Vha09iakNQdHI8
aWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gPiBtX2RlbGVnYXRlOwogICAgIGJvb2wg
bV9oYXNSZXF1ZXN0U3RvcmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9OworICAgIGJvb2wgbV9o
YXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbGVjdG9yIHsgZmFsc2UgfTsKIH07CiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS1dlYnNpdGVEYXRhU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
aAppbmRleCA5YjBlNzE3MTBjYzJiOWE0ZWJiNGNhZmQyMGVlMzg3YmE0YmFkNzdkLi5kYzQxMjg4
MTFhMmRiZjc2MjE4MTlhZTVjMDE2YTBlMTEyNDk3Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5oCkBAIC0zNCw0ICszNCw2IEBAIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIAogLSAodm9pZClyZXF1ZXN0U3RvcmFnZVNwYWNlOihO
U1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjooTlNVUkwgKilmcmFtZVVSTCBxdW90YToo
TlNVSW50ZWdlcilxdW90YSBjdXJyZW50U2l6ZTooTlNVSW50ZWdlciljdXJyZW50U2l6ZSBzcGFj
ZVJlcXVpcmVkOihOU1VJbnRlZ2VyKXNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAorLSAodm9p
ZClkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFs
ICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcjsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggYzZiMDIwYzU2OTJmZTcyMzAxYTJhZmYyMjAzMWY5ODBhNTMwZjRjNy4uODZkNjNmOWZmZDYz
MWIzYzU5OGNkNjc2NzMzZTIyYjZmOGEyMDQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgorI2luY2x1ZGUgIlNlY0tleVByb3h5U3RvcmUuaCIKICNpbmNsdWRlICJTaG91bGRH
cmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgi
CiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCIKQEAgLTMwOCwyMCArMzA5
LDM3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxl
bmdlSUQpCiB7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGlmIChhdXRvKiBzZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5RnJvbVBhZ2VJRChwYWdlSUQpKSB7Ci0gICAgICAgIGF1dG8gYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShj
b3JlQ2hhbGxlbmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIG51bGxw
dHIpOwotICAgICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LT5kaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICBXZWFrUHRyPFNlY0tleVByb3h5U3Rv
cmU+IHNlY0tleVByb3h5U3RvcmU7CisjaWYgSEFWRShTRUNfS0VZX1BST1hZKQorICAgIGlmIChj
b3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVl
c3RlZCkgeworICAgICAgICBpZiAoYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNl
c3Npb25JRChzZXNzaW9uSUQpKSB7CisgICAgICAgICAgICBhdXRvIG5ld1NlY0tleVByb3h5U3Rv
cmUgPSBTZWNLZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHNlY0tleVByb3h5
U3RvcmUgPSBtYWtlV2Vha1B0cihuZXdTZWNLZXlQcm94eVN0b3JlLmdldCgpKTsKKyAgICAgICAg
ICAgIHN0b3JlLT5hZGRTZWNLZXlQcm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9y
ZSkpOworICAgICAgICB9CiAgICAgfQogI2VuZGlmCisgICAgYXV0byBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNv
cmVDaGFsbGVuZ2UpLCBjaGFsbGVuZ2VJRCwgbWFrZVJlZigqY29ubmVjdGlvbigpKSwgV1RGTW92
ZShzZWNLZXlQcm94eVN0b3JlKSk7CiAKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKLSAgICBNRVNTQUdFX0NIRUNLKHBhZ2UpOworICAg
IGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBNRVNT
QUdFX0NIRUNLKHBhZ2UgfHwgIXBhZ2VJRCk7CiAKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29y
ZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBwYWdlLT5z
ZWNLZXlQcm94eVN0b3JlKGNvcmVDaGFsbGVuZ2UpKTsKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21Q
YWdlSUQocGFnZUlEKSkKKyAgICAgICAgcGFnZSA9IG51bGxwdHI7CisjZW5kaWYKKworICAgIGlm
ICghcGFnZSkgeworICAgICAgICBhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVGcm9tU2Vz
c2lvbklEKHNlc3Npb25JRCk7CisgICAgICAgIGlmICghc3RvcmUpIHsKKyAgICAgICAgICAgIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0b3JlLT5jbGllbnQoKS5k
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIHBhZ2UtPmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KGZyYW1lSUQsIFdURk1vdmUoYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBkYWNlZWFlYmFiNDczNmRmMWQyMmE3
ODFiYzE2OWI1Yjg4N2U5MDI3Li4wM2I2Zjc2N2E0YTAxMjA4NzE4MDU3YTc0ZjU4YWM1ZDY3ZmFi
NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaApAQCAtMjEwLDcgKzIxMCw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1
aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hhbGxlbmdl
SUQpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBj
b25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0
X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
dWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
YmU5OGU2NjYzMGZhZDc5MDYxMDkyMGNlZjg1Mjc1ZGM5N2FkMWYxZC4uOWZiNGNmZGViYmNlZmJi
NzRlNDk5ZjZmZjkwOTkwOWQzNjBkN2FjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
SVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogCi0gICAgRGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCkKKyAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdl
SUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAgIERpZERlbGV0ZVdlYnNpdGVE
YXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGYxZmYyZjFmMjU2ZjA4YzQz
Mjc2MGQ5NTY5M2E4YjZhNGVlODcxZDQuLjBjYjc5YmYyMDBhNjg4NzAwMmQ1NzI2Mzg5NjM2MWJl
ZDcyYjk2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC05MCwyMiArOTAsNiBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwgMCk7CiB9CiAKLXZvaWQgU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVp
bnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk+JiYgY2hhbGxlbmdlKQotewotICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwotICAg
IFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKLQotICAgIC8vIEZJWE1FOiBFeHBvc2UgYW4gQVBJIHRv
IGRlbGVnYXRlIHRoZSBhY3R1YWwgZGVjaXNpb24gdG8gdGhlIGFwcGxpY2F0aW9uIGxheWVyLgot
ICAgIGF1dG8mIHByb3RlY3Rpb25TcGFjZSA9IGNoYWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25T
cGFjZSgpOwotICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9
PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0
RXZhbHVhdGlvblJlcXVlc3RlZCAmJiBwcm9jZXNzUG9vbCgpLmFsbG93c0FueVNTTENlcnRpZmlj
YXRlRm9yU2VydmljZVdvcmtlcigpKSB7Ci0gICAgICAgIGF1dG8gY3JlZGVudGlhbCA9IFdlYkNv
cmU6OkNyZWRlbnRpYWwoImFjY2VwdCBzZXJ2ZXIgdHJ1c3QiX3MsIGVtcHR5U3RyaW5nKCksIFdl
YkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwotICAgICAgICBjaGFsbGVuZ2UtPmxp
c3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6VXNlQ3JlZGVudGlhbCwgY3JlZGVudGlhbCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBjaGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxl
dGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURl
ZmF1bHRIYW5kbGluZyk7Ci19Ci0KIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBXZWJQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5oCmluZGV4IDZmNzU5ZTlmZjQ1ZmQ1YWZjZTI3M2JhZWIzZjA1ZGJkNmEwOWY3OTguLmM1ZGE0
Y2NkY2U1ODIwZjVkMDU2NTU3MGUzZDkwYTNjYTJkY2ExMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTQxLDggKzQx
LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3Jr
ZXJzKGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKLQogICAgIHZv
aWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lv
bklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
NTMwZmQ4MmJiYmJkYTgyNjEwMTMzMDFmMmJlOWY0NmZmMzFiYTI4NC4uMmUxMDMzYmU4MWNhMjM2
Njk3Y2Y2ZmU2OTVlODA3YTllZGRjZTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC03MTE1LDE5ICs3MTE1LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omdh
bWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJv
b2wKIAogI2VuZGlmCiAKLVdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVByb3h5Ojpz
ZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UpCi17Ci0jaWYgSEFWRShTRUNfS0VZX1BST1hZKQotICAgIGlmIChjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7Ci0gICAg
ICAgIGF1dG8gc2VjS2V5UHJveHlTdG9yZSA9IFNlY0tleVByb3h5U3RvcmU6OmNyZWF0ZSgpOwot
ICAgICAgICBhdXRvIHdlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoc2VjS2V5UHJveHlTdG9yZS5n
ZXQoKSk7Ci0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YWRkU2VjS2V5UHJveHlTdG9yZShX
VEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKLSAgICAgICAgcmV0dXJuIHdlYWtQb2ludGVyOwot
ICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBudWxscHRyOwotfQotICAgIAogdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90LCBS
ZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZUNsaWVudC5oCmluZGV4IGU5ZmNmMDAxNTM5OTVkYzFjY2UxMzVmOGMwOTJlOTJlNjZkYmZm
M2EuLmQ0ZmVjNTMzMjVlMWYyMWQzMmViNDAwMzgyYzI5Njc5NjZlNzUxZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ2xpZW50LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MSw2ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk+JiYgY2hhbGxlbmdlKQorICAgIHsKKyAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5l
cigpLmNvbXBsZXRlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246
OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDFjMzBhNjhkM2Q1ZDZjNmEyZjhiMjNhM2U3ZThmYTBiYjY2ZTQ4ODkuLjhlMTFlMGMwYTE5Yzc0
MTY2YmQ0MWQ0NzMwZmFmZWZmYmNjMTlhZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0xMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgV2Vic2l0ZURhdGFT
dG9yZSBkZWxlZ2F0ZSB0byBoYW5kbGUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgdGhhdCBkbyBu
b3QgY29tZSBmcm9tIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBY2NlcHQgYW55IHNlcnZlciBjZXJ0aWZpY2F0ZSwgb3RoZXJ3aXNlIGRvIHRo
ZSBkZWZhdWx0IGhhbmRsaW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtUZXN0V2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKwogMjAxOS0wNC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xvc2Ugc2VydmljZSB3b3JrZXIgZGF0YWJhc2Ugb24gbmV0d29y
ayBwcm9jZXNzIHN1c3BlbnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQppbmRleCA4ZWY0Njdh
ZTViYjMwMmRiZTY3NThmNGM5Zjc5Y2Q5ZmZmM2MyNzBjLi5mODQwMjdmNmVlZGRmNzk3MWE3MDdj
NDNmMWNjZTBmZDQ5YWEzMGVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tCkBAIC00Miw0ICs0
MiwxNSBAQCAtICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFp
c2luZ1F1b3RhCiB7CiAgICAgX3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhID0gc2hvdWxkQWxsb3dS
YWlzaW5nUXVvdGE7CiB9CisKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlz
cG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqIF9OdWxsYWJsZSBjcmVkZW50aWFsKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIE5TU3RyaW5nICptZXRob2QgPSBjaGFsbGVuZ2UucHJvdGVjdGlv
blNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kOworICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0
cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBb
TlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDogY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZS5zZXJ2ZXJUcnVzdF0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRp
b25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5n
LCBuaWwpOworfQorCiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367347</attachid>
            <date>2019-04-12 14:53:00 -0700</date>
            <delta_ts>2019-04-12 15:39:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196870-20190412145259.patch</filename>
            <type>text/plain</type>
            <size>26735</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEwZTY1OWJiOTQwYmViNTQ2
MDRjOTYyMjU3NGZkYTUxMjM1Yjk4OGMuLjdiNWU3YzQ5OWY1Mzk1MjVmZGE2YmM1ZTliMTgxMzJj
ZTY2MjkxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTktMDQtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBOZXR3b3JrUHJvY2VzcyBwcm92aWRlIHRoZSBzZXNzaW9uIElEIGZvciBh
bnkgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIG5v
IGFzc29jaWF0ZWQgcGFnZSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBvciB0aGlz
IGlzIHJlbGF0ZWQgdG8gYSBzZXJ2aWNlIHdvcmtlciwKKyAgICAgICAgYXNrIHRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gdGFrZSBhIGRlY2lzaW9uLgorICAgICAgICBBZGQgd2Vic2l0ZSBkYXRh
IHN0b3JlIGRlbGVnYXRlIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHRoZSBkZWNpc2lv
bi4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgor
CisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNl
aXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgIChXZWJzaXRlRGF0YVN0
b3JlQ2xpZW50OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50KToKKyAgICAgICAgKFdlYnNpdGVEYXRh
U3RvcmVDbGllbnQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOgorCiAyMDE5LTA0LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2Ugbm9ybWFsIGxvYWRpbmcgcGF0aCBmb3IgcGluZyBsb2FkcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwCmluZGV4IGJlZjhkMDZlZTE4ZDVmZjBkY2ZmYzEwMzY4MjlhNzE0OTdj
YjRjNGUuLjQ2Y2M3MDliMGJhY2Q0NDM4ZjZlNTVjNDA0YTY3NDE0YWIwNzc4ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0
aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1f
cGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNh
dGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0
ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnBhZ2VJRCwgbV9wYXJhbWV0ZXJzLmZyYW1lSUQs
IGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suY3BwCmluZGV4IDNlNWFkYWYxMWI5Y2Q3N2I5NjA3ZjgzOWZmMDkyMjhjY2YwZTY3
OTQuLjczZDAxZThkNmZhZTlmYjkyMWE1MDVkY2Q4N2RhOWI2YmQ0NzViNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTE0NCw0
ICsxNDQsOSBAQCBTdHJpbmcgTmV0d29ya0RhdGFUYXNrOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKK1BBTDo6U2Vzc2lvbklEIE5ldHdvcmtEYXRh
VGFzazo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uLT5zZXNzaW9u
SUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCBjZTdiMmFkNTA2MzY1YTQzMjhiYTU3
M2FmMTYxNzA5NjBiYWJmYmNhLi45NGY0MDY1ZDcyMmNkN2IwOGVlN2ZkYWM2MGJkYzYxNmU2ZjQ3
MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC0xMjgsNiArMTI5LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZGVz
Y3JpcHRpb24oKSBjb25zdDsKIAorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5k
ZXggM2E2ZmExMGNmOWY3ZWQ0YmZjZDgzZDBiYTI3NDY4ZWIyMzE3MDYwYi4uMzk5NGM3N2RkMTFm
YjEwM2JjZDZkNTEzZWY0YWNiODQ3ZjRhNDkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIE5ldHdvcmtM
b2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxl
bmdlLCBDaGFsbAogICAgIGlmIChhdXRvKiBwZW5kaW5nRG93bmxvYWQgPSBtX3Rhc2stPnBlbmRp
bmdEb3dubG9hZCgpKQogICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1h
bmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnBlbmRpbmdEb3dubG9h
ZCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV90YXNrLT5zZXNzaW9uSUQoKSwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNwb25zZUNvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCA4MjlmN2MyMDI0ODViNzNhYTZiOTM4
NjQ4YmU5Zjk2ZDc1YjE3ZDVkLi4wZmQ2YjM4NTI2ZjczNzg5YjQ1MzliMWRkN2MzZmY3NzI0NGQw
MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisgICAg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vz
czsgfQorCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAg
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDI5Njg1ZTdlNTlmNzMzZDI5
OTM2YTUwMTM2ZmY5MjU3NjQ4YWQ4ZTYuLjlhMWM3OTg5YzA4MzAxZjU2M2E1ZTZhZjkzNjUwZTNi
MGM3MjEwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBA
IC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgQ2hhbGxlbmcKIHsKICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7CiAgICAgaWYgKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsIHsgfSk7CisgICAgICAgIG1fbmV0d29ya0xv
YWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCAwLCAw
LCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNmViMzM1ZjA3ZDNjZmU2MjkwMDA3MWNkYWE3ODkzZjA0
MzM1YmVhYS4uMWRhNTk5NzIzNjVhMDQ5OWVhYjljNmI2ODY5YmIzYzNjOGFiZWQ2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsMTggKzEwOCwxNSBAQCBWZWN0b3I8dWludDY0
X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcodWlu
dDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKIH0KIAotdm9pZCBB
dXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQocGFnZUlEKTsKLSAgICBBU1NF
UlQoZnJhbWVJRCk7Ci0KICAgICB1aW50NjRfdCBjaGFsbGVuZ2VJRCA9IGFkZENoYWxsZW5nZVRv
Q2hhbGxlbmdlTWFwKHsgcGFnZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikgfSk7CiAKICAgICAvLyBDb2FsZXNjZSBjaGFsbGVuZ2VzIGluIHRo
ZSBzYW1lIHByb3RlY3Rpb24gc3BhY2UgYW5kIGluIHRoZSBzYW1lIHBhZ2UuCiAgICAgaWYgKHNo
b3VsZENvYWxlc2NlQ2hhbGxlbmdlKHBhZ2VJRCwgY2hhbGxlbmdlSUQsIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdl
SUQpKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb25JRCwgcGFnZUlELCBmcmFt
ZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpKTsKIH0KIAogdm9pZCBB
dXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShJ
UEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDdm
ZTM5OWUwYjdlOTQ1OGJkOTE3ODI1OTM4NDFlNGM0NDkzMzVhZTEuLmQ4ZTJiODU4ZmJhMzgwYTVm
YTM3MTg2MDI4YmRkMWI2M2JiYWYyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC02MCw3
ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFt
ZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0
aW9uSGFuZGxlciYmKTsKIAogICAgIHZvaWQgY29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
biwgV2ViQ29yZTo6Q3JlZGVudGlhbCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDI2ZTExODJjMWNj
ZDA1ZWRmNjliNzM5NTFjNjVlN2Y1MTlhZDc5NzEuLjFhMWI1Njk5NmYwMmRiYjlkZWI1Mjk0ZTJj
YTdiNWYwNTM1YWNlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9y
dCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2ll
U3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0ICJXS05TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgi
CiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgpAQCAtMzgsNiArMzksNyBAQAogI2ltcG9ydCAiV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbi5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCIKICNp
bXBvcnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9D
cmVkZW50aWFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CkBAIC00OCw2
ICs1MCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlQ2xpZW50KGlk
IDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgICAgICA6IG1fZGVs
ZWdhdGUoZGVsZWdhdGUpCiAgICAgICAgICwgbV9oYXNSZXF1ZXN0U3RvcmFnZVNwYWNlU2VsZWN0
b3IoW21fZGVsZWdhdGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0
U3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJlcXVp
cmVkOiBkZWNpc2lvbkhhbmRsZXI6KV0pCisgICAgICAgICwgbV9oYXNBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVNlbGVjdG9yKFttX2RlbGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiBjb21wbGV0aW9uSGFuZGxl
cjopXSkKICAgICB7CiAgICAgfQogCkBAIC03Myw4ICs3Niw0MyBAQCBwcml2YXRlOgogICAgICAg
ICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSByZXF1ZXN0U3RvcmFnZVNwYWNlOm1haW5G
cmFtZVVSTCBmcmFtZU9yaWdpbjpmcmFtZVVSTCBxdW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJy
ZW50U2l6ZSBzcGFjZVJlcXVpcmVkOnNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lz
aW9uSGFuZGxlci5nZXQoKV07CiAgICAgfQogCisgICAgc3RhdGljIFdlYktpdDo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChkaXNwb3NpdGlvbikgeworICAgICAgICBjYXNlIE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgorICAgICAgICAgICAgcmV0dXJuIFdl
YktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbDsK
KyAgICAgICAgY2FzZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5k
bGluZzoKKyAgICAgICAgICAgIHJldHVybiBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmc7CisgICAgICAgIGNhc2UgTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOgorICAgICAg
ICAgICAgcmV0dXJuIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
Q2FuY2VsOworICAgICAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90
ZWN0aW9uU3BhY2U6CisgICAgICAgICAgICByZXR1cm4gV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNl
cHRpb24gZm9ybWF0OkAiSW52YWxpZCBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
b24gKCVsZCkiLCAobG9uZylkaXNwb3NpdGlvbl07CisgICAgfQorCisgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVmPFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpIGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1faGFz
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB8fCAhbV9kZWxlZ2F0ZSkgeworICAgICAg
ICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKFdlYktpdDo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvIG5zVVJMQ2hh
bGxlbmdlID0gd3JhcHBlcihjaGFsbGVuZ2UpOworICAgICAgICBhdXRvIGNoZWNrZXIgPSBXZWJL
aXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShtX2RlbGVnYXRlLmdldEF1
dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IoZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OiBjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihbY2hhbGxlbmdlID0gV1RGTW92ZShjaGFsbGVuZ2UpLCBjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKV0oTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKmNyZWRlbnRpYWwpIG11dGFibGUgeworICAgICAg
ICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0
aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRl
Q2hhbGxlbmdlKHRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbihkaXNwb3NpdGlv
biksIFdlYkNvcmU6OkNyZWRlbnRpYWwoY3JlZGVudGlhbCkpOworICAgICAgICB9KTsKKworICAg
ICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6bnNVUkxDaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhh
bmRsZXIuZ2V0KCldOworICAgIH0KKwogICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0
YVN0b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1faGFzUmVxdWVzdFN0b3Jh
Z2VTcGFjZVNlbGVjdG9yIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VTZWxlY3RvciB7IGZhbHNlIH07CiB9OwogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJz
aXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKaW5kZXggOWIwZTcxNzEw
Y2MyYjlhNGViYjRjYWZkMjBlZTM4N2JhNGJhZDc3ZC4uZGM0MTI4ODExYTJkYmY3NjIxODE5YWU1
YzAxNmEwZTExMjQ5Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaApAQCAtMzQs
NCArMzQsNiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpCiAKIC0gKHZvaWQpcmVxdWVzdFN0b3JhZ2VTcGFjZTooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6KE5TVUludGVnZXIpcXVvdGEg
Y3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDooTlNVSW50
ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9u
ZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxl
bmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdl
RGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkpY29t
cGxldGlvbkhhbmRsZXI7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGM2YjAyMGM1NjkyZmU3
MjMwMWEyYWZmMjIwMzFmOTgwYTUzMGY0YzcuLjg2ZDYzZjlmZmQ2MzFiM2M1OThjZDY3NjczM2Uy
MmI2ZjhhMjA0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRl
ICJTZWNLZXlQcm94eVN0b3JlLmgiCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0
aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0LmgiCkBAIC0zMDgsMjAgKzMwOSwzNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNv
bnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdl
LCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewotI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eSA9IG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQo
cGFnZUlEKSkgewotICAgICAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNo
YWxsZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxscHRyKTsKLSAgICAgICAgc2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KHBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpOwotICAg
ICAgICByZXR1cm47CisgICAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0
b3JlOworI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKKyAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklE
KSkgeworICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlT
dG9yZTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQ
dHIobmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzdG9yZS0+YWRkU2Vj
S2V5UHJveHlTdG9yZShXVEZNb3ZlKG5ld1NlY0tleVByb3h5U3RvcmUpKTsKKyAgICAgICAgfQog
ICAgIH0KICNlbmRpZgorICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hh
bGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIFdURk1vdmUoc2VjS2V5UHJveHlTdG9y
ZSkpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdl
KHBhZ2VJRCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKyAgICBhdXRvKiBwYWdlID0gV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhwYWdlIHx8
ICFwYWdlSUQpOwogCi0gICAgYXV0byBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvcmVDaGFsbGVuZ2UpLCBjaGFs
bGVuZ2VJRCwgbWFrZVJlZigqY29ubmVjdGlvbigpKSwgcGFnZS0+c2VjS2V5UHJveHlTdG9yZShj
b3JlQ2hhbGxlbmdlKSk7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIGlmIChtX3By
b2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHBhZ2VJRCkpCisg
ICAgICAgIHBhZ2UgPSBudWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAg
ICAgYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQp
OworICAgICAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBzdG9yZS0+Y2xpZW50KCkuZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KICAgICBwYWdlLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eShmcmFtZUlELCBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZGFjZWVhZWJhYjQ3MzZkZjFkMjJhNzgxYmMxNjliNWI4ODdlOTAy
Ny4uMDNiNmY3NjdhNGEwMTIwODcxODA1N2E3NGY1OGFjNWQ2N2ZhYjcxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIxMCw3ICsyMTAsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAg
ICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hhbGxlbmdl
SUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lkIGRp
ZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgV2Vic2l0ZURhdGEm
KTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJlOThlNjY2MzBmYWQ3OTA2
MTA5MjBjZWY4NTI3NWRjOTdhZDFmMWQuLjlmYjRjZmRlYmJjZWZiYjc0ZTQ5OWY2ZmY5MDk5MDlk
MzYwZDdhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcg
QEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0
Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRl
RGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmMWZmMmYxZjI1NmYwOGM0MzI3NjBkOTU2OTNhOGI2YTRl
ZTg3MWQ0Li4wY2I3OWJmMjAwYTY4ODcwMDJkNTcyNjM4OTYzNjFiZWQ3MmI5NjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmNwcApAQCAtOTAsMjIgKzkwLDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1
cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5j
ZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxs
ZW5nZSkKLXsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKLSAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7Ci0KLSAgICAvLyBGSVhNRTogRXhwb3NlIGFuIEFQSSB0byBkZWxlZ2F0ZSB0aGUgYWN0
dWFsIGRlY2lzaW9uIHRvIHRoZSBhcHBsaWNhdGlvbiBsYXllci4KLSAgICBhdXRvJiBwcm90ZWN0
aW9uU3BhY2UgPSBjaGFsbGVuZ2UtPmNvcmUoKS5wcm90ZWN0aW9uU3BhY2UoKTsKLSAgICBpZiAo
cHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0
ZWQgJiYgcHJvY2Vzc1Bvb2woKS5hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3Jr
ZXIoKSkgewotICAgICAgICBhdXRvIGNyZWRlbnRpYWwgPSBXZWJDb3JlOjpDcmVkZW50aWFsKCJh
Y2NlcHQgc2VydmVyIHRydXN0Il9zLCBlbXB0eVN0cmluZygpLCBXZWJDb3JlOjpDcmVkZW50aWFs
UGVyc2lzdGVuY2VOb25lKTsKLSAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRl
Q2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRp
YWwsIGNyZWRlbnRpYWwpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOwot
fQotCiB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQ
cm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVu
Y2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCA2Zjc1OWU5
ZmY0NWZkNWFmY2UyNzNiYWViM2YwNWRiZDZhMDlmNzk4Li5jNWRhNGNjZGNlNTgyMGY1ZDA1NjU1
NzBlM2Q5MGEzY2EyZGNhMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw4ICs0MSw2IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJpbmcm
IHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7Ci0KICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Np
b25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB1
cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDUzMGZkODJiYmJiZGE4MjYx
MDEzMzAxZjJiZTlmNDZmZjMxYmEyODQuLjJlMTAzM2JlODFjYTIzNjY5N2NmNmZlNjk1ZTgwN2E5
ZWRkY2U2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NzExNSwxOSArNzExNSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHkoY29u
c3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBib29sCiAKICNlbmRpZgogCi1X
ZWFrUHRyPFNlY0tleVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQotewotI2lm
IEhBVkUoU0VDX0tFWV9QUk9YWSkKLSAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
LmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgewotICAgICAgICBhdXRvIHNlY0tleVBy
b3h5U3RvcmUgPSBTZWNLZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKLSAgICAgICAgYXV0byB3ZWFr
UG9pbnRlciA9IG1ha2VXZWFrUHRyKHNlY0tleVByb3h5U3RvcmUuZ2V0KCkpOwotICAgICAgICBt
X3dlYnNpdGVEYXRhU3RvcmUtPmFkZFNlY0tleVByb3h5U3RvcmUoV1RGTW92ZShzZWNLZXlQcm94
eVN0b3JlKSk7Ci0gICAgICAgIHJldHVybiB3ZWFrUG9pbnRlcjsKLSAgICB9Ci0jZW5kaWYKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLSAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCwgUmVmPEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaAppbmRl
eCBlOWZjZjAwMTUzOTk1ZGMxY2NlMTM1ZjhjMDkyZTkyZTY2ZGJmZjNhLi5kNGZlYzUzMzI1ZTFm
MjFkMzJlYjQwMDM4MmMyOTY3OTY2ZTc1MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oCkBA
IC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDEsNiArNDQsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoeyB9KTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxs
ZW5nZSkKKyAgICB7CisgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxs
ZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhh
bmRsaW5nKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYzMwYTY4ZDNkNWQ2YzZh
MmY4YjIzYTNlN2U4ZmEwYmI2NmU0ODg5Li44ZTExZTBjMGExOWM3NDE2NmJkNDFkNDczMGZhZmVm
ZmJjYzE5YWVhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDQtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3RvcmUgZGVsZWdhdGUgdG8g
aGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90IGNvbWUgZnJvbSBwYWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2ODcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZXB0
IGFueSBzZXJ2ZXIgY2VydGlmaWNhdGUsIG90aGVyd2lzZSBkbyB0aGUgZGVmYXVsdCBoYW5kbGlu
Zy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisK
IDIwMTktMDQtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IENsb3NlIHNlcnZpY2Ugd29ya2VyIGRhdGFiYXNlIG9uIG5ldHdvcmsgcHJvY2VzcyBzdXNwZW5z
aW9uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KaW5kZXggOGVmNDY3YWU1YmIzMDJkYmU2NzU4ZjRj
OWY3OWNkOWZmZjNjMjcwYy4uZjg0MDI3ZjZlZWRkZjc5NzFhNzA3YzQzZjFjY2UwZmQ0OWFhMzBl
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQpAQCAtNDIsNCArNDIsMTUgQEAgLSAodm9pZClz
ZXRBbGxvd1JhaXNpbmdRdW90YTooQk9PTClzaG91bGRBbGxvd1JhaXNpbmdRdW90YQogewogICAg
IF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IHNob3VsZEFsbG93UmFpc2luZ1F1b3RhOwogfQor
CistICh2b2lkKWRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBOU1VSTENy
ZWRlbnRpYWwgKiBfTnVsbGFibGUgY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAg
ICBOU1N0cmluZyAqbWV0aG9kID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNh
dGlvbk1ldGhvZDsKKyAgICBpZiAoW21ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50
aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihO
U1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBj
cmVkZW50aWFsRm9yVHJ1c3Q6IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3Rd
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5kbGluZywgbmlsKTsKK30KKwogQGVu
ZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367351</attachid>
            <date>2019-04-12 15:45:47 -0700</date>
            <delta_ts>2019-04-22 22:05:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196870-20190412154546.patch</filename>
            <type>text/plain</type>
            <size>31292</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEwZTY1OWJiOTQwYmViNTQ2
MDRjOTYyMjU3NGZkYTUxMjM1Yjk4OGMuLjA0YzQxOTE0YzFhOGJhZTFhNGI5MTQ0OWQ4Mzk2NDZm
NTMzNTY3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTktMDQtMTIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBOZXR3b3JrUHJvY2VzcyBwcm92aWRlIHRoZSBzZXNzaW9uIElEIGZvciBh
bnkgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIG5v
IGFzc29jaWF0ZWQgcGFnZSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBvciB0aGlz
IGlzIHJlbGF0ZWQgdG8gYSBzZXJ2aWNlIHdvcmtlciwKKyAgICAgICAgYXNrIHRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gdGFrZSBhIGRlY2lzaW9uLgorICAgICAgICBBZGQgd2Vic2l0ZSBkYXRh
IHN0b3JlIGRlbGVnYXRlIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHRoZSBkZWNpc2lv
bi4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNhbWUgbWVjaGFuaXNtLgor
CisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMgYW5kIHVwZGF0ZWQgYmVh
Y29uIHRlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c2Vzc2lv
bklEIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xv
YWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGlu
Z0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5n
ZSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgIChXZWJzaXRlRGF0YVN0b3JlQ2xpZW50
OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50KToKKyAgICAgICAgKFdlYnNpdGVEYXRhU3RvcmVDbGll
bnQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aXNTZXJ2
aWNlV29ya2VyUGFnZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNs
aWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50OjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorCiAyMDE5LTA0LTExICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ugbm9ybWFsIGxvYWRpbmcgcGF0aCBm
b3IgcGluZyBsb2FkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmluZGV4IGJlZjhkMDZlZTE4ZDVm
ZjBkY2ZmYzEwMzY4MjlhNzE0OTdjYjRjNGUuLjQ2Y2M3MDliMGJhY2Q0NDM4ZjZlNTVjNDA0YTY3
NDE0YWIwNzc4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBA
QCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFt
ZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX25ldHdv
cmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnBhZ2VJRCwg
bV9wYXJhbWV0ZXJzLmZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IDNlNWFkYWYxMWI5Y2Q3N2I5
NjA3ZjgzOWZmMDkyMjhjY2YwZTY3OTQuLjczZDAxZThkNmZhZTlmYjkyMWE1MDVkY2Q4N2RhOWI2
YmQ0NzViNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKQEAgLTE0NCw0ICsxNDQsOSBAQCBTdHJpbmcgTmV0d29ya0RhdGFUYXNrOjpk
ZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKK1BBTDo6
U2Vzc2lvbklEIE5ldHdvcmtEYXRhVGFzazo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zZXNzaW9uLT5zZXNzaW9uSUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCBj
ZTdiMmFkNTA2MzY1YTQzMjhiYTU3M2FmMTYxNzA5NjBiYWJmYmNhLi45NGY0MDY1ZDcyMmNkN2Iw
OGVlN2ZkYWM2MGJkYzYxNmU2ZjQ3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMjgsNiArMTI5LDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsKIAorICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya0RhdGFUYXNr
KE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgYm9vbCBkYXRhVGFza0lz
Rm9yTWFpbkZyYW1lTmF2aWdhdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggM2E2ZmExMGNmOWY3ZWQ0YmZjZDgzZDBiYTI3NDY4ZWIy
MzE3MDYwYi4uMzk5NGM3N2RkMTFmYjEwM2JjZDZkNTEzZWY0YWNiODQ3ZjRhNDkyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTE4OSw3ICsx
ODksNyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBDaGFsbAogICAgIGlmIChhdXRvKiBwZW5kaW5nRG93
bmxvYWQgPSBtX3Rhc2stPnBlbmRpbmdEb3dubG9hZCgpKQogICAgICAgICBtX25ldHdvcmtQcm9j
ZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKnBlbmRpbmdEb3dubG9hZCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiAgICAgZWxzZQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlv
bk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNh
dGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV90YXNrLT5z
ZXNzaW9uSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5l
dHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCA4
MjlmN2MyMDI0ODViNzNhYTZiOTM4NjQ4YmU5Zjk2ZDc1YjE3ZDVkLi4wZmQ2YjM4NTI2ZjczNzg5
YjQ1MzliMWRkN2MzZmY3NzI0NGQwMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgog
ICAgIH0KICNlbmRpZgogCisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyBy
ZXR1cm4gbV9uZXR3b3JrUHJvY2VzczsgfQorCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybDsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZWRDcmVkZW50aWFs
c1BvbGljeTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmlu
ZGV4IDI5Njg1ZTdlNTlmNzMzZDI5OTM2YTUwMTM2ZmY5MjU3NjQ4YWQ4ZTYuLjlhMWM3OTg5YzA4
MzAxZjU2M2E1ZTZhZjkzNjUwZTNiMGM3MjEwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlk
UmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgQ2hh
bGxlbmcKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdl
Iik7CiAgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RF
dmFsdWF0aW9uUmVxdWVzdGVkKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsIHsgfSk7
CisgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRp
Y2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFt
ZXRlcnMuc2Vzc2lvbklELCAwLCAwLCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNmViMzM1ZjA3ZDNj
ZmU2MjkwMDA3MWNkYWE3ODkzZjA0MzM1YmVhYS4uMWRhNTk5NzIzNjVhMDQ5OWVhYjljNmI2ODY5
YmIzYzNjOGFiZWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsMTggKzEw
OCwxNSBAQCBWZWN0b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VD
aGFsbGVuZ2VzTWF0Y2hpbmcodWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9D
b2FsZXNjZTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NF
UlQocGFnZUlEKTsKLSAgICBBU1NFUlQoZnJhbWVJRCk7Ci0KICAgICB1aW50NjRfdCBjaGFsbGVu
Z2VJRCA9IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKHsgcGFnZUlELCBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7CiAKICAgICAvLyBDb2Fs
ZXNjZSBjaGFsbGVuZ2VzIGluIHRoZSBzYW1lIHByb3RlY3Rpb24gc3BhY2UgYW5kIGluIHRoZSBz
YW1lIHBhZ2UuCiAgICAgaWYgKHNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKHBhZ2VJRCwgY2hhbGxl
bmdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAot
ICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNl
c3Npb25JRCwgcGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxl
bmdlSUQpKTsKIH0KIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShJUEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Us
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCmluZGV4IDdmZTM5OWUwYjdlOTQ1OGJkOTE3ODI1OTM4NDFlNGM0NDkzMzVh
ZTEuLmQ4ZTJiODU4ZmJhMzgwYTVmYTM3MTg2MDI4YmRkMWI2M2JiYWYyZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5k
bGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6
U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIm
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNz
YWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIHZvaWQgY29tcGxldGVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVudGlhbCYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCmluZGV4IDI2ZTExODJjMWNjZDA1ZWRmNjliNzM5NTFjNjVlN2Y1MTlhZDc5NzEuLjFhMWI1
Njk5NmYwMmRiYjlkZWI1Mjk0ZTJjYTdiNWYwNTM1YWNlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAt
MzAsNiArMzAsNyBAQAogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgog
I2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5
LmgiCisjaW1wb3J0ICJXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbXBvcnQg
IldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgpAQCAtMzgsNiArMzksNyBAQAogI2ltcG9y
dCAiV2Vic2l0ZURhdGFGZXRjaE9wdGlvbi5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0
IDx3dGYvVVJMLmg+CkBAIC00OCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJz
aXRlRGF0YVN0b3JlQ2xpZW50KGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IGRlbGVn
YXRlKQogICAgICAgICA6IG1fZGVsZWdhdGUoZGVsZWdhdGUpCiAgICAgICAgICwgbV9oYXNSZXF1
ZXN0U3RvcmFnZVNwYWNlU2VsZWN0b3IoW21fZGVsZWdhdGUuZ2V0KCkgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihyZXF1ZXN0U3RvcmFnZVNwYWNlOiBmcmFtZU9yaWdpbjogcXVvdGE6IGN1
cnJlbnRTaXplOiBzcGFjZVJlcXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6KV0pCisgICAgICAgICwg
bV9oYXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbGVjdG9yKFttX2RlbGVnYXRlLmdldCgpIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOiBjb21wbGV0aW9uSGFuZGxlcjopXSkKICAgICB7CiAgICAgfQogCkBAIC03Myw4ICs3Niw0
MyBAQCBwcml2YXRlOgogICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSByZXF1
ZXN0U3RvcmFnZVNwYWNlOm1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjpmcmFtZVVSTCBxdW90YTpx
dW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOnNwYWNlUmVxdWlyZWQg
ZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgfQogCisgICAgc3Rh
dGljIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bv
c2l0aW9uIGRpc3Bvc2l0aW9uKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChkaXNwb3NpdGlvbikg
eworICAgICAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgor
ICAgICAgICAgICAgcmV0dXJuIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6VXNlQ3JlZGVudGlhbDsKKyAgICAgICAgY2FzZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlUGVyZm9ybURlZmF1bHRIYW5kbGluZzoKKyAgICAgICAgICAgIHJldHVybiBXZWJLaXQ6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmc7
CisgICAgICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOgorICAgICAgICAgICAgcmV0dXJuIFdlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbjo6Q2FuY2VsOworICAgICAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1
dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2U6CisgICAgICAgICAgICByZXR1cm4gV2Vi
S2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9u
U3BhY2VBbmRDb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiSW52YWxpZCBOU1VSTFNlc3Npb25B
dXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gKCVsZCkiLCAobG9uZylkaXNwb3NpdGlvbl07CisgICAg
fQorCisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVmPFdlYktp
dDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpIGZpbmFsCisgICAg
eworICAgICAgICBpZiAoIW1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB8fCAh
bV9kZWxlZ2F0ZSkgeworICAgICAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRl
Q2hhbGxlbmdlKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVy
Zm9ybURlZmF1bHRIYW5kbGluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBhdXRvIG5zVVJMQ2hhbGxlbmdlID0gd3JhcHBlcihjaGFsbGVuZ2UpOworICAgICAg
ICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNy
ZWF0ZShtX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IoZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiBjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAgYXV0
byBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY2hhbGxlbmdlID0gV1RGTW92ZShj
aGFsbGVuZ2UpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oTlNVUkxTZXNzaW9uQXV0aENo
YWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKmNyZWRlbnRp
YWwpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVy
SGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNo
ZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY2hhbGxlbmdl
LT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKHRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbihkaXNwb3NpdGlvbiksIFdlYkNvcmU6OkNyZWRlbnRpYWwoY3JlZGVudGlhbCkp
OworICAgICAgICB9KTsKKworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bnNVUkxDaGFsbGVuZ2UgY29tcGxldGlv
bkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXIuZ2V0KCldOworICAgIH0KKwogICAgIFdlYWtPYmpD
UHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKICAgICBi
b29sIG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB7IGZhbHNlIH07CiB9OwogCiBA
aW1wbGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlLmgKaW5kZXggOWIwZTcxNzEwY2MyYjlhNGViYjRjYWZkMjBlZTM4N2JhNGJhZDc3ZC4uZGM0
MTI4ODExYTJkYmY3NjIxODE5YWU1YzAxNmEwZTExMjQ5Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGUuaApAQCAtMzQsNCArMzQsNiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAKIC0gKHZvaWQpcmVxdWVzdFN0b3JhZ2VTcGFj
ZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVv
dGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUg
c3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKKy0g
KHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVu
dGlhbCAqY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CisKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IGM2YjAyMGM1NjkyZmU3MjMwMWEyYWZmMjIwMzFmOTgwYTUzMGY0YzcuLjBmNjVlYWY3
YmE1YTA3ZmNiMTFjNzkzNGUxNzllN2FhNTYzMGFjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcs
NiArMzcsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKKyNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisjaW5jbHVkZSAiU2VjS2V5UHJv
eHlTdG9yZS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0LmgiCkBAIC0zMDgsMjAgKzMxMSwzNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0
IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1
aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewotI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94
eSA9IG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFn
ZUlEKSkgewotICAgICAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxs
ZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxscHRyKTsKLSAgICAgICAgc2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBh
Z2VJRCwgZnJhbWVJRCwgV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpOwotICAgICAg
ICByZXR1cm47CisjaWYgSEFWRShTRUNfS0VZX1BST1hZKQorICAgIFdlYWtQdHI8U2VjS2V5UHJv
eHlTdG9yZT4gc2VjS2V5UHJveHlTdG9yZTsKKyAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90ZWN0
aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKSkg
eworICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlTdG9y
ZTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQdHIo
bmV3U2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzdG9yZS0+YWRkU2VjS2V5
UHJveHlTdG9yZShXVEZNb3ZlKG5ld1NlY0tleVByb3h5U3RvcmUpKTsKKyAgICAgICAgfQogICAg
IH0KKyAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBt
YWtlUmVmKCpjb25uZWN0aW9uKCkpLCBXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKKyNlbHNl
CisgICAgYXV0byBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvcmVDaGFsbGVuZ2UpLCBjaGFsbGVuZ2VJRCwgbWFr
ZVJlZigqY29ubmVjdGlvbigpKSwgbnVsbHB0cik7CiAjZW5kaWYKIAotICAgIFdlYlBhZ2VQcm94
eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwotICAgIE1FU1NBR0Vf
Q0hFQ0socGFnZSk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gbnVsbHB0cjsKKyAgICBpZiAo
cGFnZUlEICYmICFtX3Byb2Nlc3NQb29sLmlzU2VydmljZVdvcmtlclBhZ2VJRChwYWdlSUQpKSB7
CisgICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICAg
ICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKyAgICB9CiAKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUo
Y29yZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBwYWdl
LT5zZWNLZXlQcm94eVN0b3JlKGNvcmVDaGFsbGVuZ2UpKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAg
ICAgICAgYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9u
SUQpOworICAgICAgICBpZiAoIXN0b3JlKSB7CisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBzdG9yZS0+Y2xpZW50KCkuZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICAgICBwYWdlLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eShmcmFtZUlELCBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggZGFjZWVhZWJhYjQ3MzZkZjFkMjJhNzgxYmMxNjliNWI4ODdl
OTAyNy4uMDNiNmY3NjdhNGEwMTIwODcxODA1N2E3NGY1OGFjNWQ2N2ZhYjcxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKQEAgLTIxMCw3ICsyMTAsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMK
ICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hhbGxl
bmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6
U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lk
IGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgV2Vic2l0ZURh
dGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJlOThlNjY2MzBmYWQ3
OTA2MTA5MjBjZWY4NTI3NWRjOTdhZDFmMWQuLjlmYjRjZmRlYmJjZWZiYjc0ZTQ5OWY2ZmY5MDk5
MDlkMzYwZDdhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIz
LDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAg
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlk
RmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJz
aXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdv
cmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmMWZmMmYxZjI1NmYwOGM0MzI3NjBkOTU2OTNhOGI2
YTRlZTg3MWQ0Li4wY2I3OWJmMjAwYTY4ODcwMDJkNTcyNjM4OTYzNjFiZWQ3MmI5NjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmNwcApAQCAtOTAsMjIgKzkwLDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVy
ZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNz
UHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNo
YWxsZW5nZSkKLXsKLSAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKLSAgICBVTlVTRURfUEFSQU0o
ZnJhbWVJRCk7Ci0KLSAgICAvLyBGSVhNRTogRXhwb3NlIGFuIEFQSSB0byBkZWxlZ2F0ZSB0aGUg
YWN0dWFsIGRlY2lzaW9uIHRvIHRoZSBhcHBsaWNhdGlvbiBsYXllci4KLSAgICBhdXRvJiBwcm90
ZWN0aW9uU3BhY2UgPSBjaGFsbGVuZ2UtPmNvcmUoKS5wcm90ZWN0aW9uU3BhY2UoKTsKLSAgICBp
ZiAocHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQgJiYgcHJvY2Vzc1Bvb2woKS5hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VX
b3JrZXIoKSkgewotICAgICAgICBhdXRvIGNyZWRlbnRpYWwgPSBXZWJDb3JlOjpDcmVkZW50aWFs
KCJhY2NlcHQgc2VydmVyIHRydXN0Il9zLCBlbXB0eVN0cmluZygpLCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VOb25lKTsKLSAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBs
ZXRlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRl
bnRpYWwsIGNyZWRlbnRpYWwpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcp
OwotfQotCiB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCA2Zjc1
OWU5ZmY0NWZkNWFmY2UyNzNiYWViM2YwNWRiZDZhMDlmNzk4Li5jNWRhNGNjZGNlNTgyMGY1ZDA1
NjU1NzBlM2Q5MGEzY2EyZGNhMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw4ICs0MSw2IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJp
bmcmIHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7Ci0KICAgICB2b2lkIHN0YXJ0KGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gaW5pdGlhbFNl
c3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCB1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDUzMGZkODJiYmJiZGE4
MjYxMDEzMzAxZjJiZTlmNDZmZjMxYmEyODQuLjJlMTAzM2JlODFjYTIzNjY5N2NmNmZlNjk1ZTgw
N2E5ZWRkY2U2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNzExNSwxOSArNzExNSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZpdHko
Y29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBib29sCiAKICNlbmRpZgog
Ci1XZWFrUHRyPFNlY0tleVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9y
ZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQotewot
I2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKLSAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFj
ZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgewotICAgICAgICBhdXRvIHNlY0tl
eVByb3h5U3RvcmUgPSBTZWNLZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKLSAgICAgICAgYXV0byB3
ZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKHNlY0tleVByb3h5U3RvcmUuZ2V0KCkpOwotICAgICAg
ICBtX3dlYnNpdGVEYXRhU3RvcmUtPmFkZFNlY0tleVByb3h5U3RvcmUoV1RGTW92ZShzZWNLZXlQ
cm94eVN0b3JlKSk7Ci0gICAgICAgIHJldHVybiB3ZWFrUG9pbnRlcjsKLSAgICB9Ci0jZW5kaWYK
LSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLSAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCwgUmVmPEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9u
YXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMs
IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAyOWI0YjVhZTUxODE2NmM4OGU4MDBkOTk2Y2Q4ZDRl
YjQzNDkyZDRhLi5lNGZkYjIxNmU2NDNlNGI4NmZjOTk3MzllM2NkNjVmYWI3MmQ4OGM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMTk4LDE3ICsy
MTk4LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNz
ZXJ0aW9uU3RhdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYKICNlbmRpZgogfQogCi0jaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogV2ViUHJvY2Vzc1Bv
b2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkg
Y29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Bvb2w6OmlzU2VydmljZVdvcmtlclBhZ2VJRCh1aW50NjRf
dCBwYWdlSUQpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LgogICAgIGZvciAoYXV0byogc2VydmljZVdvcmtlclBy
b2Nlc3MgOiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXMudmFsdWVzKCkpIHsKICAgICAgICAgaWYg
KHNlcnZpY2VXb3JrZXJQcm9jZXNzLT5wYWdlSUQoKSA9PSBwYWdlSUQpCi0gICAgICAgICAgICBy
ZXR1cm4gc2VydmljZVdvcmtlclByb2Nlc3M7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19CiAjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFkZFByb2Nlc3NUb09yaWdpbkNhY2hlU2V0KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcywgY29uc3QgVVJMJiB1cmwpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0NzgzNGU3ZjFmOWE5ZTFjZGU1YWIyMDRiYzAy
ODRiNTEzZjg0OGQ5Li40NTYyMzNmNzhhZDFjZmVkNDBmYzlhY2QxNmFmODdlYjM1ZmYyNjMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM2Myw5ICszNjMs
OSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorICAgIGJvb2wgaXNTZXJ2aWNlV29ya2Vy
UGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3Q7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9j
ZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBP
cHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOwotICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkq
IHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29u
c3Q7CiAgICAgY29uc3QgSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eSo+JiBzZXJ2aWNlV29ya2VyUHJveGllcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3NlczsgfQogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKGJvb2wgYWxsb3dzKSB7IG1fYWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyID0gYWxsb3dzOyB9CiAgICAgYm9vbCBhbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVu
dC5oCmluZGV4IGU5ZmNmMDAxNTM5OTVkYzFjY2UxMzVmOGMwOTJlOTJlNjZkYmZmM2EuLmQ0ZmVj
NTMzMjVlMWYyMWQzMmViNDAwMzgyYzI5Njc5NjZlNzUxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xp
ZW50LmgKQEAgLTI1LDYgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eS5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00MSw2ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOwogICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYgY2hhbGxlbmdlKQorICAgIHsKKyAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBs
ZXRlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1E
ZWZhdWx0SGFuZGxpbmcpOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjMzBhNjhk
M2Q1ZDZjNmEyZjhiMjNhM2U3ZThmYTBiYjY2ZTQ4ODkuLjhlMTFlMGMwYTE5Yzc0MTY2YmQ0MWQ0
NzMwZmFmZWZmYmNjMTlhZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0xMiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgV2Vic2l0ZURhdGFTdG9yZSBkZWxl
Z2F0ZSB0byBoYW5kbGUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgdGhhdCBkbyBub3QgY29tZSBm
cm9tIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBY2NlcHQgYW55IHNlcnZlciBjZXJ0aWZpY2F0ZSwgb3RoZXJ3aXNlIGRvIHRoZSBkZWZhdWx0
IGhhbmRsaW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0
ZURhdGFTdG9yZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtUZXN0V2Vic2l0ZURhdGFTdG9yZURl
bGVnYXRlIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKwogMjAxOS0wNC0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xvc2Ugc2VydmljZSB3b3JrZXIgZGF0YWJhc2Ugb24gbmV0d29yayBwcm9jZXNz
IHN1c3BlbnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQppbmRleCA4ZWY0NjdhZTViYjMwMmRi
ZTY3NThmNGM5Zjc5Y2Q5ZmZmM2MyNzBjLi5mODQwMjdmNmVlZGRmNzk3MWE3MDdjNDNmMWNjZTBm
ZDQ5YWEzMGVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tCkBAIC00Miw0ICs0MiwxNSBAQCAt
ICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFpc2luZ1F1b3Rh
CiB7CiAgICAgX3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhID0gc2hvdWxkQWxsb3dSYWlzaW5nUXVv
dGE7CiB9CisKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24s
IE5TVVJMQ3JlZGVudGlhbCAqIF9OdWxsYWJsZSBjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxl
cgoreworICAgIE5TU3RyaW5nICptZXRob2QgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmF1
dGhlbnRpY2F0aW9uTWV0aG9kOworICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdKSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVk
ZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDogY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2
ZXJUcnVzdF0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nLCBuaWwpOwor
fQorCiBAZW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZjMwOTYzYTIyYTM2YWVkMmQ2Mjk5Y2MxMjBjYTkyOGI3ZTEzMzU2
YS4uYjhlNjQ1N2Y4OTE0YzE5Y2EwMDNlMjNkNzNkM2M5ZmIzMTc5ZWI1OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE5LTA0LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYSBXZWJzaXRlRGF0YVN0b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSB0aGF0IGRvIG5vdCBjb21lIGZyb20gcGFnZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njg3MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvYmVhY29u
L2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sOgorCiAy
MDE5LTA0LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2Ugbm9ybWFsIGxvYWRpbmcgcGF0aCBmb3IgcGluZyBsb2FkcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5v
LXByZWZsaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3Nv
cmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCmluZGV4IGZhNDg2MGI2MzQx
NTRlNDgxNDJlMmM2MDkyMzg2MzRkYzEwZjAxOGUuLmRlYWVkYTBkMmIyN2ZmMTFhYjBkMjFlYTAw
OWQ2MzUzMDNjMWU1MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9j
b3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZp
ZXctbm8tcHJlZmxpZ2h0Lmh0bWwKQEAgLTI3LDExICsyNywxNiBAQCBmdW5jdGlvbiBwb2xsUmVz
dWx0KHRlc3QsIGlkKSB7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDT1JTUHJlZmxpZ2h0U3VjY2Vzcyh3
aGF0KSB7Ci0gIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9URV9PUklH
SU4gKyBSRVNPVVJDRVNfRElSOworICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRU
UFNfUkVNT1RFX09SSUdJTiArIFJFU09VUkNFU19ESVI7CiAgIHZhciBpZCA9IHNlbGYudG9rZW4o
KTsKICAgdmFyIHRlc3RVcmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93
Q29ycz0xJmNtZD1wdXQmaWQ9IiArIGlkOwogCi0gIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkg
PT4geyB9KTsKKyAgICB9CisKICAgICBhc3NlcnRfdHJ1ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0
ZXN0VXJsLCB3aGF0KSwgIlNlbmRCZWFjb24gU3VjY2VlZGVkIik7CiAgICAgcmV0dXJuIHBvbGxS
ZXN1bHQodGVzdCwgaWQpIC50aGVuKHJlc3VsdCA9PiB7CiAgICAgICBhc3NlcnRfZXF1YWxzKHJl
c3VsdFsncHJlZmxpZ2h0J10sIDAsICJEaWQgbm90IHJlY2VpdmUgQ09SUyBwcmVmbGlnaHQiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368012</attachid>
            <date>2019-04-22 22:05:33 -0700</date>
            <delta_ts>2019-04-23 08:30:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196870-20190422220532.patch</filename>
            <type>text/plain</type>
            <size>53589</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzMDlmNzdhNzhiNTRiMWM2
MWM4NjljOTI0M2YzYmNhZjBlNTAwMmEuLmI3ZDE5YmFhYjI2NzA2OTQ1N2RhZjQ2NDAxODBkNDky
YjE5MDM0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDQtMjIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBOZXR3b3JrUHJvY2VzcyBwcm92aWRlIHRoZSBzZXNzaW9uIElEIGZvciBh
bnkgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIG5v
IGFzc29jaWF0ZWQgcGFnZSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBvciB0aGlz
IGlzIHJlbGF0ZWQgdG8gYSBzZXJ2aWNlIHdvcmtlciwKKyAgICAgICAgYXNrIHRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gdGFrZSBhIGRlY2lzaW9uLgorICAgICAgICBBZGQgd2Vic2l0ZSBkYXRh
IHN0b3JlIGRlbGVnYXRlIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHRoZSBkZWNpc2lv
bi4KKyAgICAgICAgUmVzdHJpY3QgdXNpbmcgdGhlIGRlbGVnYXRlIHRvIHNlcnZlciB0cnVzdCBl
dmFsdWF0aW9uIG9ubHkuCisKKyAgICAgICAgTWFrZSBwaW5nIGxvYWRzIHJldXNlIHRoZSBzYW1l
IG1lY2hhbmlzbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHNlcnZpY2Ugd29ya2VyIHRlc3RzIGFu
ZCB1cGRhdGVkIGJlYWNvbiB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0
YVRhc2s6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6bmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFNoYXJl
ZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9u
Q29jb2EuaDogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlLmguCisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbTogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50Q2Vy
dGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oLgorICAgICAgICAoV2ViS2l0Ojp0
b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24pOgorICAgICAgICAqIFNoYXJlZC9B
dXRoZW50aWNhdGlvbi9jb2NvYS9DbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29u
c3RhbnRzLmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKFdlYnNpdGVEYXRh
U3RvcmVDbGllbnQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjppc1NlcnZpY2VXb3JrZXJQYWdlSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmVDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMDQtMjEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRGVmZXIgRWRpdG9yU3Rh
dGUgdXBkYXRlcyB1bnRpbCB0aGUgbmV4dCBsYXllciB0cmVlIGZsdXNoIGluIGEgZmV3IGFkZGl0
aW9uYWwgY2lyY3Vtc3RhbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmluZGV4IDJiMGExYzM3
OWVjZDg2NjJiMDA4MWY0ZGIyZWU1MTc5MDVhOTU1YzQuLjQxZWUxZDBlY2U3ODk1ZGMxN2MzNzhm
NThiZGQ3Y2ZjNDdkNWNmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTEwMiw3ICsx
MDIsNyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZUNoYWxs
ZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVy
cy5mcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBt
X25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnBh
Z2VJRCwgbV9wYXJhbWV0ZXJzLmZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCiB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9u
c2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGYxZjAxMTE1ZDIz
MWFhYmQ3ZGUwZWQwMGMwNzg0ZjE4OGYwOWNjNTQuLjFjNTc5ZTdhOTYxNTYxMjk1ZjE0OGRjNGQ3
NWY5ZGZmZjYyNzA2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAKQEAgLTE0NSw0ICsxNDUsOSBAQCBTdHJpbmcgTmV0d29ya0RhdGFU
YXNrOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAK
K1BBTDo6U2Vzc2lvbklEIE5ldHdvcmtEYXRhVGFzazo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zZXNzaW9uLT5zZXNzaW9uSUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApp
bmRleCBjZTdiMmFkNTA2MzY1YTQzMjhiYTU3M2FmMTYxNzA5NjBiYWJmYmNhLi45NGY0MDY1ZDcy
MmNkN2IwOGVlN2ZkYWM2MGJkYzYxNmU2ZjQ3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMjgsNiArMTI5LDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsKIAorICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya0Rh
dGFUYXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggM2E2ZmExMGNmOWY3ZWQ0YmZjZDgzZDBiYTI3
NDY4ZWIyMzE3MDYwYi4uMzk5NGM3N2RkMTFmYjEwM2JjZDZkNTEzZWY0YWNiODQ3ZjRhNDkyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTE4
OSw3ICsxODksNyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBDaGFsbAogICAgIGlmIChhdXRvKiBwZW5k
aW5nRG93bmxvYWQgPSBtX3Rhc2stPnBlbmRpbmdEb3dubG9hZCgpKQogICAgICAgICBtX25ldHdv
cmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKnBlbmRpbmdEb3dubG9hZCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiAgICAgZWxzZQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50
aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRo
ZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV90
YXNrLT5zZXNzaW9uSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2
b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJl
c3BvbnNlLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApp
bmRleCAzMWQxMWMzYThhZWNiMmFhZmQ0OWU1YzMxMDM5OGUwYWMxNmRkZWU3Li5iODJlZmY5NGJi
NTM3OTg1MzQxNGVlZDExNjVkYWNhYzJkYjE1N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTgyLDYgKzgyLDggQEAgcHVi
bGljOgogICAgIH0KICNlbmRpZgogCisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
KCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2VzczsgfQorCiAgICAgY29uc3QgVVJMJiB1cmwoKSBj
b25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQu
Y3BwCmluZGV4IDIxYmM3YTRlOWIyM2UyMjcxNTFkMDEwZTQ5NTU0ZDljY2M1ZjRiMmUuLmMzYjcy
YjIxMjQwMjIzYWIxMmM1ZTY3Y2U2Mjk1M2I0YzA1YzRhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBQaW5nTG9h
ZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5n
ZSwgQ2hhbGxlbmcKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hh
bGxlbmdlIik7CiAgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNh
dGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVy
VHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcs
IHsgfSk7CisgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1
dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSht
X3BhcmFtZXRlcnMuc2Vzc2lvbklELCAwLCAwLCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNmViMzM1
ZjA3ZDNjZmU2MjkwMDA3MWNkYWE3ODkzZjA0MzM1YmVhYS4uMWRhNTk5NzIzNjVhMDQ5OWVhYjlj
NmI2ODY5YmIzYzNjOGFiZWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgs
MTggKzEwOCwxNSBAQCBWZWN0b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29h
bGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcodWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVu
Z2VzVG9Db2FsZXNjZTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
QXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBBU1NFUlQocGFnZUlEKTsKLSAgICBBU1NFUlQoZnJhbWVJRCk7Ci0KICAgICB1aW50NjRfdCBj
aGFsbGVuZ2VJRCA9IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKHsgcGFnZUlELCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7CiAKICAgICAv
LyBDb2FsZXNjZSBjaGFsbGVuZ2VzIGluIHRoZSBzYW1lIHByb3RlY3Rpb24gc3BhY2UgYW5kIGlu
IHRoZSBzYW1lIHBhZ2UuCiAgICAgaWYgKHNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKHBhZ2VJRCwg
Y2hhbGxlbmdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpE
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpKTsKKyAgICBtX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHNlc3Npb25JRCwgcGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwg
Y2hhbGxlbmdlSUQpKTsKIH0KIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShJUEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDdmZTM5OWUwYjdlOTQ1OGJkOTE3ODI1OTM4NDFlNGM0
NDkzMzVhZTEuLmQ4ZTJiODU4ZmJhMzgwYTVmYTM3MTg2MDI4YmRkMWI2M2JiYWYyZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRp
b25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBD
OjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIHZvaWQgY29t
cGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVudGlhbCYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bkNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5MjU4YTRjNzFiYjBjN2RlOTkwYjQyYmY3MmM0ZjM2Yjlj
YzFlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oCkBAIC0w
LDAgKzEsMzUgQEAKKyAgLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCisjaW1wb3J0IDxGb3VuZGF0aW9uL05T
VVJMU2Vzc2lvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNV
UkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2Nv
YS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZhNDY2MWNhYzlkZTcxODhiZTRlNmZkMmYz
YzI2ZTQ3MGIyYTE2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2Nv
YS5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uIHRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbihOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24pCit7CisgICAgc3dpdGNoIChkaXNwb3Np
dGlvbikgeworICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWw6
CisgICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VD
cmVkZW50aWFsOworICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZvcm1EZWZh
dWx0SGFuZGxpbmc6CisgICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nOworICAgIGNhc2UgTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOgorICAgICAgICByZXR1cm4g
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6Q2FuY2VsOworICAgIGNhc2UgTlNV
UkxTZXNzaW9uQXV0aENoYWxsZW5nZVJlamVjdFByb3RlY3Rpb25TcGFjZToKKyAgICAgICAgcmV0
dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25T
cGFjZUFuZENvbnRpbnVlOworICAgIH0KKyAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlk
QXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiSW52YWxpZCBOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlRGlzcG9zaXRpb24gKCVsZCkiLCAobG9uZylkaXNwb3NpdGlvbl07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vY29jb2EvQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50Q2VydGlm
aWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oCmluZGV4IGY4ZWRmZjgxMmYzZjBhNzUw
ZWUxY2I1NTdmYzI2NTM1OWI1NjBjN2YuLjk4MWY1MjI0NWFiYzc1NWY2MTI5NGUxM2FjNmZkNzMx
NDc5OTI4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L2NvY29hL0NsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9DbGllbnRDZXJ0aWZp
Y2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmgKQEAgLTEsNCArMSw0IEBACi0vKgorICAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZkMzhkYTMz
MWIyNGUwZjU3YjExOTg5MmI0NTUxNzNiMjZkNGQ1YTAuLjRhNDE3Y2E3OTU1NjFmYzhhYzdkNzQy
NGFkODIxOTY4NjBkY2VkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTEzMiw2ICsxMzIs
NyBAQCBTaGFyZWQvY2YvQ29va2llU3RvcmFnZVV0aWxzQ0YubW0KIAogU2hhcmVkL2NnL1NoYXJl
YWJsZUJpdG1hcENHLmNwcAogCitTaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tCiBTaGFyZWQvQXV0aGVudGljYXRpb24v
Y29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW0KIFNoYXJlZC9BdXRoZW50aWNhdGlv
bi9jb2NvYS9DbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmNwcAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5tbQppbmRleCAyNmUxMTgyYzFjY2QwNWVkZjY5YjczOTUxYzY1ZTdmNTE5YWQ3
OTcxLi5lYzRlYjg3MTM3NzgzZTllNDQ0NjkwNzU5NWJkYTQ4MDQ3ZDI0NWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0KQEAgLTI3LDkgKzI3LDExIEBACiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRl
cm5hbC5oIgogCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKKyNpbXBvcnQgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tOU0FycmF5LmgiCisjaW1wb3J0ICJXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYnNpdGVE
YXRhUmVjb3JkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgpAQCAtMzgsNiAr
NDAsNyBAQAogI2ltcG9ydCAiV2Vic2l0ZURhdGFGZXRjaE9wdGlvbi5oIgogI2ltcG9ydCAiX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW1wb3J0
IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CkBAIC00OCw2ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBXZWJzaXRlRGF0YVN0b3JlQ2xpZW50KGlkIDxfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGU+IGRlbGVnYXRlKQogICAgICAgICA6IG1fZGVsZWdhdGUoZGVsZWdhdGUpCiAgICAg
ICAgICwgbV9oYXNSZXF1ZXN0U3RvcmFnZVNwYWNlU2VsZWN0b3IoW21fZGVsZWdhdGUuZ2V0KCkg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0U3RvcmFnZVNwYWNlOiBmcmFtZU9y
aWdpbjogcXVvdGE6IGN1cnJlbnRTaXplOiBzcGFjZVJlcXVpcmVkOiBkZWNpc2lvbkhhbmRsZXI6
KV0pCisgICAgICAgICwgbV9oYXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbGVjdG9yKFttX2Rl
bGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOiBjb21wbGV0aW9uSGFuZGxlcjopXSkKICAgICB7CiAgICAgfQog
CkBAIC03Myw4ICs3NywyOCBAQCBwcml2YXRlOgogICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRv
cmVsZWFzZWQoKSByZXF1ZXN0U3RvcmFnZVNwYWNlOm1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjpm
cmFtZVVSTCBxdW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVk
OnNwYWNlUmVxdWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAg
ICAgfQogCisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVmPFdl
YktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpIGZpbmFsCisg
ICAgeworICAgICAgICBpZiAoIW1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB8
fCAhbV9kZWxlZ2F0ZSkgeworICAgICAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBs
ZXRlQ2hhbGxlbmdlKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBhdXRvIG5zVVJMQ2hhbGxlbmdlID0gd3JhcHBlcihjaGFsbGVuZ2UpOworICAg
ICAgICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6
OmNyZWF0ZShtX2RlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpLCBAc2VsZWN0b3IoZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiBjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAg
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY2hhbGxlbmdlID0gV1RGTW92
ZShjaGFsbGVuZ2UpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKmNyZWRl
bnRpYWwpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5k
bGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgY2hhbGxl
bmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKFdlYktpdDo6dG9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZURpc3Bvc2l0aW9uKGRpc3Bvc2l0aW9uKSwgV2ViQ29yZTo6Q3JlZGVudGlhbChj
cmVkZW50aWFsKSk7CisgICAgICAgIH0pOworCisgICAgICAgIFttX2RlbGVnYXRlLmdldEF1dG9y
ZWxlYXNlZCgpIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpuc1VSTENoYWxsZW5n
ZSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlci5nZXQoKV07CisgICAgfQorCiAg
ICAgV2Vha09iakNQdHI8aWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gPiBtX2RlbGVn
YXRlOwogICAgIGJvb2wgbV9oYXNSZXF1ZXN0U3RvcmFnZVNwYWNlU2VsZWN0b3IgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9oYXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbGVjdG9yIHsgZmFsc2Ug
fTsKIH07CiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYnNpdGVEYXRhU3RvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlRGVsZWdhdGUuaAppbmRleCA5YjBlNzE3MTBjYzJiOWE0ZWJiNGNhZmQyMGVlMzg3YmE0
YmFkNzdkLi5kYzQxMjg4MTFhMmRiZjc2MjE4MTlhZTVjMDE2YTBlMTEyNDk3Nzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCkBAIC0zNCw0ICszNCw2IEBAIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIAogLSAodm9pZClyZXF1ZXN0
U3RvcmFnZVNwYWNlOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjooTlNVUkwgKilm
cmFtZVVSTCBxdW90YTooTlNVSW50ZWdlcilxdW90YSBjdXJyZW50U2l6ZTooTlNVSW50ZWdlcilj
dXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOihOU1VJbnRlZ2VyKXNwYWNlUmVxdWlyZWQgZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpKWRlY2lzaW9uSGFu
ZGxlcjsKIAorLSAodm9pZClkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
TlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcjsKKwogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmlu
ZGV4IDUyNjk0N2Y3MjQzZDVlOGMxNGE1YWI1NWNhZDlmNGFmOWZmOTkyMTguLmIwNDYwNjZiOWRl
MjgwMzA1ZjBiOTM5MzQwMjJkZjZkMzJkOTlhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBv
cnQgIkFQSVVSTC5oIgogI2ltcG9ydCAiQVBJV2Vic2l0ZURhdGFTdG9yZS5oIgogI2ltcG9ydCAi
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2ltcG9ydCAiQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNr
ZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKQEAgLTk0NCwyMSArOTQ1LDYgQEAgYm9vbCBOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnNob3VsZEJ5cGFzc0NvbXBhdGliaWxpdHlN
b2RlU2FmZWd1YXJkcygKICAgICByZXR1cm4gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0
aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyOwogfQogCi1zdGF0aWMgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24o
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQotewotICAg
IHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVu
Z2VVc2VDcmVkZW50aWFsOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbDsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKLSAgICBjYXNl
IE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToK
LSAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNl
bDsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3Bh
Y2U6Ci0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpS
ZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKLSAgICB9Ci0gICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25d
OwotfQotICAgIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBpZiAoIW1f
bmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpCkBAIC05NzMsNyAr
OTU5LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWcKICAgICAgICAgaWYgKGNoZWNrZXItPmNv
bXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgY2hhbGxl
bmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKHRvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbihkaXNwb3NpdGlvbiksIENyZWRlbnRpYWwoY3JlZGVudGlhbCkpOworICAg
ICAgICBjaGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoV2ViS2l0Ojp0b0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oZGlzcG9zaXRpb24pLCBDcmVkZW50aWFs
KGNyZWRlbnRpYWwpKTsKICAgICB9KS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGMz
NDRkMTYzODI3MzViMGI2ODNjNjk2ZjliNjYyNjcxMDcxZDg0NjQuLjg4OThjMjE0NjA4OGM5ZDI4
ZjIxNDdkZjFiYjllMWI5YjM2NjM4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOSBA
QAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5o
IgorI2VuZGlmCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5j
bHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0LmgiCkBAIC0zMTEsMjAgKzMxNCwzNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0
YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBj
aGFsbGVuZ2VJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNv
cmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewotI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLSAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9IG1fcHJv
Y2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFnZUlEKSkgewot
ICAgICAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBt
YWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxscHRyKTsKLSAgICAgICAgc2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBhZ2VJRCwgZnJh
bWVJRCwgV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpOwotICAgICAgICByZXR1cm47
CisjaWYgSEFWRShTRUNfS0VZX1BST1hZKQorICAgIFdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4g
c2VjS2V5UHJveHlTdG9yZTsKKyAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uo
KS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHN0
b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKSkgeworICAgICAg
ICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlTdG9yZTo6Y3JlYXRl
KCk7CisgICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbWFrZVdlYWtQdHIobmV3U2VjS2V5
UHJveHlTdG9yZS5nZXQoKSk7CisgICAgICAgICAgICBzdG9yZS0+YWRkU2VjS2V5UHJveHlTdG9y
ZShXVEZNb3ZlKG5ld1NlY0tleVByb3h5U3RvcmUpKTsKKyAgICAgICAgfQogICAgIH0KKyAgICBh
dXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBtYWtlUmVmKCpj
b25uZWN0aW9uKCkpLCBXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKKyNlbHNlCisgICAgYXV0
byBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6
OmNyZWF0ZShXVEZNb3ZlKGNvcmVDaGFsbGVuZ2UpLCBjaGFsbGVuZ2VJRCwgbWFrZVJlZigqY29u
bmVjdGlvbigpKSwgbnVsbHB0cik7CiAjZW5kaWYKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwotICAgIE1FU1NBR0VfQ0hFQ0socGFn
ZSk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gbnVsbHB0cjsKKyAgICBpZiAocGFnZUlEICYm
ICFtX3Byb2Nlc3NQb29sLmlzU2VydmljZVdvcmtlclBhZ2VJRChwYWdlSUQpKSB7CisgICAgICAg
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICAgICAgTUVTU0FH
RV9DSEVDSyhwYWdlKTsKKyAgICB9CiAKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxs
ZW5nZSksIGNoYWxsZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBwYWdlLT5zZWNLZXlQ
cm94eVN0b3JlKGNvcmVDaGFsbGVuZ2UpKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgYXV0
byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOworICAg
ICAgICBpZiAoIXN0b3JlIHx8IGNvcmVDaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVu
dGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNl
cnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgICAgICAgICAgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3RvcmUtPmNsaWVudCgpLmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgcGFnZS0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkoZnJhbWVJRCwgV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGZjYjJiNzhiNDVkYzU3MmMzNzg4M2U4ZTZhODBmYmJm
OGRiMWE2YzMuLjNkOThiY2ViYjIyZDY2MWY5ODQ2ZDRiNTNmOTFlYTQ3NDEyMTA5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCkBAIC0yMDcsNyArMjA3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRs
ZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNo
YWxsZW5nZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAg
dm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNp
dGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBj
YWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiZTk4ZTY2NjMw
ZmFkNzkwNjEwOTIwY2VmODUyNzVkYzk3YWQxZjFkLi45ZmI0Y2ZkZWJiY2VmYmI3NGU0OTlmNmZm
OTA5OTA5ZDM2MGQ3YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3
ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVy
IHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQor
ICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAg
IERpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6
V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0
X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggZjFmZjJmMWYyNTZmMDhjNDMyNzYwZDk1Njkz
YThiNmE0ZWU4NzFkNC4uMGNiNzliZjIwMGE2ODg3MDAyZDU3MjYzODk2MzYxYmVkNzJiOTY5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5jcHAKQEAgLTkwLDIyICs5MCw2IEBAIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlVwZGF0ZVBy
ZWZlcmVuY2VzU3RvcmUgeyBzdG9yZSB9LCAwKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
JiBjaGFsbGVuZ2UpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgVU5VU0VEX1BB
UkFNKGZyYW1lSUQpOwotCi0gICAgLy8gRklYTUU6IEV4cG9zZSBhbiBBUEkgdG8gZGVsZWdhdGUg
dGhlIGFjdHVhbCBkZWNpc2lvbiB0byB0aGUgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgYXV0byYg
cHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCk7Ci0g
ICAgaWYgKHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkICYmIHByb2Nlc3NQb29sKCkuYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2
aWNlV29ya2VyKCkpIHsKLSAgICAgICAgYXV0byBjcmVkZW50aWFsID0gV2ViQ29yZTo6Q3JlZGVu
dGlhbCgiYWNjZXB0IHNlcnZlciB0cnVzdCJfcywgZW1wdHlTdHJpbmcoKSwgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7Ci0gICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5j
b21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VD
cmVkZW50aWFsLCBjcmVkZW50aWFsKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5n
ZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRs
aW5nKTsKLX0KLQogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVu
Y2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
NmY3NTllOWZmNDVmZDVhZmNlMjczYmFlYjNmMDVkYmQ2YTA5Zjc5OC4uYzVkYTRjY2RjZTU4MjBm
NWQwNTY1NTcwZTNkOTBhM2NhMmRjYTEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsOCArNDEsNiBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3Qg
U3RyaW5nJiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
UmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwotCiAgICAgdm9pZCBzdGFydChj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IGluaXRp
YWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgdXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiNjdkYzIyMjgx
NjcxY2ViZDVkMDAwYzIwNGQ1NTA2NzM3M2YzYjc3Li5lZDdiM2RkOGYzY2QzM2IzZGVhZTdiNmYw
MmNlZDI0OWM4ZTg3MDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTcxNjgsMTkgKzcxNjgsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2FtZXBhZEFjdGl2
aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbAogCiAjZW5k
aWYKIAotV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBXZWJQYWdlUHJveHk6OnNlY0tleVByb3h5
U3RvcmUoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkK
LXsKLSNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCi0gICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9u
U3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKLSAgICAgICAgYXV0byBz
ZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlTdG9yZTo6Y3JlYXRlKCk7Ci0gICAgICAgIGF1
dG8gd2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cihzZWNLZXlQcm94eVN0b3JlLmdldCgpKTsKLSAg
ICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5hZGRTZWNLZXlQcm94eVN0b3JlKFdURk1vdmUoc2Vj
S2V5UHJveHlTdG9yZSkpOwotICAgICAgICByZXR1cm4gd2Vha1BvaW50ZXI7Ci0gICAgfQotI2Vu
ZGlmCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0gICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkodWludDY0X3QsIFJlZjxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAg
IG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0
aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggN2NiMWJiNDBhYTg2NDg3OTIwZjljNGQxNTM1
MzRjMDI2ZTQ3ZDQ4OS4uMjQyMGQ5ZGM1NzJkZGZlNmQ3NzYxZDFiOTIxOWIwZTRlMjJhNDU0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjE5OCwx
NyArMjE5OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWluc3RhdGVOZXR3b3JrUHJvY2Vz
c0Fzc2VydGlvblN0YXRlKE5ldHdvcmtQcm9jZXNzUHJveHkmCiAjZW5kaWYKIH0KIAotI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLVNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIFdlYlByb2Nl
c3NQb29sOjpzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdl
SUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQb29sOjppc1NlcnZpY2VXb3JrZXJQYWdlSUQodWlu
dDY0X3QgcGFnZUlEKSBjb25zdAogeworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAv
LyBGSVhNRTogVGhpcyBpcyBpbmVmZmljaWVudC4KICAgICBmb3IgKGF1dG8qIHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzIDogbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzLnZhbHVlcygpKSB7CiAgICAgICAg
IGlmIChzZXJ2aWNlV29ya2VyUHJvY2Vzcy0+cGFnZUlEKCkgPT0gcGFnZUlEKQotICAgICAgICAg
ICAgcmV0dXJuIHNlcnZpY2VXb3JrZXJQcm9jZXNzOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQogI2VuZGlmCisgICAgcmV0dXJuIGZhbHNl
OworfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjphZGRQcm9jZXNzVG9PcmlnaW5DYWNoZVNldChX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIGNvbnN0IFVSTCYgdXJsKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNDllZjk3MjM2ODUxYzUzMzJhODI3ZDM2
ODM1MWFhZTc4N2U1NjUzNy4uNjY0OTMzMjhiN2NjOTRlYTJjZTc2YzIwMjA0ZDU3MDcyYTg5OWZl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zNjMsOSAr
MzYzLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
V2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJik7CiAKKyAgICBib29sIGlzU2VydmljZVdv
cmtlclBhZ2VJRCh1aW50NjRfdCBwYWdlSUQpIGNvbnN0OwogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3Jr
UHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiwgT3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKLSAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRCh1aW50NjRfdCBwYWdlSUQp
IGNvbnN0OwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqPiYgc2VydmljZVdvcmtlclByb3hpZXMoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXM7IH0KICAgICB2b2lkIHNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihib29sIGFsbG93cykgeyBtX2FsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlciA9IGFsbG93czsgfQogICAgIGJvb2wgYWxs
b3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
bGllbnQuaAppbmRleCBlOWZjZjAwMTUzOTk1ZGMxY2NlMTM1ZjhjMDkyZTkyZTY2ZGJmZjNhLi5k
NGZlYzUzMzI1ZTFmMjFkMzJlYjQwMDM4MmMyOTY3OTY2ZTc1MWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNsaWVudC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNDEsNiArNDQsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5PiYmIGNoYWxsZW5nZSkKKyAgICB7CisgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5j
b21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGQ0YzdiNTQ2N2VhZmVhY2Y4NTFmNGVkOWYxZWRkY2IxODgxN2RhM2QuLmE1OGFjYzM4ZjdkN2U4
NjYyOTU5ZjFjMTlhYzdmZmM1ZDY3YWMxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzEwNiw2ICszMTA2LDggQEAKIAkJNDE4OTdF
RDUxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFRDYxRjQxNUQ4NjAwMTZGQTQyIC8qIENh
Y2hlU3RvcmFnZUVuZ2luZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdp
bmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y5QjFGOTgxRDI2MDA5
RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxQUM4NjgxMUUwNDJFNTMwMDMwMzA3NCAvKiBXZWJSVENSZXNvbHZlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAwOyBuYW1lID0gV2ViUlRD
UmVzb2x2ZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0gIjxub25lPiI7IH07CiAJCTQxQjI4QjA4MUY4M0FEM0UwMEZCNTJB
QyAvKiBSVENQYWNrZXRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1BhY2tldE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCMjhC
MDkxRjgzQUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02OTAxLDYgKzY5MDMsOCBAQAogCQk1N0I0QjQ1QzIwQjUwNDhC
MDBENEFENzkgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLywKKwkJCQk0MUE1RjdCQTIyNkVDRjdDMDA2NzE3NjQg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tICovLAogCQkJCTU3
QjRCNDVEMjBCNTA0QUIwMEQ0QUQ3OSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAq
LywKIAkJCQk0NEE0ODFDNjIxRjJEMjdCMDBGMkY5MTkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRo
ZW50aWNhdGlvblhQQ0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTdCNEI0NUUyMEI1MDRBQjAwRDRB
RDc5IC8qIENsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaCAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMGRl
N2U5ZjJjYzQ1NGZiY2I2Y2RjMGQ3MjdjMDQ0ZmMyMmRjZGNjLi4xNDJhYmU5OTFiODE4N2RlN2Nk
MzI0MjM2YzY4Y2FhYmFmMTU0N2M4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDQtMjIgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3RvcmUg
ZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90IGNv
bWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHRoZSBuZXcgZGVsZWdhdGUgYnkgcmVzcGVjdGluZyB0aGUgdmFsdWUg
c2V0IGJ5IHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUKKyAgICAgICAgQWNj
ZXB0IGFueSBzZXJ2ZXIgY2VydGlmaWNhdGUgYnkgZGVmYXVsdC4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlLm1tOgorICAgICAgICAoLVtUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSBzZXRBbGxvd0FueVNTTENlcnRpZmljYXRl
Ol0pOgorCiAyMDE5LTA0LTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNDEyODkpOiBbR1RLXSBhY2Nlc3NpYmlsaXR5
L3JlbW92ZWQtY29udGludWF0aW9uLWVsZW1lbnQtY2F1c2VzLWNyYXNoLmh0bWwgYW5kIGFjY2Vz
c2liaWxpdHkvcmVtb3ZlZC1hbm9ueW1vdXMtYmxvY2stY2hpbGQtY2F1c2VzLWNyYXNoLmh0bWwg
Y3Jhc2hlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBm
NmQzZDEwMWM4ODBkMTM2ZDQyODQ4MjBhNmMyNDk5ZGRmZTI0YTVmLi4yYTZmNmFmY2IwMTZhZTU1
Y2NlODA5OGQ3OTQ1MmJmM2UzNzBkNDk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtMTE2NSwxMCArMTE2NSwxMiBAQCBjb25zdCBjaGFyKiBUZXN0Q29u
dHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NOYW1lKCkKICNlbmRpZgogfQogCisjaWYgIVBMQVRGT1JN
KENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCBhbGxvd3MpCiB7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwogfQorI2VuZGlm
CiAKIHN0YXRpYyBzdGQ6OnN0cmluZyB0ZXN0UGF0aChXS1VSTFJlZiB1cmwpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5k
ZXggNDA4NzczNWJhMjViYjg1M2EyZTZjZmYwMDBmMmUwMzFhYmJjZmExMi4uNmY2MjcyMjZhMDA4
ZGFkMzc3OTBmNDRlNWNjZDExZGM0NDBmNzVkMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzUsNiArMzUsNyBAQAog
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJ
dGVtLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0Nvb2tp
ZU1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CkBAIC0yNjAsNiArMjYxLDcg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb24KICAgICB9CiAKICAgICBbZ2xvYmFsV2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOiB0cnVlXTsKKyAgICBb
Z2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93QW55U1NMQ2VydGlm
aWNhdGU6IHRydWVdOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5U
ZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0SW52b2NhdGlvbikKQEAgLTM5MSw2ICszOTMs
MTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShi
b29sIHZhbHVlKQogICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0
QWxsb3dSYWlzaW5nUXVvdGE6IHZhbHVlXTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBhbGxvd3MpCit7CisgICAgV0tDb250ZXh0U2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4
dCgpLCBhbGxvd3MpOworICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQg
c2V0QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTogYWxsb3dzXTsKK30KKwogYm9vbCBUZXN0Q29udHJv
bGxlcjo6Y2FuRG9TZXJ2ZXJUcnVzdEV2YWx1YXRpb25Jbk5ldHdvcmtQcm9jZXNzKCkgY29uc3QK
IHsKICNpZiBIQVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fU1RSSUNUUlVTVEVWQUxVQVRFKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaAppbmRleCA5MWI5NGZmZWZjNzM5ZTBkNjQyZDA2M2U1ZGQ3NmQ5
NDZkNWQ1MDk0Li5kNjM4ZTgyZGVhYjJiZjM2ZWE3N2NlOTg1YzQ3ZWNkMWE5ZDYzNTIwIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaApAQCAtMzAsNyArMzAsOSBAQAogQGludGVyZmFjZSBUZXN0V2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlOiBOU09iamVjdCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlPiB7CiBAcHJpdmF0ZQogICAgIEJPT0wgX3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhOworICAg
IEJPT0wgX3Nob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGU7CiB9CiAtIChpbnN0YW5jZXR5cGUp
aW5pdDsKIC0gKHZvaWQpc2V0QWxsb3dSYWlzaW5nUXVvdGE6KEJPT0wpc2hvdWxkQWxsb3dSYWlz
aW5nUXVvdGE7CistICh2b2lkKXNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6KEJPT0wpc2hvdWxk
QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQppbmRl
eCA4ZWY0NjdhZTViYjMwMmRiZTY3NThmNGM5Zjc5Y2Q5ZmZmM2MyNzBjLi5lMWY2OGU0OGFmNzM4
MDk3M2UyOTk5ZDkwODU1NDVkYzViZjIxY2RiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tCkBA
IC00Miw0ICs0MiwyMyBAQCAtICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3Vs
ZEFsbG93UmFpc2luZ1F1b3RhCiB7CiAgICAgX3Nob3VsZEFsbG93UmFpc2luZ1F1b3RhID0gc2hv
dWxkQWxsb3dSYWlzaW5nUXVvdGE7CiB9CisKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9z
aXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqIF9OdWxsYWJsZSBjcmVkZW50aWFs
KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIE5TU3RyaW5nICptZXRob2QgPSBjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kOworICAgIGlmIChbbWV0aG9kIGlz
RXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdKSB7Cisg
ICAgICAgIGlmIChfc2hvdWxkQWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZSkKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBb
TlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDogY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZS5zZXJ2ZXJUcnVzdF0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlQ2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UsIG5pbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsIG5pbCk7
Cit9CisKKy0gKHZvaWQpc2V0QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTooQk9PTClzaG91bGRBbGxv
d0FueVNTTENlcnRpZmljYXRlCit7CisgICAgX3Nob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGUg
PSBzaG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGMyNTM2
OWQyOGE3YmE2NGFmZjI2MWVlMjc5ODg1NjE4ZTMzYjJiNC4uNzhkMWQ5N2E1NTkxNzYyMTNiMTUw
NGQ3MDk4YTAwODljZmYxNTZlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTA0LTIyICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBXZWJzaXRl
RGF0YVN0b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSB0aGF0
IGRvIG5vdCBjb21lIGZyb20gcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Njg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBkZWxlZ2F0ZSBk
ZWNpc2lvbiBpcyByZXNwZWN0ZWQgZm9yIGJlYWNvbnMgYW5kIHNlcnZpY2Ugd29ya2VyIGxvYWRz
LgorCisgICAgICAgICogaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZm
ZXJ2aWV3LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvYmVh
Y29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sOgor
ICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLXByZWZsaWdodC5weToK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvbGVuZ3RoeS1wYXNzLnB5OgorICAgICAgICAobWFpbik6CisgICAgICAgICogaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10
cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzOiBBZGRlZC4KKwogMjAxOS0wNC0y
MiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjI0MDcyNykgWyBNYWMgaU9TIF0gTGF5b3V0IFRlc3QgaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZl
cnZpZXctbm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Jl
YWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0
ZWQudHh0CmluZGV4IDE4OTVmYzY1Mjk1ZjM3M2MzNDE1ZDBlYzE1MGI3NWMwMGEzNGJiMTUuLmU5
YTY5MzQ4MjJlNmE3OWE5NWFiZTY5MTdkMDllMGFjZTdiYzBlNzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1u
by1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNv
bi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBCZWFjb24gQVBJIGNhbm5vdCBs
b2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvV2ViS2l0L2JlYWNvbi9yZXNvdXJjZXMvYmVhY29u
LXByZWZsaWdodC5weT9hbGxvd0NvcnM9MSZjbWQ9cHV0JmlkPWNhMzNjMDczLTFjZjAtNDFlNS1i
YmQ0LTU1OTY5ZmIxYTZjNy4gY2FuY2VsbGVkCiAKK1BBU1MgQmVhY29uIGxvYWQgc2hvdWxkIG5v
dCBiZSBzZW50IGlmIHNlcnZlciBpcyBub3QgdHJ1c3RlZC4gCiBQQVNTIFNob3VsZCBzZW5kIGJl
YWNvbiB3aXRoIG5vIENPUlMgcHJlZmxpZ2h0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxp
Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1h
cnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKaW5kZXggZmE0ODYwYjYzNDE1NGU0ODE0
MmUyYzYwOTIzODYzNGRjMTBmMDE4ZS4uOGI1YTgyMDBkOWY2YjQ0OTM1Mzg2YjY1ZWQ3NmJhNDc4
MjEwOTI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jv
c3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1w
cmVmbGlnaHQuaHRtbApAQCAtMjYsMTIgKzI2LDMzIEBAIGZ1bmN0aW9uIHBvbGxSZXN1bHQodGVz
dCwgaWQpIHsKICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RDT1JTUHJlZmxpZ2h0U3VjY2Vzcyh3
aGF0KSB7Ci0gIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9URV9PUklH
SU4gKyBSRVNPVVJDRVNfRElSOwotICB2YXIgaWQgPSBzZWxmLnRva2VuKCk7Ci0gIHZhciB0ZXN0
VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9hbGxvd0NvcnM9MSZjbWQ9cHV0
JmlkPSIgKyBpZDsKK2Z1bmN0aW9uIHRlc3RDT1JTUHJlZmxpZ2h0KHdoYXQpIHsKKyAgdmFyIHRl
c3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX1JFTU9URV9PUklHSU4gKyBSRVNPVVJDRVNf
RElSOworCisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGlk
ID0gImNhMzNjMDczLTFjZjAtNDFlNS1iYmQ0LTU1OTY5ZmIxYTZjNyI7CisgICAgdmFyIHRlc3RV
cmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93Q29ycz0xJmNtZD1wdXQm
aWQ9IiArIGlkOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgd2luZG93LnRl
c3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOworICAgICAgd2luZG93
LnRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgIGF3YWl0IGZldGNo
KCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBhc3NlcnRfdHJ1
ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgInNlbmRCZWFjb24gc3VjY2Vl
ZGVkIik7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9sbFJlc3VsdCh0ZXN0LCBpZCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ3ByZWZsaWdodCddLCAwLCAiRGlkIG5vdCByZWNlaXZl
IENPUlMgcHJlZmxpZ2h0IikKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsnYmVhY29uJ10sIDAs
ICJEaWQgbm90IHJlY2VpdmUgYmVhY29uIikKKyAgfSwgIkJlYWNvbiBsb2FkIHNob3VsZCBub3Qg
YmUgc2VudCBpZiBzZXJ2ZXIgaXMgbm90IHRydXN0ZWQuIik7CisKKyAgcHJvbWlzZV90ZXN0KGFz
eW5jIGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgaWQgPSBzZWxmLnRva2VuKCk7CisgICAgdmFy
IHRlc3RVcmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93Q29ycz0xJmNt
ZD1wdXQmaWQ9IiArIGlkOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisgICAgICB3
aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOworICAgICAgYXdhaXQg
ZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KIAotICBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odGVzdCkgewogICAgIGFzc2VydF90cnVlKG5hdmlnYXRvci5zZW5kQmVh
Y29uKHRlc3RVcmwsIHdoYXQpLCAiU2VuZEJlYWNvbiBTdWNjZWVkZWQiKTsKICAgICByZXR1cm4g
cG9sbFJlc3VsdCh0ZXN0LCBpZCkgLnRoZW4ocmVzdWx0ID0+IHsKICAgICAgIGFzc2VydF9lcXVh
bHMocmVzdWx0WydwcmVmbGlnaHQnXSwgMCwgIkRpZCBub3QgcmVjZWl2ZSBDT1JTIHByZWZsaWdo
dCIpCkBAIC01MSw3ICs3Miw3IEBAIGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXJWaWV3KGlu
cHV0KSB7CiAgIHJldHVybiB2aWV3OwogfQogCi10ZXN0Q09SU1ByZWZsaWdodFN1Y2Nlc3Moc3Ry
aW5nVG9BcnJheUJ1ZmZlclZpZXcoIjEyMyIpKTsKK3Rlc3RDT1JTUHJlZmxpZ2h0KHN0cmluZ1Rv
QXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMvYmVh
Y29uLXByZWZsaWdodC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMv
YmVhY29uLXByZWZsaWdodC5weQppbmRleCA5ZTY0ZTc2ZmZkNmUzYjljYTlhMWE1YzAzMmQ2MmU1
NjVkNWQ1ODQ4Li45ZmFjYzEyZmIwOTcyZTk4ODRkNTdlNDUyZmRmM2ViZWI0ZTgyYjU5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi1wcmVm
bGlnaHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3Jlc291cmNlcy9iZWFj
b24tcHJlZmxpZ2h0LnB5CkBAIC00NCwxMSArNDQsOSBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CiAgICAgICBzdGFzaGVkX2RhdGFbJ2JlYWNvbl9vcmlnaW4nXSA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoIk9yaWdpbiIsICIiKQogICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRl
c3RfaWQsIHN0YXNoZWRfZGF0YSkKICAgICByZXR1cm4gWygiQ29udGVudC1UeXBlIiwgInRleHQv
cGxhaW4iKV0sICIiCi0gIAorCiAgIGlmIGNvbW1hbmQgPT0gImdldCI6Ci0gICAgaWYgc3Rhc2hl
ZF9kYXRhIGlzIG5vdCBOb25lOgotICAgICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L3BsYWluIildLCBqc29uLmR1bXBzKHN0YXNoZWRfZGF0YSkKLSAgICByZXR1cm4gWygiQ29udGVu
dC1UeXBlIiwgInRleHQvcGxhaW4iKV0sICIiCisgICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIs
ICJ0ZXh0L3BsYWluIildLCBqc29uLmR1bXBzKHN0YXNoZWRfZGF0YSkKIAogICByZXNwb25zZS5z
ZXRfZXJyb3IoNDAwLCAiQmFkIENvbW1hbmQiKQogICByZXR1cm4gIkVSUk9SOiBCYWQgQ29tbWFu
ZCEiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL2xlbmd0aHktcGFzcy5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvbGVuZ3RoeS1wYXNzLnB5CmluZGV4IDk2MmE0ZGM3MmI0ZWIwMmNiZWY1
YmY4ZjlmNmFhMjEyNDE3ZmRmOGUuLjA0ZWY1N2FlNmI4YTkxYWQ5M2M0YmI2MjVhYzU3NzY0NGU0
YWJkNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvbGVuZ3RoeS1wYXNzLnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvbGVuZ3RoeS1wYXNzLnB5CkBAIC0zLDYgKzMsNyBAQCBpbXBv
cnQgdGltZQogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGRlbGF5ID0gMC4wNQog
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2NyaXB0
IikKKyAgICByZXNwb25zZS5oZWFkZXJzLmFwcGVuZCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luIiwgIioiKQogICAgIHJlc3BvbnNlLndyaXRlX3N0YXR1c19oZWFkZXJzKCkKICAgICB0aW1l
LnNsZWVwKGRlbGF5KTsKICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCgiZG9jdW1l
bnQiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Nl
cnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI0OGRmNGI4M2Q1YTliMzgzNzIzNmQzM2I3ZjhmZWYxMzY2
OGI0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACisKK1BBU1MgU2V0dXAgd29ya2VyIAorUEFTUyBTZXJ2aWNlIHdvcmtlciBsb2FkIHNo
b3VsZCBmYWlsIAorUEFTUyBTZXJ2aWNlIHdvcmtlciBsb2FkIHNob3VsZCBzdWNjZWVkIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRy
dXN0LWV2YWx1YXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBi
YTJmMzNiZjczOTU3MmJlNmI3MGRhNDFkYmViODI4Y2UyNWM2MmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1
YXRpb24uaHR0cHMuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PlNlcnZpY2UgV29ya2VyIHRyaWdnZXJpbmcgc2VydmVyIHRydXN0IGV2YWx1YXRpb248L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFy
IHJlZ2lzdHJhdGlvbjsKK3ZhciBpZnJhbWU7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIiIpLnRo
ZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbigicmVzb3VyY2VzLyIp
OworICAgIGlmIChyZWdpc3RyYXRpb24pCisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7CisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoInNlcnZlci10cnVzdC13b3JrZXIuanMiLCB7IHNjb3BlIDogInJlc291cmNl
cy8iIH0pOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYg
KGFjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICBhY3RpdmVXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9
PiB7CisgICAgICAgICAgICBpZiAoYWN0aXZlV29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikK
KyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlNl
dHVwIHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKGZhbHNlKTsKKworICAgIGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1l
KCJyZXNvdXJjZXMvaWZyYW1lMS5odG1sIik7CisgICAgYXNzZXJ0X3RydWUoaWZyYW1lLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwudHJpbSgpLmluZGV4T2YoIkxvYWQgZmFp
bGVkOiAiKSAhPT0gLTEpOworICAgIGlmcmFtZS5yZW1vdmUoKTsKK30sICJTZXJ2aWNlIHdvcmtl
ciBsb2FkIHNob3VsZCBmYWlsIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKKyAgICBpZnJhbWUgPSBhd2FpdCB3aXRo
X2lmcmFtZSgicmVzb3VyY2VzL2lmcmFtZTIuaHRtbCIpOworICAgIGFzc2VydF90cnVlKGlmcmFt
ZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MLnRyaW0oKS5pbmRleE9mKCJQ
QVNTIikgIT09IC0xKTsKKyAgICBpZnJhbWUucmVtb3ZlKCk7Cit9LCAiU2VydmljZSB3b3JrZXIg
bG9hZCBzaG91bGQgc3VjY2VlZCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXIt
dHJ1c3Qtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzMGM4ODljNTNjYjVmYWNkNmE2NWUwZGEzNmFh
ZDdkNDA0MWMwMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LXdvcmtlci5qcwpAQCAtMCwwICsxLDUgQEAKK3ZhciBy
ZW1vdGVVcmwgPSAnaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9XZWJLaXQvc2VydmljZS13b3JrZXJz
L3Jlc291cmNlcy9sZW5ndGh5LXBhc3MucHk/JzsKK3ZhciBjb3VudGVyID0gMDsKK3NlbGYuYWRk
RXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBldmVudC5yZXNwb25kV2l0
aChmZXRjaChyZW1vdGVVcmwgKyBjb3VudGVyKyspLnRoZW4ocmVzcG9uc2UgPT4gbmV3IFJlc3Bv
bnNlKCJQQVNTIikpLmNhdGNoKGUgPT4gbmV3IFJlc3BvbnNlKCJMb2FkIGZhaWxlZDogIiArIGUp
KSk7Cit9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368033</attachid>
            <date>2019-04-23 08:30:52 -0700</date>
            <delta_ts>2019-08-22 02:08:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196870-20190423083051.patch</filename>
            <type>text/plain</type>
            <size>52867</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzMDlmNzdhNzhiNTRiMWM2
MWM4NjljOTI0M2YzYmNhZjBlNTAwMmEuLmFiZTg4MmNjMjBkOTAxMjU0NmU2MzFkM2VhMzNlZDMy
YzQxMWFiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDQtMjIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBOZXR3b3JrUHJvY2VzcyBwcm92aWRlIHRoZSBzZXNzaW9uIElEIGZvciBh
bnkgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIG5v
IGFzc29jaWF0ZWQgcGFnZSBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBvciB0aGlz
IGlzIHJlbGF0ZWQgdG8gYSBzZXJ2aWNlIHdvcmtlciwKKyAgICAgICAgYXNrIHRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gdGFrZSBhIGRlY2lzaW9uLgorICAgICAgICBBZGQgd2Vic2l0ZSBkYXRh
IHN0b3JlIGRlbGVnYXRlIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byBtYWtlIHRoZSBkZWNpc2lv
bi4KKyAgICAgICAgUmVzdHJpY3QgdXNpbmcgdGhlIGRlbGVnYXRlIHRvIHNlcnZlciB0cnVzdCBl
dmFsdWF0aW9uIG9ubHkuCisKKyAgICAgICAgTWFrZSBwaW5nIGxvYWRzIHJldXNlIHRoZSBzYW1l
IG1lY2hhbmlzbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHNlcnZpY2Ugd29ya2VyIHRlc3RzIGFu
ZCB1cGRhdGVkIGJlYWNvbiB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0
YVRhc2s6OnNlc3Npb25JRCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6bmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFNoYXJl
ZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9u
Q29jb2EuaDogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlLmguCisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbTogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50Q2Vy
dGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5oLgorICAgICAgICAoV2ViS2l0Ojp0
b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24pOgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW06CisgICAgICAgIChXZWJzaXRlRGF0YVN0b3JlQ2xpZW50OjpXZWJzaXRlRGF0YVN0b3Jl
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aXNTZXJ2aWNlV29ya2VyUGFn
ZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE5LTA0LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIERlZmVyIEVkaXRvclN0YXRlIHVwZGF0ZXMgdW50aWwgdGhlIG5leHQgbGF5
ZXIgdHJlZSBmbHVzaCBpbiBhIGZldyBhZGRpdGlvbmFsIGNpcmN1bXN0YW5jZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmNwcAppbmRleCAyYjBhMWMzNzllY2Q4NjYyYjAwODFmNGRiMmVlNTE3OTA1YTk1
NWM0Li40MWVlMWQwZWNlNzg5NWRjMTdjMzc4ZjU4YmRkN2NmYzQ3ZDVjZmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhl
bnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Bh
cmFtZXRlcnMucGFnZUlELCBtX3BhcmFtZXRlcnMuZnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRp
b25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVy
cy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBj
aGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
Q09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrLmNwcAppbmRleCBmMWYwMTExNWQyMzFhYWJkN2RlMGVkMDBjMDc4NGYxODhmMDljYzU0
Li4xYzU3OWU3YTk2MTU2MTI5NWYxNDhkYzRkNzVmOWRmZmY2MjcwNmVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC0xNDUsNCAr
MTQ1LDkgQEAgU3RyaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVzY3JpcHRpb24oKSBjb25zdAogICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCitQQUw6OlNlc3Npb25JRCBOZXR3b3JrRGF0YVRh
c2s6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbi0+c2Vzc2lvbklE
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKaW5kZXggY2U3YjJhZDUwNjM2NWE0MzI4YmE1NzNh
ZjE2MTcwOTYwYmFiZmJjYS4uOTRmNDA2NWQ3MjJjZDdiMDhlZTdmZGFjNjBiZGM2MTZlNmY0NzM3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5o
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IApAQCAtMTI4LDYgKzEyOSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlc2Ny
aXB0aW9uKCkgY29uc3Q7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsK
KwogcHJvdGVjdGVkOgogICAgIE5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4
IDNhNmZhMTBjZjlmN2VkNGJmY2Q4M2QwYmEyNzQ2OGViMjMxNzA2MGIuLjM5OTRjNzdkZDExZmIx
MDNiY2Q2ZDUxM2VmNGFjYjg0N2Y0YTQ5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBOZXR3b3JrTG9h
ZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5n
ZSwgQ2hhbGwKICAgICBpZiAoYXV0byogcGVuZGluZ0Rvd25sb2FkID0gbV90YXNrLT5wZW5kaW5n
RG93bmxvYWQoKSkKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5h
Z2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCpwZW5kaW5nRG93bmxvYWQs
IGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGVsc2UKLSAgICAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fdGFzay0+c2Vzc2lvbklEKCksIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggMzFkMTFjM2E4YWVjYjJhYWZkNDllNWMz
MTAzOThlMGFjMTZkZGVlNy4uYjgyZWZmOTRiYjUzNzk4NTM0MTRlZWQxMTY1ZGFjYWMyZGIxNTdm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAorICAgIE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3M7
IH0KKwogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAppbmRleCAyMWJjN2E0ZTliMjNlMjI3MTUx
ZDAxMGU0OTU1NGQ5Y2NjNWY0YjJlLi5jM2I3MmIyMTI0MDIyM2FiMTJjNWU2N2NlNjI5NTNiNGMw
NWM0YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApAQCAt
MTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIENoYWxsZW5nCiB7CiAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUNoYWxsZW5nZSIpOwogICAgIGlmIChjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nLCB7IH0pOworICAgICAgICBtX25ldHdvcmtMb2Fk
Q2hlY2tlci0+bmV0d29ya1Byb2Nlc3MoKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgMCwgMCwg
Y2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCmluZGV4IDZlYjMzNWYwN2QzY2ZlNjI5MDAwNzFjZGFhNzg5M2YwNDMz
NWJlYWEuLjFkYTU5OTcyMzY1YTA0OTllYWI5YzZiNjg2OWJiM2MzYzhhYmVkNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA4LDE4ICsxMDgsMTUgQEAgVmVjdG9yPHVpbnQ2NF90
PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2
NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9CiAKLXZvaWQgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKHBhZ2VJRCk7Ci0gICAgQVNTRVJU
KGZyYW1lSUQpOwotCiAgICAgdWludDY0X3QgY2hhbGxlbmdlSUQgPSBhZGRDaGFsbGVuZ2VUb0No
YWxsZW5nZU1hcCh7IHBhZ2VJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpIH0pOwogCiAgICAgLy8gQ29hbGVzY2UgY2hhbGxlbmdlcyBpbiB0aGUg
c2FtZSBwcm90ZWN0aW9uIHNwYWNlIGFuZCBpbiB0aGUgc2FtZSBwYWdlLgogICAgIGlmIChzaG91
bGRDb2FsZXNjZUNoYWxsZW5nZShwYWdlSUQsIGNoYWxsZW5nZUlELCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHBhZ2VJRCwgZnJhbWVJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlE
KSk7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShzZXNzaW9uSUQsIHBhZ2VJRCwgZnJhbWVJ
RCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlEKSk7CiB9CiAKIHZvaWQgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBD
OjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCA3ZmUz
OTllMGI3ZTk0NThiZDkxNzgyNTkzODQxZTRjNDQ5MzM1YWUxLi5kOGUyYjg1OGZiYTM4MGE1ZmEz
NzE4NjAyOGJkZDFiNjNiYmFmMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtNjAsNyAr
NjAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUo
KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlv
bkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
dWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24s
IFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9u
Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0OTI1OGE0
YzcxYmIwYzdkZTk5MGI0MmJmNzJjNGYzNmI5Y2MxZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uQ29jb2EuaApAQCAtMCwwICsxLDM1IEBACisgIC8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bi5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFNlc3Npb24uaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gdG9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3Np
dGlvbik7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29j
b2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmYTQ2NjFjYWM5ZGU3MTg4YmU0ZTZmZDJmM2MyNmU0NzBiMmExNmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0KQEAgLTAsMCArMSw0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0
aW9uKQoreworICAgIHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKKyAgICBjYXNlIE5TVVJMU2Vzc2lv
bkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgorICAgICAgICByZXR1cm4gQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbDsKKyAgICBjYXNlIE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgorICAgICAgICByZXR1cm4g
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGlu
ZzsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZToKKyAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb246OkNhbmNlbDsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQ
cm90ZWN0aW9uU3BhY2U6CisgICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKKyAgICB9CisgICAg
W05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIklu
dmFsaWQgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxvbmcp
ZGlzcG9zaXRpb25dOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCBmZDM4ZGEzMzFiMjRlMGY1N2IxMTk4OTJiNDU1MTczYjI2ZDRkNWEwLi40YTQx
N2NhNzk1NTYxZmM4YWM3ZDc0MjRhZDgyMTk2ODYwZGNlZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC0xMzIsNiArMTMyLDcgQEAgU2hhcmVkL2NmL0Nvb2tpZVN0b3JhZ2VVdGlsc0NGLm1t
CiAKIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKIAorU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbQogU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29hLm1tCiBT
aGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlv
blhQQ0NvbnN0YW50cy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMjZlMTE4MmMxY2NkMDVlZGY2
OWI3Mzk1MWM2NWU3ZjUxOWFkNzk3MS4uZWM0ZWI4NzEzNzc4M2U5ZTQ0NDY5MDc1OTViZGE0ODA0
N2QyNDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yNyw5ICsyNywxMSBAQAogI2ltcG9ydCAiV0tX
ZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJU3RyaW5nLmgiCisjaW1w
b3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCIKICNpbXBvcnQg
IkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0
b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgorI2ltcG9ydCAiV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdl
UHJveHkuaCIKQEAgLTM4LDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRp
b24uaCIKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgiCiAjaW1w
b3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ3Jl
ZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViS2l0L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgpAQCAtNDgsNiAr
NTEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZUNsaWVudChpZCA8
X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICAgICAgOiBtX2RlbGVn
YXRlKGRlbGVnYXRlKQogICAgICAgICAsIG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9y
KFttX2RlbGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdFN0
b3JhZ2VTcGFjZTogZnJhbWVPcmlnaW46IHF1b3RhOiBjdXJyZW50U2l6ZTogc3BhY2VSZXF1aXJl
ZDogZGVjaXNpb25IYW5kbGVyOildKQorICAgICAgICAsIG1faGFzQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VTZWxlY3RvcihbbV9kZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogY29tcGxldGlvbkhhbmRsZXI6
KV0pCiAgICAgewogICAgIH0KIApAQCAtNzMsOCArNzcsMjggQEAgcHJpdmF0ZToKICAgICAgICAg
W21fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCkgcmVxdWVzdFN0b3JhZ2VTcGFjZTptYWluRnJh
bWVVUkwgZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6Y3VycmVu
dFNpemUgc3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lv
bkhhbmRsZXIuZ2V0KCldOwogICAgIH0KIAorICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFJlZjxXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYg
Y2hhbGxlbmdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGNoYWxsZW5n
ZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBuc1VSTENoYWxsZW5nZSA9IHdyYXBw
ZXIoY2hhbGxlbmdlKTsKKyAgICAgICAgYXV0byBjaGVja2VyID0gV2ViS2l0OjpDb21wbGV0aW9u
SGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSwg
QHNlbGVjdG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogY29tcGxldGlvbkhh
bmRsZXI6KSk7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIo
W2NoYWxsZW5nZSA9IFdURk1vdmUoY2hhbGxlbmdlKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tl
cildKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNV
UkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjaGVj
a2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsK
KyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShXZWJL
aXQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbihkaXNwb3NpdGlvbiksIFdl
YkNvcmU6OkNyZWRlbnRpYWwoY3JlZGVudGlhbCkpOworICAgICAgICB9KTsKKworICAgICAgICBb
bV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6bnNVUkxDaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXIu
Z2V0KCldOworICAgIH0KKwogICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFj
ZVNlbGVjdG9yIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VTZWxlY3RvciB7IGZhbHNlIH07CiB9OwogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJzaXRlRGF0
YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKaW5kZXggOWIwZTcxNzEwY2MyYjlh
NGViYjRjYWZkMjBlZTM4N2JhNGJhZDc3ZC4uZGM0MTI4ODExYTJkYmY3NjIxODE5YWU1YzAxNmEw
ZTExMjQ5Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaApAQCAtMzQsNCArMzQs
NiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
CiAKIC0gKHZvaWQpcmVxdWVzdFN0b3JhZ2VTcGFjZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJh
bWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVu
dFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilz
cGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25n
IHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9z
aXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkpY29tcGxldGlv
bkhhbmRsZXI7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQppbmRleCA1MjY5NDdmNzI0M2Q1ZThjMTRhNWFiNTVjYWQ5ZjRhZjlm
Zjk5MjE4Li5iMDQ2MDY2YjlkZTI4MDMwNWYwYjkzOTM0MDIyZGY2ZDMyZDk5YWU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0z
NSw2ICszNSw3IEBACiAjaW1wb3J0ICJBUElVUkwuaCIKICNpbXBvcnQgIkFQSVdlYnNpdGVEYXRh
U3RvcmUuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24uaCIK
KyNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2lt
cG9ydCAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCiAjaW1wb3J0ICJDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC05NDQsMjEg
Kzk0NSw2IEBAIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpzaG91bGRC
eXBhc3NDb21wYXRpYmlsaXR5TW9kZVNhZmVndWFyZHMoCiAgICAgcmV0dXJuIG1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcjsKIH0KIAotc3Rh
dGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gdG9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBk
aXNwb3NpdGlvbikKLXsKLSAgICBzd2l0Y2ggKGRpc3Bvc2l0aW9uKSB7Ci0gICAgY2FzZSBOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbDoKLSAgICAgICAgcmV0dXJuIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRpYWw7Ci0gICAgY2FzZSBO
U1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5kbGluZzoKLSAgICAgICAg
cmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0
SGFuZGxpbmc7Ci0gICAgY2FzZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6Ci0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpDYW5jZWw7Ci0gICAgY2FzZSBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdl
UmVqZWN0UHJvdGVjdGlvblNwYWNlOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWU7Ci0gICAg
fQotICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJJbnZhbGlkIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiAoJWxkKSIs
IChsb25nKWRpc3Bvc2l0aW9uXTsKLX0KLSAgICAKIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVBy
b3h5JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYgYXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpCiB7CiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyKQpAQCAtOTczLDcgKzk1OSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnCiAgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZSh0b0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oZGlzcG9zaXRpb24pLCBDcmVkZW50aWFs
KGNyZWRlbnRpYWwpKTsKKyAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hh
bGxlbmdlKFdlYktpdDo6dG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uKGRpc3Bv
c2l0aW9uKSwgQ3JlZGVudGlhbChjcmVkZW50aWFsKSk7CiAgICAgfSkuZ2V0KCldOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCBjMzQ0ZDE2MzgyNzM1YjBiNjgzYzY5NmY5YjY2MjY3MTA3MWQ4NDY0
Li44ODk4YzIxNDYwODhjOWQyOGYyMTQ3ZGYxYmI5ZTFiOWIzNjYzODJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaWYgSEFWRShTRUNfS0VZX1BST1hZKQorI2luY2x1ZGUg
IlNlY0tleVByb3h5U3RvcmUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlNob3VsZEdyYW5kZmF0aGVy
U3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRl
ICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oIgpAQCAtMzExLDIwICszMTQsMzcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyhjb25zdCBJUEM6OkF0dGEKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNo
YWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIHsK
LSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlGcm9t
UGFnZUlEKHBhZ2VJRCkpIHsKLSAgICAgICAgYXV0byBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvcmVDaGFsbGVu
Z2UpLCBjaGFsbGVuZ2VJRCwgbWFrZVJlZigqY29ubmVjdGlvbigpKSwgbnVsbHB0cik7Ci0gICAg
ICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShwYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
KTsKLSAgICAgICAgcmV0dXJuOworI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkKKyAgICBXZWFrUHRy
PFNlY0tleVByb3h5U3RvcmU+IHNlY0tleVByb3h5U3RvcmU7CisgICAgaWYgKGNvcmVDaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7Cisg
ICAgICAgIGlmIChhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKHNl
c3Npb25JRCkpIHsKKyAgICAgICAgICAgIGF1dG8gbmV3U2VjS2V5UHJveHlTdG9yZSA9IFNlY0tl
eVByb3h5U3RvcmU6OmNyZWF0ZSgpOworICAgICAgICAgICAgc2VjS2V5UHJveHlTdG9yZSA9IG1h
a2VXZWFrUHRyKG5ld1NlY0tleVByb3h5U3RvcmUuZ2V0KCkpOworICAgICAgICAgICAgc3RvcmUt
PmFkZFNlY0tleVByb3h5U3RvcmUoV1RGTW92ZShuZXdTZWNLZXlQcm94eVN0b3JlKSk7CisgICAg
ICAgIH0KICAgICB9CisgICAgYXV0byBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvcmVDaGFsbGVuZ2UpLCBjaGFs
bGVuZ2VJRCwgbWFrZVJlZigqY29ubmVjdGlvbigpKSwgV1RGTW92ZShzZWNLZXlQcm94eVN0b3Jl
KSk7CisjZWxzZQorICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hhbGxl
bmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIG51bGxwdHIpOwogI2VuZGlmCiAKLSAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKLSAg
ICBNRVNTQUdFX0NIRUNLKHBhZ2UpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IG51bGxwdHI7
CisgICAgaWYgKHBhZ2VJRCAmJiAhbV9wcm9jZXNzUG9vbC5pc1NlcnZpY2VXb3JrZXJQYWdlSUQo
cGFnZUlEKSkgeworICAgICAgICBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJ
RCk7CisgICAgICAgIE1FU1NBR0VfQ0hFQ0socGFnZSk7CisgICAgfQogCi0gICAgYXV0byBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNyZWF0
ZShXVEZNb3ZlKGNvcmVDaGFsbGVuZ2UpLCBjaGFsbGVuZ2VJRCwgbWFrZVJlZigqY29ubmVjdGlv
bigpKSwgcGFnZS0+c2VjS2V5UHJveHlTdG9yZShjb3JlQ2hhbGxlbmdlKSk7CisgICAgaWYgKCFw
YWdlKSB7CisgICAgICAgIGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9u
SUQoc2Vzc2lvbklEKTsKKyAgICAgICAgaWYgKCFzdG9yZSB8fCBjb3JlQ2hhbGxlbmdlLnByb3Rl
Y3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICAg
ICAgICAgIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxl
bmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0b3JlLT5j
bGllbnQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV1RGTW92ZShhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIHBhZ2UtPmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KGZyYW1lSUQsIFdURk1vdmUoYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBmY2IyYjc4YjQ1ZGM1
NzJjMzc4ODNlOGU2YTgwZmJiZjhkYjFhNmMzLi4zZDk4YmNlYmIyMmQ2NjFmOTg0NmQ0YjUzZjkx
ZWE0NzQxMjEwOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjA3LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNz
UHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQg
ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2ht
ZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3Qg
Y2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZv
ck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggYmU5OGU2NjYzMGZhZDc5MDYxMDkyMGNlZjg1Mjc1ZGM5N2FkMWYxZC4uOWZiNGNm
ZGViYmNlZmJiNzRlNDk5ZjZmZjkwOTkwOWQzNjBkN2FjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogCi0gICAgRGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50
NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwgdWludDY0X3Qg
Y2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAgIERpZERlbGV0
ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGYxZmYyZjFm
MjU2ZjA4YzQzMjc2MGQ5NTY5M2E4YjZhNGVlODcxZDQuLjBjYjc5YmYyMDBhNjg4NzAwMmQ1NzI2
Mzg5NjM2MWJlZDcyYjk2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC05MCwyMiArOTAsNiBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwgMCk7CiB9CiAKLXZv
aWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQotewotICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKLQotICAgIC8vIEZJWE1FOiBFeHBvc2Ug
YW4gQVBJIHRvIGRlbGVnYXRlIHRoZSBhY3R1YWwgZGVjaXNpb24gdG8gdGhlIGFwcGxpY2F0aW9u
IGxheWVyLgotICAgIGF1dG8mIHByb3RlY3Rpb25TcGFjZSA9IGNoYWxsZW5nZS0+Y29yZSgpLnBy
b3RlY3Rpb25TcGFjZSgpOwotICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25T
Y2hlbWUoKSA9PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNl
cnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCAmJiBwcm9jZXNzUG9vbCgpLmFsbG93c0FueVNT
TENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcigpKSB7Ci0gICAgICAgIGF1dG8gY3JlZGVudGlh
bCA9IFdlYkNvcmU6OkNyZWRlbnRpYWwoImFjY2VwdCBzZXJ2ZXIgdHJ1c3QiX3MsIGVtcHR5U3Ry
aW5nKCksIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwotICAgICAgICBjaGFs
bGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgY3JlZGVudGlhbCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBjaGFsbGVuZ2UtPmxpc3RlbmVy
KCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7Ci19Ci0KIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBXZWJQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5oCmluZGV4IDZmNzU5ZTlmZjQ1ZmQ1YWZjZTI3M2JhZWIzZjA1ZGJkNmEwOWY3
OTguLmM1ZGE0Y2NkY2U1ODIwZjVkMDU2NTU3MGUzZDkwYTNjYTJkY2ExMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAg
LTQxLDggKzQxLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNl
cnZpY2VXb3JrZXJzKGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsK
LQogICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBB
TDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggYjY3ZGMyMjI4MTY3MWNlYmQ1ZDAwMGMyMDRkNTUwNjczNzNmM2I3Ny4uZWQ3YjNk
ZDhmM2NkMzNiM2RlYWU3YjZmMDJjZWQyNDljOGU4NzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTY4LDE5ICs3MTY4LDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFk
RGF0YXMsIGJvb2wKIAogI2VuZGlmCiAKLVdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFn
ZVByb3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBjaGFsbGVuZ2UpCi17Ci0jaWYgSEFWRShTRUNfS0VZX1BST1hZKQotICAgIGlmIChj
aGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KSB7Ci0gICAgICAgIGF1dG8gc2VjS2V5UHJveHlTdG9yZSA9IFNlY0tleVByb3h5U3RvcmU6OmNy
ZWF0ZSgpOwotICAgICAgICBhdXRvIHdlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoc2VjS2V5UHJv
eHlTdG9yZS5nZXQoKSk7Ci0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YWRkU2VjS2V5UHJv
eHlTdG9yZShXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKLSAgICAgICAgcmV0dXJuIHdlYWtQ
b2ludGVyOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBudWxscHRyOwotfQotICAgIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVp
bnQ2NF90LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDdjYjFiYjQw
YWE4NjQ4NzkyMGY5YzRkMTUzNTM0YzAyNmU0N2Q0ODkuLjI0MjBkOWRjNTcyZGRmZTZkNzc2MWQx
YjkyMTliMGU0ZTIyYTQ1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTIxOTgsMTcgKzIxOTgsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVp
bnN0YXRlTmV0d29ya1Byb2Nlc3NBc3NlcnRpb25TdGF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5Jgog
I2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi1TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5KiBXZWJQcm9jZXNzUG9vbDo6c2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21Q
YWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdAorYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNTZXJ2
aWNlV29ya2VyUGFnZUlEKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3QKIHsKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuCiAgICAgZm9y
IChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA6IG1fc2VydmljZVdvcmtlclByb2Nlc3Nlcy52
YWx1ZXMoKSkgewogICAgICAgICBpZiAoc2VydmljZVdvcmtlclByb2Nlc3MtPnBhZ2VJRCgpID09
IHBhZ2VJRCkKLSAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlV29ya2VyUHJvY2VzczsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KICNlbmRp
ZgorICAgIHJldHVybiBmYWxzZTsKK30KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWRkUHJvY2Vz
c1RvT3JpZ2luQ2FjaGVTZXQoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBjb25zdCBVUkwmIHVy
bCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDQ5ZWY5
NzIzNjg1MWM1MzMyYTgyN2QzNjgzNTFhYWU3ODdlNTY1MzcuLjY2NDkzMzI4YjdjYzk0ZWEyY2U3
NmMyMDIwNGQ1NzA3MmE4OTlmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaApAQCAtMzYzLDkgKzM2Myw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYpOwogCisg
ICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJQYWdlSUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7Ci0gICAgU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdl
SUQodWludDY0X3QgcGFnZUlEKSBjb25zdDsKICAgICBjb25zdCBIYXNoTWFwPFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluLCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Kj4mIHNlcnZpY2VXb3Jr
ZXJQcm94aWVzKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzOyB9CiAg
ICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIoYm9vbCBh
bGxvd3MpIHsgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIgPSBhbGxv
d3M7IH0KICAgICBib29sIGFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcigp
IGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2Vy
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgKaW5kZXggZTlmY2YwMDE1Mzk5NWRjMWNjZTEzNWY4
YzA5MmU5MmU2NmRiZmYzYS4uZDRmZWM1MzMyNWUxZjIxZDMyZWI0MDAzODJjMjk2Nzk2NmU3NTFl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaApAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24uaCIK
KyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgiCisjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDYgKzQ0LDExIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZWY8QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCisgICAgeworICAgICAgICBjaGFs
bGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkNGM3YjU0NjdlYWZlYWNmODUxZjRlZDlmMWVkZGNiMTg4MTdk
YTNkLi5hNThhY2MzOGY3ZDdlODY2Mjk1OWYxYzE5YWM3ZmZjNWQ2N2FjMWI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxMDYsNiAr
MzEwNiw4IEBACiAJCTQxODk3RUQ1MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ2MUY0
MTVEODYwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUE1RjdCOTIy
NkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29h
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2Nv
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUE1RjdCQTIyNkVDRjdDMDA2NzE3
NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUFDODY4MTFFMDQyRTUzMDAzMDMwNzQg
LyogV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBsaW5lRW5kaW5n
ID0gMDsgbmFtZSA9IFdlYlJUQ1Jlc29sdmVyLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93
ZWJydGMvV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9ICI8bm9uZT4iOyB9OwogCQk0MUIy
OEIwODFGODNBRDNFMDBGQjUyQUMgLyogUlRDUGFja2V0T3B0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENQYWNrZXRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxQjI4QjA5MUY4M0FEM0UwMEZCNTJBQyAvKiBSVENQYWNrZXRPcHRpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1BhY2tldE9wdGlv
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjkwMSw2ICs2OTAzLDggQEAK
IAkJNTdCNEI0NUMyMEI1MDQ4QjAwRDRBRDc5IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyog
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmggKi8sCisJCQkJNDFBNUY3
QkEyMjZFQ0Y3QzAwNjcxNzY0IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25D
b2NvYS5tbSAqLywKIAkJCQk1N0I0QjQ1RDIwQjUwNEFCMDBENEFENzkgLyogQXV0aGVudGljYXRp
b25NYW5hZ2VyQ29jb2EubW0gKi8sCiAJCQkJNDRBNDgxQzYyMUYyRDI3QjAwRjJGOTE5IC8qIENs
aWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuY3BwICovLAogCQkJCTU3
QjRCNDVFMjBCNTA0QUIwMEQ0QUQ3OSAvKiBDbGllbnRDZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9u
WFBDQ29uc3RhbnRzLmggKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggYTBkZTdlOWYyY2M0NTRmYmNiNmNkYzBkNzI3YzA0NGZjMjJkY2RjYy4u
MTQyYWJlOTkxYjgxODdkZTdjZDMyNDIzNmM2OGNhYWJhZjE1NDdjOCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5
LTA0LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YSBXZWJzaXRlRGF0YVN0b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSB0aGF0IGRvIG5vdCBjb21lIGZyb20gcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgbmV3IGRlbGVnYXRlIGJ5IHJl
c3BlY3RpbmcgdGhlIHZhbHVlIHNldCBieSB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlCisgICAgICAgIEFjY2VwdCBhbnkgc2VydmVyIGNlcnRpZmljYXRlIGJ5IGRlZmF1bHQu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVzdFdlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgc2V0QWxs
b3dBbnlTU0xDZXJ0aWZpY2F0ZTpdKToKKwogMjAxOS0wNC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjQxMjg5KTog
W0dUS10gYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWNvbnRpbnVhdGlvbi1lbGVtZW50LWNhdXNlcy1j
cmFzaC5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L3JlbW92ZWQtYW5vbnltb3VzLWJsb2NrLWNoaWxk
LWNhdXNlcy1jcmFzaC5odG1sIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZjZkM2QxMDFjODgwZDEzNmQ0Mjg0ODIwYTZjMjQ5OWRkZmUyNGE1
Zi4uMmE2ZjZhZmNiMDE2YWU1NWNjZTgwOThkNzk0NTJiZjNlMzcwZDQ5NSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTExNjUsMTAgKzExNjUsMTIgQEAg
Y29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYK
IH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIFdLQ29udGV4dFNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwg
YWxsb3dzKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgc3RkOjpzdHJpbmcgdGVzdFBhdGgoV0tVUkxS
ZWYgdXJsKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCmluZGV4IDQwODc3MzViYTI1YmI4NTNhMmU2Y2ZmMDAwZjJlMDMxYWJi
Y2ZhMTIuLjZmNjI3MjI2YTAwOGRhZDM3NzkwZjQ0ZTVjY2QxMWRjNDQwZjc1ZDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
QEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2lt
cG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
PgpAQCAtMjYwLDYgKzI2MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9uCiAgICAgfQogCiAg
ICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd1JhaXNpbmdR
dW90YTogdHJ1ZV07CisgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBz
ZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOiB0cnVlXTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdEludm9jYXRp
b24pCkBAIC0zOTEsNiArMzkzLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93U3Rv
cmFnZVF1b3RhSW5jcmVhc2UoYm9vbCB2YWx1ZSkKICAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3RhOiB2YWx1ZV07CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQor
eworICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVz
dGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKKyAgICBbZ2xvYmFsV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6IGFsbG93c107Cit9
CisKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmNhbkRvU2VydmVyVHJ1c3RFdmFsdWF0aW9uSW5OZXR3
b3JrUHJvY2VzcygpIGNvbnN0CiB7CiAjaWYgSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NU
UklDVFJVU1RFVkFMVUFURSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKaW5kZXggOTFiOTRmZmVmYzcz
OWUwZDY0MmQwNjNlNWRkNzZkOTQ2ZDVkNTA5NC4uZDYzOGU4MmRlYWIyYmYzNmVhNzdjZTk4NWM0
N2VjZDFhOWQ2MzUyMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKQEAgLTMwLDcgKzMwLDkgQEAK
IEBpbnRlcmZhY2UgVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZTogTlNPYmplY3QgPF9XS1dl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gewogQHByaXZhdGUKICAgICBCT09MIF9zaG91bGRBbGxv
d1JhaXNpbmdRdW90YTsKKyAgICBCT09MIF9zaG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlOwog
fQogLSAoaW5zdGFuY2V0eXBlKWluaXQ7CiAtICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihC
T09MKXNob3VsZEFsbG93UmFpc2luZ1F1b3RhOworLSAodm9pZClzZXRBbGxvd0FueVNTTENlcnRp
ZmljYXRlOihCT09MKXNob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGU7CiBAZW5kCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVs
ZWdhdGUubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGUubW0KaW5kZXggOGVmNDY3YWU1YmIzMDJkYmU2NzU4ZjRjOWY3OWNkOWZmZjNj
MjcwYy4uZTFmNjhlNDhhZjczODA5NzNlMjk5OWQ5MDg1NTQ1ZGM1YmYyMWNkYiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVn
YXRlLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5tbQpAQCAtNDIsNCArNDIsMjMgQEAgLSAodm9pZClzZXRBbGxvd1JhaXNp
bmdRdW90YTooQk9PTClzaG91bGRBbGxvd1JhaXNpbmdRdW90YQogewogICAgIF9zaG91bGRBbGxv
d1JhaXNpbmdRdW90YSA9IHNob3VsZEFsbG93UmFpc2luZ1F1b3RhOwogfQorCistICh2b2lkKWRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9u
QXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKiBf
TnVsbGFibGUgY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBOU1N0cmluZyAq
bWV0aG9kID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZDsK
KyAgICBpZiAoW21ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhv
ZFNlcnZlclRydXN0XSkgeworICAgICAgICBpZiAoX3Nob3VsZEFsbG93QW55U1NMQ2VydGlmaWNh
dGUpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6IGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBuaWwpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVm
YXVsdEhhbmRsaW5nLCBuaWwpOworfQorCistICh2b2lkKXNldEFsbG93QW55U1NMQ2VydGlmaWNh
dGU6KEJPT0wpc2hvdWxkQWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZQoreworICAgIF9zaG91bGRBbGxv
d0FueVNTTENlcnRpZmljYXRlID0gc2hvdWxkQWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTsKK30KKwog
QGVuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDRjMjUzNjlkMjhhN2JhNjRhZmYyNjFlZTI3OTg4NTYxOGUzM2IyYjQuLjc4
ZDFkOTdhNTU5MTc2MjEzYjE1MDRkNzA5OGEwMDg5Y2ZmMTU2ZTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxOS0wNC0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgV2Vic2l0ZURhdGFTdG9yZSBkZWxlZ2F0ZSB0byBoYW5kbGUgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgdGhhdCBkbyBub3QgY29tZSBmcm9tIHBhZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdG8gdmFsaWRhdGUg
dGhhdCB0aGUgZGVsZWdhdGUgZGVjaXNpb24gaXMgcmVzcGVjdGVkIGZvciBiZWFjb25zIGFuZCBz
ZXJ2aWNlIHdvcmtlciBsb2Fkcy4KKworICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2Ny
b3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1u
by1wcmVmbGlnaHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9iZWFjb24vcmVzb3VyY2VzL2Jl
YWNvbi1wcmVmbGlnaHQucHk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHktcGFzcy5weToKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVh
dGlvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LXdvcmtlci5qczog
QWRkZWQuCisKIDIwMTktMDQtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNDA3MjcpIFsgTWFjIGlPUyBdIExheW91dCBUZXN0IGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuaHRtbCBp
cyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jv
c3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXct
bm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dAppbmRleCAxODk1ZmM2NTI5NWYzNzNjMzQxNWQwZWMx
NTBiNzVjMDBhMzRiYjE1Li5lOWE2OTM0ODIyZTZhNzlhOTVhYmU2OTE3ZDA5ZTBhY2U3YmMwZTcw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdp
bi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8t
cHJlZmxpZ2h0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTog
QmVhY29uIEFQSSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC9iZWFj
b24vcmVzb3VyY2VzL2JlYWNvbi1wcmVmbGlnaHQucHk/YWxsb3dDb3JzPTEmY21kPXB1dCZpZD1j
YTMzYzA3My0xY2YwLTQxZTUtYmJkNC01NTk2OWZiMWE2YzcuIGNhbmNlbGxlZAogCitQQVNTIEJl
YWNvbiBsb2FkIHNob3VsZCBub3QgYmUgc2VudCBpZiBzZXJ2ZXIgaXMgbm90IHRydXN0ZWQuIAog
UEFTUyBTaG91bGQgc2VuZCBiZWFjb24gd2l0aCBubyBDT1JTIHByZWZsaWdodCAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXli
dWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29u
L2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCmluZGV4
IGZhNDg2MGI2MzQxNTRlNDgxNDJlMmM2MDkyMzg2MzRkYzEwZjAxOGUuLjhiNWE4MjAwZDlmNmI0
NDkzNTM4NmI2NWVkNzZiYTQ3ODIxMDkyNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1h
cnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKQEAgLTI2LDEyICsyNiwzMyBAQCBmdW5j
dGlvbiBwb2xsUmVzdWx0KHRlc3QsIGlkKSB7CiAgIH0pOwogfQogCi1mdW5jdGlvbiB0ZXN0Q09S
U1ByZWZsaWdodFN1Y2Nlc3Mod2hhdCkgewotICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZv
KCkuSFRUUF9SRU1PVEVfT1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKLSAgdmFyIGlkID0gc2VsZi50
b2tlbigpOwotICB2YXIgdGVzdFVybCA9IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/
YWxsb3dDb3JzPTEmY21kPXB1dCZpZD0iICsgaWQ7CitmdW5jdGlvbiB0ZXN0Q09SU1ByZWZsaWdo
dCh3aGF0KSB7CisgIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19SRU1PVEVf
T1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24o
dGVzdCkgeworICAgIHZhciBpZCA9ICJjYTMzYzA3My0xY2YwLTQxZTUtYmJkNC01NTk2OWZiMWE2
YzciOworICAgIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9h
bGxvd0NvcnM9MSZjbWQ9cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZh
bHNlKTsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7
CisgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAg
fQorCisgICAgYXNzZXJ0X3RydWUobmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdFVybCwgd2hhdCks
ICJzZW5kQmVhY29uIHN1Y2NlZWRlZCIpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvbGxS
ZXN1bHQodGVzdCwgaWQpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0WydwcmVmbGlnaHQnXSwg
MCwgIkRpZCBub3QgcmVjZWl2ZSBDT1JTIHByZWZsaWdodCIpCisgICAgYXNzZXJ0X2VxdWFscyhy
ZXN1bHRbJ2JlYWNvbiddLCAwLCAiRGlkIG5vdCByZWNlaXZlIGJlYWNvbiIpCisgIH0sICJCZWFj
b24gbG9hZCBzaG91bGQgbm90IGJlIHNlbnQgaWYgc2VydmVyIGlzIG5vdCB0cnVzdGVkLiIpOwor
CisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGlkID0gc2Vs
Zi50b2tlbigpOworICAgIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdo
dC5weT9hbGxvd0NvcnM9MSZjbWQ9cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlKHRydWUpOworICAgICAgd2luZG93LnRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKTsKKyAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsK
KyAgICB9CiAKLSAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKICAgICBhc3NlcnRfdHJ1
ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgIlNlbmRCZWFjb24gU3VjY2Vl
ZGVkIik7CiAgICAgcmV0dXJuIHBvbGxSZXN1bHQodGVzdCwgaWQpIC50aGVuKHJlc3VsdCA9PiB7
CiAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0J10sIDAsICJEaWQgbm90IHJl
Y2VpdmUgQ09SUyBwcmVmbGlnaHQiKQpAQCAtNTEsNyArNzIsNyBAQCBmdW5jdGlvbiBzdHJpbmdU
b0FycmF5QnVmZmVyVmlldyhpbnB1dCkgewogICByZXR1cm4gdmlldzsKIH0KIAotdGVzdENPUlNQ
cmVmbGlnaHRTdWNjZXNzKHN0cmluZ1RvQXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7Cit0ZXN0Q09S
U1ByZWZsaWdodChzdHJpbmdUb0FycmF5QnVmZmVyVmlldygiMTIzIikpOwogICAgIDwvc2NyaXB0
PgogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9i
ZWFjb24vcmVzb3VyY2VzL2JlYWNvbi1wcmVmbGlnaHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi1wcmVmbGlnaHQucHkKaW5kZXggOWU2NGU3NmZmZDZl
M2I5Y2E5YTFhNWMwMzJkNjJlNTY1ZDVkNTg0OC4uOWZhY2MxMmZiMDk3MmU5ODg0ZDU3ZTQ1MmZk
ZjNlYmViNGU4MmI1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3Jl
c291cmNlcy9iZWFjb24tcHJlZmxpZ2h0LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Jl
YWNvbi9yZXNvdXJjZXMvYmVhY29uLXByZWZsaWdodC5weQpAQCAtNDQsMTEgKzQ0LDkgQEAgZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgc3Rhc2hlZF9kYXRhWydiZWFjb25fb3Jp
Z2luJ10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikKICAgICAgIHJlcXVlc3Qu
c2VydmVyLnN0YXNoLnB1dCh0ZXN0X2lkLCBzdGFzaGVkX2RhdGEpCiAgICAgcmV0dXJuIFsoIkNv
bnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiIgotICAKKwogICBpZiBjb21tYW5kID09ICJn
ZXQiOgotICAgIGlmIHN0YXNoZWRfZGF0YSBpcyBub3QgTm9uZToKLSAgICAgIHJldHVybiBbKCJD
b250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2RhdGEpCi0g
ICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiIgorICAgIHJldHVy
biBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2Rh
dGEpCiAKICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQwMCwgIkJhZCBDb21tYW5kIikKICAgcmV0dXJu
ICJFUlJPUjogQmFkIENvbW1hbmQhIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9sZW5ndGh5LXBhc3MucHkgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHktcGFzcy5weQppbmRleCA5
NjJhNGRjNzJiNGViMDJjYmVmNWJmOGY5ZjZhYTIxMjQxN2ZkZjhlLi4wNGVmNTdhZTZiOGE5MWFk
OTNjNGJiNjI1YWM1Nzc2NDRlNGFiZDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHktcGFzcy5weQorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHktcGFzcy5weQpA
QCAtMyw2ICszLDcgQEAgaW1wb3J0IHRpbWUKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToK
ICAgICBkZWxheSA9IDAuMDUKICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC10eXBl
IiwgInRleHQvamF2YXNjcmlwdCIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5hcHBlbmQoIkFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikKICAgICByZXNwb25zZS53cml0ZV9zdGF0dXNf
aGVhZGVycygpCiAgICAgdGltZS5zbGVlcChkZWxheSk7CiAgICAgcmVzcG9uc2Uud3JpdGVyLndy
aXRlX2NvbnRlbnQoImRvY3VtZW50IikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2
YWx1YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNDhkZjRiODNkNWE5YjM4
MzcyMzZkMzNiN2Y4ZmVmMTM2NjhiNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIFNldHVwIHdvcmtlciAKK1BBU1MgU2Vy
dmljZSB3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCAKK1BBU1MgU2VydmljZSB3b3JrZXIgbG9hZCBz
aG91bGQgc3VjY2VlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmEyZjMzYmY3Mzk1NzJiZTZiNzBkYTQxZGJlYjgyOGNlMjVjNjJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGh0
bWw+Cis8aGVhZD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlciB0cmlnZ2VyaW5nIHNlcnZlciB0cnVz
dCBldmFsdWF0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK3ZhciByZWdpc3RyYXRpb247Cit2YXIgaWZyYW1lOworcHJvbWlzZV90
ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAg
IGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAg
ICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb24oInJlc291cmNlcy8iKTsKKyAgICBpZiAocmVnaXN0cmF0aW9uKQorICAgICAgICBhd2Fp
dCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzIiwg
eyBzY29wZSA6ICJyZXNvdXJjZXMvIiB9KTsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRp
b24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBh
Y3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0
ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShmYWxzZSk7CisKKyAgICBpZnJhbWUg
PSBhd2FpdCB3aXRoX2lmcmFtZSgicmVzb3VyY2VzL2lmcmFtZTEuaHRtbCIpOworICAgIGFzc2Vy
dF90cnVlKGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MLnRyaW0o
KS5pbmRleE9mKCJMb2FkIGZhaWxlZDogIikgIT09IC0xKTsKKyAgICBpZnJhbWUucmVtb3ZlKCk7
Cit9LCAiU2VydmljZSB3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOworCisgICAg
aWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoInJlc291cmNlcy9pZnJhbWUyLmh0bWwiKTsKKyAg
ICBhc3NlcnRfdHJ1ZShpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LmlubmVySFRN
TC50cmltKCkuaW5kZXhPZigiUEFTUyIpICE9PSAtMSk7CisgICAgaWZyYW1lLnJlbW92ZSgpOwor
fSwgIlNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIHN1Y2NlZWQiKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3NlcnZlci10cnVzdC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzBjODg5YzUz
Y2I1ZmFjZDZhNjVlMGRhMzZhYWQ3ZDQwNDFjMDJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC13b3JrZXIuanMKQEAg
LTAsMCArMSw1IEBACit2YXIgcmVtb3RlVXJsID0gJ2h0dHBzOi8vMTI3LjAuMC4xOjk0NDMvV2Vi
S2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbGVuZ3RoeS1wYXNzLnB5Pyc7Cit2YXIgY291
bnRlciA9IDA7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgKGV2ZW50KSA9PiB7Cisg
ICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2gocmVtb3RlVXJsICsgY291bnRlcisrKS50aGVuKHJl
c3BvbnNlID0+IG5ldyBSZXNwb25zZSgiUEFTUyIpKS5jYXRjaChlID0+IG5ldyBSZXNwb25zZSgi
TG9hZCBmYWlsZWQ6ICIgKyBlKSkpOworfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376999</attachid>
            <date>2019-08-22 02:09:03 -0700</date>
            <delta_ts>2019-08-26 05:23:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196870-20190822110901.patch</filename>
            <type>text/plain</type>
            <size>54041</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4OTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2OTlhMjliZjlkM2QyNDEx
MjdlMjEwNWMxMTQyNjBmZTJiNzMxMjAuLmI1MmVlN2M3YTkwOWNiOTMwZjY2ZTBkNjZlOGJjMGQ1
YzYyMjk2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDgtMjEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBNYWtlIE5ldHdvcmtQcm9jZXNzIHByb3ZpZGUgdGhlIHNlc3Npb24gSUQgZm9y
IGFueSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIEluIGNhc2UgdGhlcmUgaXMg
bm8gYXNzb2NpYXRlZCBwYWdlIGZvciB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIG9yIHRo
aXMgaXMgcmVsYXRlZCB0byBhIHNlcnZpY2Ugd29ya2VyLAorICAgICAgICBhc2sgdGhlIHdlYnNp
dGUgZGF0YSBzdG9yZSB0byB0YWtlIGEgZGVjaXNpb24uCisgICAgICAgIEFkZCB3ZWJzaXRlIGRh
dGEgc3RvcmUgZGVsZWdhdGUgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIG1ha2UgdGhlIGRlY2lz
aW9uLgorICAgICAgICBSZXN0cmljdCB1c2luZyB0aGUgZGVsZWdhdGUgdG8gc2VydmVyIHRydXN0
IGV2YWx1YXRpb24gb25seS4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNh
bWUgbWVjaGFuaXNtLgorCisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMg
YW5kIHVwZGF0ZWQgYmVhY29uIHRlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFzazo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6ZGlk
UmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFu
YWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b25Db2NvYS5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaC4KKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9DbGllbnRD
ZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmguCisgICAgICAgIChXZWJLaXQ6
OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OldlYnNpdGVEYXRhU3Rv
cmVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppc1NlcnZpY2VXb3JrZXJQ
YWdlSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTktMDgtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSRUdSRVNTSU9OICgyNDg1MDEpOiBnbWFpbC5jb20g
aW1hZ2VzIGFyZSBzdGlsbCBub3Qgc2hvd24gb24gc29tZSB2ZXJzaW9ucyBvZiBpUGhvbmUgaU9T
MTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA0YWRmMWQzMmM0Yzg4Nzk0YTA5ZTc3MGMz
YjRhMTc5MjAxZmE0OTQxLi4wNzk4Nzk5NDc5NDkzOGY0MzUzMDkzMjE5YWE0MjYzOGZmMmMwYmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBOZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbmV0d29ya1By
b2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShtX3BhcmFtZXRlcnMucGFnZUlELCBtX3BhcmFtZXRlcnMuZnJhbWVJRCwgY2hhbGxl
bmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
YXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVy
cy5mcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCA4YjNiY2U5NmQ3MzY1MWQ1OTk5YjFlNTVhMGMx
NmUwMzUxMzExODAyLi43YTI0N2E0N2ZmZTNkYjJmZmM2OGJlN2FiYjk5Zjk4ZDIxZmZkZTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
CkBAIC0xNTAsNCArMTUwLDkgQEAgU3RyaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVzY3JpcHRpb24o
KSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCitQQUw6OlNlc3Npb25JRCBO
ZXR3b3JrRGF0YVRhc2s6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lv
bi0+c2Vzc2lvbklEKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKaW5kZXggMDllM2FhNjU1MzQ0
YmE0OTY1NDJmNjEzMTFlYWNkODA0NTNiMDNmNS4uOWE5ODRlOGY1MzU2M2Y4NjdjY2NhOGNhYjEy
ZTI5ZmJlM2UzZTNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEz
MCw2ICsxMzEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigp
IGNvbnN0OwogCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CisKIHByb3Rl
Y3RlZDoKICAgICBOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBlZTgwYWM2
ZWExYTc3OTc3M2EwNzEwZTE3ODg3MDYzNzY3YzUxMmI5Li5lY2RmNzA1NjIzNTQ0YTA5YjM1MDRk
N2JkODcxOTEwNGFhOWZmYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIENoYWxs
CiAgICAgaWYgKGF1dG8qIHBlbmRpbmdEb3dubG9hZCA9IG1fdGFzay0+cGVuZGluZ0Rvd25sb2Fk
KCkpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqcGVuZGluZ0Rvd25sb2FkLCBjaGFsbGVu
Z2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICBlbHNlCi0gICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShtX3Rhc2stPnNlc3Npb25JRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5oCmluZGV4IGVjOTRlMTQ2OTUzM2Q3ZDk4NzgxNmJiMjZiMTdkZmIy
M2I5NDNmYzEuLjMyNzNiMTIwMTczNTVjZDY2N2ZjZjI1ZWM5ODJjZGJjMWVmNjg4MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApA
QCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyAgICBOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzOyB9CisKICAg
ICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSBjb25zdCB7
IHJldHVybiBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKaW5kZXggZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZh
MmMyYTczYzAxM2FjNS4uNjAyZDM2YjE3N2NkZTk2MDhiNTAwZjY3ODg3YWRmZTAxYTg5OGMxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE0OCw3ICsx
NDgsNyBAQCB2b2lkIFBpbmdMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBDaGFsbGVuZwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImRpZFJlY2VpdmVDaGFsbGVuZ2UiKTsKICAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVy
Zm9ybURlZmF1bHRIYW5kbGluZywgeyB9KTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXIt
Pm5ldHdvcmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXgg
MzhhNWJmZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFiZTRmMC4uNWNhYTFjY2VjYjMwM2Ux
NjI1ZjJkZTI4MDc1NTQyNzYyZmE3OGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBA
IC0xMDgsNyArMTA4LDcgQEAgVmVjdG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6
OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hh
bGxlbmdlc1RvQ29hbGVzY2U7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBBU1NF
UlQoZnJhbWVJRCk7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWcK
ICAgICBpZiAoc2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UocGFnZUlELCBjaGFsbGVuZ2VJRCwgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9j
ZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShwYWdlSUQsIGZyYW1lSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LCBjaGFsbGVuZ2VJRCkpOworICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uoc2Vzc2lvbklELCBw
YWdlSUQsIGZyYW1lSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCkpOwog
fQogCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdl
Q29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKaW5kZXggMjM3NzMxMmRhMjc5MmIxYmM2MjkyYmNlZDI5NGE5ZmFkZWVlYmU1Zi4uOGIzZjg2
ZWVlMjI2MGZhMTQxNzM3OThhMGVmYjg3NjA0NzVjZGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1
cHBsZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRp
b25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxs
ZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNy
ZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0OTI1OGE0YzcxYmIwYzdkZTk5
MGI0MmJmNzJjNGYzNmI5Y2MxZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uQ29jb2EuaApAQCAtMCwwICsxLDM1IEBACisgIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2ltcG9ydCAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2ltcG9y
dCA8Rm91bmRhdGlvbi9OU1VSTFNlc3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gdG9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbik7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYTQ2NjFjYWM5
ZGU3MTg4YmU0ZTZmZDJmM2MyNmU0NzBiMmExNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uQ29jb2EubW0KQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb25Db2NvYS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24o
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQoreworICAg
IHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVu
Z2VVc2VDcmVkZW50aWFsOgorICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbDsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgorICAgICAgICByZXR1cm4gQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKKyAgICBjYXNl
IE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToK
KyAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNl
bDsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3Bh
Y2U6CisgICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpS
ZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKKyAgICB9CisgICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25d
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAz
MGY0ODhhYjU4MDg5MWU5OTM1NDUyZDZiNjEzOGUwM2NiYjgwMmNlLi4yYmU0MjQxMmQyMmNmZjli
MmIyNDQxMDgxYWFkY2NhNjAxYTlhMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xMzMs
NiArMTMzLDcgQEAgU2hhcmVkL2NmL0Nvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tCiAKIFNoYXJlZC9j
Zy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKIAorU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbQogU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29hLm1tCiBTaGFyZWQvQXV0aGVu
dGljYXRpb24vY29jb2EvQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50
cy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggOWEyODMzNDI2ZTExYTRlZDFhMmQ1ODcxYThmNjQz
ZTY3ODlhZWJiOS4uYWM3ZTQ5YWIwMjU0Mzc0ZWVlYzNhMzRhMjJiZWNhMjkzZTA1YjJlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tCkBAIC0yNyw5ICsyNywxMSBAQAogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0
b3JlSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJU3RyaW5nLmgiCisjaW1wb3J0ICJBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgorI2ltcG9ydCAiV0tOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tX
ZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAg
LTM4LDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbXBv
cnQgIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJfV0tXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgog
I2ltcG9ydCA8V2ViS2l0L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaD4KICNpbXBvcnQgPHd0
Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgpAQCAtNDgsNiArNTEsNyBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgV2Vic2l0ZURhdGFTdG9yZUNsaWVudChpZCA8X1dLV2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRl
KQogICAgICAgICAsIG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVnYXRl
LmdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdFN0b3JhZ2VTcGFjZTog
ZnJhbWVPcmlnaW46IHF1b3RhOiBjdXJyZW50U2l6ZTogc3BhY2VSZXF1aXJlZDogZGVjaXNpb25I
YW5kbGVyOildKQorICAgICAgICAsIG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3Rv
cihbbV9kZWxlZ2F0ZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KV0pCiAgICAgewog
ICAgIH0KIApAQCAtNzMsOCArNzcsMjggQEAgcHJpdmF0ZToKICAgICAgICAgW21fZGVsZWdhdGUu
Z2V0QXV0b3JlbGVhc2VkKCkgcmVxdWVzdFN0b3JhZ2VTcGFjZTptYWluRnJhbWVVUkwgZnJhbWVP
cmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNpemUgc3BhY2VS
ZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0
KCldOwogICAgIH0KIAorICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFJlZjxXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKSBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2Vs
ZWN0b3IgfHwgIW1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIo
KS5jb21wbGV0ZUNoYWxsZW5nZShXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgYXV0byBuc1VSTENoYWxsZW5nZSA9IHdyYXBwZXIoY2hhbGxlbmdl
KTsKKyAgICAgICAgYXV0byBjaGVja2VyID0gV2ViS2l0OjpDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUobV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSwgQHNlbGVjdG9yKGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KSk7Cisg
ICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NoYWxsZW5nZSA9
IFdURk1vdmUoY2hhbGxlbmdlKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFs
ICpjcmVkZW50aWFsKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0
aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAg
IGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShXZWJLaXQ6OnRvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbihkaXNwb3NpdGlvbiksIFdlYkNvcmU6OkNyZWRl
bnRpYWwoY3JlZGVudGlhbCkpOworICAgICAgICB9KTsKKworICAgICAgICBbbV9kZWxlZ2F0ZS5n
ZXRBdXRvcmVsZWFzZWQoKSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bnNVUkxD
aGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXIuZ2V0KCldOworICAg
IH0KKwogICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4g
bV9kZWxlZ2F0ZTsKICAgICBib29sIG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB7
IGZhbHNlIH07CiB9OwogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKaW5kZXggOWIwZTcxNzEwY2MyYjlhNGViYjRjYWZkMjBl
ZTM4N2JhNGJhZDc3ZC4uZGM0MTI4ODExYTJkYmY3NjIxODE5YWU1YzAxNmEwZTExMjQ5Nzc4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaApAQCAtMzQsNCArMzQsNiBAQCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAKIC0gKHZvaWQp
cmVxdWVzdFN0b3JhZ2VTcGFjZTooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5T
VVJMICopZnJhbWVVUkwgcXVvdGE6KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUlu
dGVnZXIpY3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVk
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNp
c2lvbkhhbmRsZXI7CiAKKy0gKHZvaWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9z
aXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbQppbmRleCA1OWY4N2EyYzc0MjkyMTQ2ZTZkNDFlYzc3NjQ0MDdiMzIyODQxYjAwLi4zNjU2
MDNlMmQyNWQ4MTdhM2NhZjAyMTI3NWE1ZjFjOGQzMDNiMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0ICJBUElVUkwuaCIKICNpbXBvcnQgIkFQSVdlYnNpdGVEYXRhU3RvcmUuaCIKICNp
bXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24uaCIKKyNpbXBvcnQgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQXV0aGVu
dGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNh
bGxDaGVja2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC05NTksMjEgKzk2MCw2IEBAIGJv
b2wgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpzaG91bGRCeXBhc3NDb250ZW50
TW9kZVNhZmVndWFyZHMoKSBjb25zCiAgICAgICAgIHx8IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbldpdGhQcmVmZXJlbmNlc1VzZXJJbmZvRGVjaXNpb25IYW5kbGVyOwogfQogCi1zdGF0aWMg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uKQotewotICAgIHN3aXRjaCAoZGlzcG9zaXRpb24pIHsKLSAgICBjYXNlIE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgotICAgICAgICByZXR1cm4gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbDsKLSAgICBjYXNlIE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgotICAgICAgICByZXR1
cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5k
bGluZzsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZToKLSAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb246OkNhbmNlbDsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWpl
Y3RQcm90ZWN0aW9uU3BhY2U6Ci0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKLSAgICB9Ci0g
ICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpA
IkludmFsaWQgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxv
bmcpZGlzcG9zaXRpb25dOwotfQotICAgIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkm
LCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkK
IHsKICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXIpCkBAIC05ODgsNyArOTc0LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWcKICAgICAgICAg
aWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICAgICAgY2hhbGxlbmdlLT5saXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKHRvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbihkaXNwb3NpdGlvbiksIENyZWRlbnRpYWwoY3Jl
ZGVudGlhbCkpOworICAgICAgICBjaGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVu
Z2UoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oZGlzcG9zaXRp
b24pLCBDcmVkZW50aWFsKGNyZWRlbnRpYWwpKTsKICAgICB9KS5nZXQoKV07CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDA1ZDIzZmVlY2VlMTlkNzZlNWUwODI0ZmJkYjJiNzk0MjQyNjcxNmIuLjJj
MGNhZDFiODY0OWJiMDQ0ODA3MjM3YzdmZmU1YTY5MTMxZWFkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKKyNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisjaW5jbHVkZSAiU2Vj
S2V5UHJveHlTdG9yZS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgiCkBAIC0zMTIsMjAgKzMxNSwzNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpCiB7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGlm
IChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRChwYWdlSUQpKSB7Ci0gICAgICAgIGF1dG8gYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVh
dGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rp
b24oKSksIG51bGxwdHIpOwotICAgICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LT5kaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7Ci0gICAgICAgIHJldHVybjsKKyNpZiBIQVZFKFNFQ19L
RVlfUFJPWFkpCisgICAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0b3Jl
OworICAgIGlmIChjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCkgeworICAgICAgICBpZiAoYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0
YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpKSB7CisgICAgICAgICAgICBhdXRvIG5ld1Nl
Y0tleVByb3h5U3RvcmUgPSBTZWNLZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAgICAg
IHNlY0tleVByb3h5U3RvcmUgPSBtYWtlV2Vha1B0cihuZXdTZWNLZXlQcm94eVN0b3JlLmdldCgp
KTsKKyAgICAgICAgICAgIHN0b3JlLT5hZGRTZWNLZXlQcm94eVN0b3JlKFdURk1vdmUobmV3U2Vj
S2V5UHJveHlTdG9yZSkpOworICAgICAgICB9CiAgICAgfQorICAgIGF1dG8gYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92
ZShjb3JlQ2hhbGxlbmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIFdU
Rk1vdmUoc2VjS2V5UHJveHlTdG9yZSkpOworI2Vsc2UKKyAgICBhdXRvIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUo
Y29yZUNoYWxsZW5nZSksIGNoYWxsZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxs
cHRyKTsKICNlbmRpZgogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5
Ojp3ZWJQYWdlKHBhZ2VJRCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKyAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSBudWxscHRyOworICAgIGlmIChwYWdlSUQgJiYgIW1fcHJvY2Vzc1Bvb2wu
aXNTZXJ2aWNlV29ya2VyUGFnZUlEKHBhZ2VJRCkpCisgICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNz
UHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKworICAgIGlmICghcGFnZSkgeworICAgICAgICBhdXRv
KiBzdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAg
ICAgIGlmICghc3RvcmUgfHwgY29yZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50
aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgICAgICAgICBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdG9yZS0+Y2xpZW50KCkuZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hh
bGxlbmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIHBhZ2UtPnNlY0tl
eVByb3h5U3RvcmUoY29yZUNoYWxsZW5nZSkpOwogICAgIHBhZ2UtPmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5KGZyYW1lSUQsIFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5MTk0YWU2NjI4MWE1ODVlMWM4MmViMGNkYTRi
ODE0ZjkwM2QxMWNmLi40MmQ1ZDgzNzVhYWQyZmExNTJmMWI3NzlmMjhlYTk1ODFhNmJkYmJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaApAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVE
YXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBk
aWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiZmFmOWYwNDk2ZTU2YTliOTMxZWY2ZmY3NzUxYzNh
Y2Y1ZDEzOWJjLi41Mzk3YWNiMDQ1ZTMzNTUwY2E2OGNhMjAwNWRmZmZjYjA4N2ExZmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50
aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCkKKyAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRl
RGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJz
aXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBmNzhhN2MzODZjODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhLi45
OTAyMWNmOWYxNDBkYTQwZDdiNjgxMGNiMzgwMDlkZDI3MjE5OWQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAt
OTAsMjIgKzkwLDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVm
ZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7
IHN0b3JlIH0sIDApOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBj
aGFsbGVuZ2UpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgVU5VU0VEX1BBUkFN
KGZyYW1lSUQpOwotCi0gICAgLy8gRklYTUU6IEV4cG9zZSBhbiBBUEkgdG8gZGVsZWdhdGUgdGhl
IGFjdHVhbCBkZWNpc2lvbiB0byB0aGUgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgYXV0byYgcHJv
dGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCk7Ci0gICAg
aWYgKHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVx
dWVzdGVkICYmIHByb2Nlc3NQb29sKCkuYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNl
V29ya2VyKCkpIHsKLSAgICAgICAgYXV0byBjcmVkZW50aWFsID0gV2ViQ29yZTo6Q3JlZGVudGlh
bCgiYWNjZXB0IHNlcnZlciB0cnVzdCJfcywgZW1wdHlTdHJpbmcoKSwgV2ViQ29yZTo6Q3JlZGVu
dGlhbFBlcnNpc3RlbmNlTm9uZSk7Ci0gICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21w
bGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVk
ZW50aWFsLCBjcmVkZW50aWFsKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5n
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmgKaW5kZXggN2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJiNTUyODA3ZGUy
MTg0MS4uZjY5M2FiODg0M2JkOWRjODdiZDQxZGNmZTZiNzZmZDIyNmJmMTcxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApA
QCAtNDEsOCArNDEsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVk
U2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5nJiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAot
ICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5PiYmKTsKLQogICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2
b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWU3ZTU4ODNlODhlMGZhYzBlYzU0NTVmZTU3YjRi
ZTYwMTg5NjU4Yi4uNmJhYTY2MjIyOWNiMzllZGI2MmI1MWQwOTgwNTEwNzkwNzM2NmU0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MzMzLDE5ICs3MzMz
LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2Ft
ZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJvb2wKIAogI2VuZGlmCiAKLVdlYWtQdHI8U2VjS2V5
UHJveHlTdG9yZT4gV2ViUGFnZVByb3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCi17Ci0jaWYgSEFWRShTRUNfS0VZ
X1BST1hZKQotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENl
cnRpZmljYXRlUmVxdWVzdGVkKSB7Ci0gICAgICAgIGF1dG8gc2VjS2V5UHJveHlTdG9yZSA9IFNl
Y0tleVByb3h5U3RvcmU6OmNyZWF0ZSgpOwotICAgICAgICBhdXRvIHdlYWtQb2ludGVyID0gbWFr
ZVdlYWtQdHIoc2VjS2V5UHJveHlTdG9yZS5nZXQoKSk7Ci0gICAgICAgIG1fd2Vic2l0ZURhdGFT
dG9yZS0+YWRkU2VjS2V5UHJveHlTdG9yZShXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKLSAg
ICAgICAgcmV0dXJuIHdlYWtQb2ludGVyOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBudWxs
cHRyOwotfQotICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5KEZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9u
Q2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCA0NzI0YWFlZjBkZWEzOWUyMDZhZjIxZGJkNWM2ZWNiMDUwMDk4MmQ5
Li40NTlhOWQzYTRhODkzZDQyOTRiMWFjM2JiYTg1MGFiNjBlM2MzN2Q5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMjMxLDE3ICsyMjMxLDE3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3Rh
dGUoTmV0d29ya1Byb2Nlc3NQcm94eSYKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OnNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHlGcm9tUGFnZUlEKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29u
c3QKK2Jvb2wgV2ViUHJvY2Vzc1Bvb2w6OmlzU2VydmljZVdvcmtlclBhZ2VJRChQYWdlSWRlbnRp
ZmllciBwYWdlSUQpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LgogICAgIGZvciAoYXV0byogc2VydmljZVdvcmtl
clByb2Nlc3MgOiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXMudmFsdWVzKCkpIHsKICAgICAgICAg
aWYgKHNlcnZpY2VXb3JrZXJQcm9jZXNzLT5wYWdlSUQoKSA9PSBwYWdlSUQpCi0gICAgICAgICAg
ICByZXR1cm4gc2VydmljZVdvcmtlclByb2Nlc3M7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19CiAjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7
Cit9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFkZFByb2Nlc3NUb09yaWdpbkNhY2hlU2V0KFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgY29uc3QgVVJMJiB1cmwpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0MGJlYTg2MWEyZTY3MDI4NDYyMjA4N2Mw
MDNiM2U4OGE2YWNjMDNjLi5hZjE2Y2VmOGQyOGU2MzlkNzFiNjNjMzYzYzBmNzgyZGMyOTg4ZTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM3OSw5ICsz
NzksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmKTsKIAorICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyUGFnZUlEKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPik7Ci0gICAgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4sIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqPiYgc2VydmljZVdvcmtlclBy
b3hpZXMoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXM7IH0KICAgICB2
b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihib29sIGFsbG93
cykgeyBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlciA9IGFsbG93czsg
fQogICAgIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDbGllbnQuaAppbmRleCBkMGJiYTU2NGMyNzU4MmQ3ODI2ZTlmMmMyMDYy
MjM3MDIyNzI5NTNhLi4xYjU3ZDZiNzExNjMxMDcyZTY1MTE0ZDhkMWE0NTQxZTE2ZDQxMWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKKyNpbmNsdWRlICJBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNiArNDUsMTEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKKyAgICB7CisgICAgICAgIGNoYWxsZW5n
ZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDA0YTE4YzM0YmZlMmE5YWFiOTJlYWUwNmI4NzJlNDliYWE5NDg2Nzku
LjMwMGNkYjQxYmZmNGQ4YzZlNWYyMTY5YTFlZGQ5ZTQ1ZGEyOWZiNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE0Nyw2ICszMTQ3
LDggQEAKIAkJNDE4OTdFRDUxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFRDYxRjQxNUQ4
NjAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlB
Q0Y5QjFGOTgxRDI2MDA5RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQTVGN0I5MjI2RUNG
N0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2NCAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQUM4NjgxMUUwNDJFNTMwMDMwMzA3NCAvKiBX
ZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAw
OyBuYW1lID0gV2ViUlRDUmVzb2x2ZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0
Yy9XZWJSVENSZXNvbHZlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0gIjxub25lPiI7IH07CiAJCTQxQjI4QjA4
MUY4M0FEM0UwMEZCNTJBQyAvKiBSVENQYWNrZXRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJUQ1BhY2tldE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFCMjhCMDkxRjgzQUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDEwLDYgKzcwMTIsOCBAQAogCQk1
N0I0QjQ1QzIwQjUwNDhCMDBENEFENzkgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLywKKwkJCQk0MUE1RjdCQTIy
NkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29h
Lm1tICovLAogCQkJCTU3QjRCNDVEMjBCNTA0QUIwMEQ0QUQ3OSAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXJDb2NvYS5tbSAqLywKIAkJCQk0NEE0ODFDNjIxRjJEMjdCMDBGMkY5MTkgLyogQ2xpZW50
Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTdCNEI0
NUUyMEI1MDRBQjAwRDRBRDc5IC8qIENsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUEND
b25zdGFudHMuaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBjZWEzYTdmNDdiNTMyYzNkMmMyZmFjNGRmYjMxYWY0ZmI3MTFkM2U4Li5lZDgy
MjY1YWY1NGM5ODUxNzI0ZDZiYTFjZWFkZjExNjU2NzIxMDIzIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDgt
MjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdl
YnNpdGVEYXRhU3RvcmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
IHRoYXQgZG8gbm90IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIG5ldyBkZWxlZ2F0ZSBieSByZXNw
ZWN0aW5nIHRoZSB2YWx1ZSBzZXQgYnkgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZQorICAgICAgICBBY2NlcHQgYW55IHNlcnZlciBjZXJ0aWZpY2F0ZSBieSBkZWZhdWx0Lgor
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0
b3JlRGVsZWdhdGUuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJz
aXRlRGF0YVN0b3JlRGVsZWdhdGUubW06CisgICAgICAgICgtW1Rlc3RXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5k
bGVyOl0pOgorICAgICAgICAoLVtUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIHNldEFsbG93
QW55U1NMQ2VydGlmaWNhdGU6XSk6CisKIDIwMTktMDgtMjAgIFpoaWZlaSBGYW5nICA8emhpZmVp
X2ZhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtyZXN1bHRzLndlYmtpdC5vcmcgV2Via2l0LmNz
c10gQWRkIHJpZ2h0IHNpZGViYXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggMzYxZGY2Y2YyMGU3MWZjYzVjYjQwNmRhMWY4Y2E5OGQyMTVlY2Y1OS4uZmNj
ZjQ2MDEyMTE0YjdlNTUxZjQyNWVkNGMzZTBmOTZiZDQxM2E5OSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwMzEsNyArMTAzMSw5IEBAIGJvb2wgVGVz
dENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdGlvbnMsIFJlCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX29wZW5QYW5l
bEZpbGVVUkxzTWVkaWFJY29uID0gbnVsbHB0cjsKICNlbmRpZgotICAgIAorCisgICAgc2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CisKICAgICBzdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZSgpOwogICAgIAogICAgIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7CkBAIC0x
MTkxLDEwICsxMTkzLDEzIEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJv
Y2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKIHsKKyAg
ICBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlID0gYWxsb3dzOwogICAgIFdLQ29udGV4dFNldEFs
bG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQo
KSwgYWxsb3dzKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgc3RkOjpzdHJpbmcgdGVzdFBhdGgoV0tV
UkxSZWYgdXJsKQogewpAQCAtMjMzNiw4ICsyMzQxLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS1BhZ2VSZWYgcGFnZSwgV0tBdXRo
ZW50CiAKICAgICAgICAgbV9zZXJ2ZXJUcnVzdEV2YWx1YXRpb25DYWxsYmFja0NhbGxzQ291bnQr
KzsKIAotICAgICAgICBXS1JldGFpblB0cjxXS0NyZWRlbnRpYWxSZWY+IGNyZWRlbnRpYWwgPSBh
ZG9wdFdLKFdLQ3JlZGVudGlhbENyZWF0ZSh0b1dLKCJhY2NlcHQgc2VydmVyIHRydXN0IikuZ2V0
KCksIHRvV0soIiIpLmdldCgpLCBrV0tDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKSk7Ci0gICAg
ICAgIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyVXNlQ3JlZGVudGlhbChkZWNpc2lv
bkxpc3RlbmVyLCBjcmVkZW50aWFsLmdldCgpKTsKKyAgICAgICAgaWYgKG1fYWxsb3dzQW55U1NM
Q2VydGlmaWNhdGUpIHsKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLQ3JlZGVudGlhbFJlZj4g
Y3JlZGVudGlhbCA9IGFkb3B0V0soV0tDcmVkZW50aWFsQ3JlYXRlKHRvV0soImFjY2VwdCBzZXJ2
ZXIgdHJ1c3QiKS5nZXQoKSwgdG9XSygiIikuZ2V0KCksIGtXS0NyZWRlbnRpYWxQZXJzaXN0ZW5j
ZU5vbmUpKTsKKyAgICAgICAgICAgIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyVXNl
Q3JlZGVudGlhbChkZWNpc2lvbkxpc3RlbmVyLCBjcmVkZW50aWFsLmdldCgpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lclJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKGRlY2lzaW9uTGlzdGVuZXIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKaW5kZXggMzQwMGY0Y2I1MWI4ODk1MjFkNDA5NjI5YmExMWJjMjQ2MzAxZjViNy4u
ZTU2OWM3MjFlYTg0MzNiOWEyOTYyODM0YjllMjRkZjk0YTJjMmNlYSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNTkxLDYgKzU5MSw3IEBAIHByaXZhdGU6CiAK
ICAgICB1aW50NjRfdCBtX3NlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudCB7
IDAgfTsKICAgICBib29sIG1fc2hvdWxkRGlzbWlzc0phdmFTY3JpcHRBbGVydHNBc3luY2hyb25v
dXNseSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlIHsgdHJ1
ZSB9OwogfTsKIAogc3RydWN0IFRlc3RDb21tYW5kIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAwZWJmN2JmZDAwMzlm
NGVmODA5MzJjMWViNTE5MmZmNTRlZTNjNGEzLi4wNDU5Njg1YjdjZjY3NjA5MWQ0ODFjYTNiY2Zj
YjViOTQwYzYxMmIwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFNlY3VyaXR5L1NlY0l0ZW0uaD4KICNpbXBvcnQg
PFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZXh0UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KQEAgLTM5Nyw2ICszOTgsMTMgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShib29sIHZhbHVlKQogICAgIFtn
bG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6
IHZhbHVlXTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUoYm9vbCBhbGxvd3MpCit7CisgICAgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSA9IGFs
bG93czsKKyAgICBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tl
dFRlc3RpbmcocGxhdGZvcm1Db250ZXh0KCksIGFsbG93cyk7CisgICAgW2dsb2JhbFdlYnNpdGVE
YXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOiBhbGxvd3Nd
OworfQorCiBib29sIFRlc3RDb250cm9sbGVyOjpjYW5Eb1NlcnZlclRydXN0RXZhbHVhdGlvbklu
TmV0d29ya1Byb2Nlc3MoKSBjb25zdAogewogI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJMU0VTU0lP
Tl9TVFJJQ1RSVVNURVZBTFVBVEUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCmluZGV4IDkxYjk0ZmZl
ZmM3MzllMGQ2NDJkMDYzZTVkZDc2ZDk0NmQ1ZDUwOTQuLmQ2MzhlODJkZWFiMmJmMzZlYTc3Y2U5
ODVjNDdlY2QxYTlkNjM1MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCkBAIC0zMCw3ICszMCw5
IEBACiBAaW50ZXJmYWNlIFRlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU6IE5TT2JqZWN0IDxf
V0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IHsKIEBwcml2YXRlCiAgICAgQk9PTCBfc2hvdWxk
QWxsb3dSYWlzaW5nUXVvdGE7CisgICAgQk9PTCBfc2hvdWxkQWxsb3dBbnlTU0xDZXJ0aWZpY2F0
ZTsKIH0KIC0gKGluc3RhbmNldHlwZSlpbml0OwogLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90
YTooQk9PTClzaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKKy0gKHZvaWQpc2V0QWxsb3dBbnlTU0xD
ZXJ0aWZpY2F0ZTooQk9PTClzaG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlOwogQGVuZApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURh
dGFTdG9yZURlbGVnYXRlLm1tCmluZGV4IDhlZjQ2N2FlNWJiMzAyZGJlNjc1OGY0YzlmNzljZDlm
ZmYzYzI3MGMuLmUxZjY4ZTQ4YWY3MzgwOTczZTI5OTlkOTA4NTU0NWRjNWJmMjFjZGIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUubW0KQEAgLTQyLDQgKzQyLDIzIEBAIC0gKHZvaWQpc2V0QWxsb3dS
YWlzaW5nUXVvdGE6KEJPT0wpc2hvdWxkQWxsb3dSYWlzaW5nUXVvdGEKIHsKICAgICBfc2hvdWxk
QWxsb3dSYWlzaW5nUXVvdGEgPSBzaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKIH0KKworLSAodm9p
ZClkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFs
ICogX051bGxhYmxlIGNyZWRlbnRpYWwpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgTlNTdHJp
bmcgKm1ldGhvZCA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRo
b2Q7CisgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVudGljYXRpb25N
ZXRob2RTZXJ2ZXJUcnVzdF0pIHsKKyAgICAgICAgaWYgKF9zaG91bGRBbGxvd0FueVNTTENlcnRp
ZmljYXRlKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENo
YWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRydXN0
OiBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgbmlsKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9y
bURlZmF1bHRIYW5kbGluZywgbmlsKTsKK30KKworLSAodm9pZClzZXRBbGxvd0FueVNTTENlcnRp
ZmljYXRlOihCT09MKXNob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGUKK3sKKyAgICBfc2hvdWxk
QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZSA9IHNob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGU7Cit9
CisKIEBlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwNDUyZGQ3OWRjNWFiZmU3MzQwMGMwMWY1MjNiNWZmMzJkZWM2ZTdk
Li4wMGZkMzAwZjAwZWQxZjVlYWY1ZjZkZjM5MWQwZDhhNGY0MTZiNTJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTktMDgtMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3RvcmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgdGVzdHMgdG8gdmFs
aWRhdGUgdGhhdCB0aGUgZGVsZWdhdGUgZGVjaXNpb24gaXMgcmVzcGVjdGVkIGZvciBiZWFjb25z
IGFuZCBzZXJ2aWNlIHdvcmtlciBsb2Fkcy4KKworICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9j
b3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVy
dmlldy1uby1wcmVmbGlnaHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9iZWFjb24vcmVzb3Vy
Y2VzL2JlYWNvbi1wcmVmbGlnaHQucHk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHktcGFzcy5weToKKyAgICAgICAg
KG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3Qt
ZXZhbHVhdGlvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LXdvcmtl
ci5qczogQWRkZWQuCisKIDIwMTktMDgtMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBgcXVlcnlIb2xkZXJzYCBD
b21tYW5kIExpbmUgQVBJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24v
Y29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVm
ZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDE4OTVmYzY1Mjk1ZjM3M2Mz
NDE1ZDBlYzE1MGI3NWMwMGEzNGJiMTUuLmUzOTcwZWY0NjVmZGVjMDA5ZjIyNjE3Y2Q0NzM3YTBh
YWZlOWZiOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Ny
b3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVy
dmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAogCitQQVNTIEJl
YWNvbiBsb2FkIHNob3VsZCBub3QgYmUgc2VudCBpZiBzZXJ2ZXIgaXMgbm90IHRydXN0ZWQuIAog
UEFTUyBTaG91bGQgc2VuZCBiZWFjb24gd2l0aCBubyBDT1JTIHByZWZsaWdodCAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXli
dWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29u
L2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCmluZGV4
IGZhNDg2MGI2MzQxNTRlNDgxNDJlMmM2MDkyMzg2MzRkYzEwZjAxOGUuLjhiNWE4MjAwZDlmNmI0
NDkzNTM4NmI2NWVkNzZiYTQ3ODIxMDkyNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1h
cnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKQEAgLTI2LDEyICsyNiwzMyBAQCBmdW5j
dGlvbiBwb2xsUmVzdWx0KHRlc3QsIGlkKSB7CiAgIH0pOwogfQogCi1mdW5jdGlvbiB0ZXN0Q09S
U1ByZWZsaWdodFN1Y2Nlc3Mod2hhdCkgewotICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZv
KCkuSFRUUF9SRU1PVEVfT1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKLSAgdmFyIGlkID0gc2VsZi50
b2tlbigpOwotICB2YXIgdGVzdFVybCA9IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/
YWxsb3dDb3JzPTEmY21kPXB1dCZpZD0iICsgaWQ7CitmdW5jdGlvbiB0ZXN0Q09SU1ByZWZsaWdo
dCh3aGF0KSB7CisgIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19SRU1PVEVf
T1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24o
dGVzdCkgeworICAgIHZhciBpZCA9ICJjYTMzYzA3My0xY2YwLTQxZTUtYmJkNC01NTk2OWZiMWE2
YzciOworICAgIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9h
bGxvd0NvcnM9MSZjbWQ9cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZh
bHNlKTsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7
CisgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAg
fQorCisgICAgYXNzZXJ0X3RydWUobmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdFVybCwgd2hhdCks
ICJzZW5kQmVhY29uIHN1Y2NlZWRlZCIpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvbGxS
ZXN1bHQodGVzdCwgaWQpOworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0WydwcmVmbGlnaHQnXSwg
MCwgIkRpZCBub3QgcmVjZWl2ZSBDT1JTIHByZWZsaWdodCIpCisgICAgYXNzZXJ0X2VxdWFscyhy
ZXN1bHRbJ2JlYWNvbiddLCAwLCAiRGlkIG5vdCByZWNlaXZlIGJlYWNvbiIpCisgIH0sICJCZWFj
b24gbG9hZCBzaG91bGQgbm90IGJlIHNlbnQgaWYgc2VydmVyIGlzIG5vdCB0cnVzdGVkLiIpOwor
CisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGlkID0gc2Vs
Zi50b2tlbigpOworICAgIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdo
dC5weT9hbGxvd0NvcnM9MSZjbWQ9cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlKHRydWUpOworICAgICAgd2luZG93LnRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nl
c3MoKTsKKyAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsK
KyAgICB9CiAKLSAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKICAgICBhc3NlcnRfdHJ1
ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgIlNlbmRCZWFjb24gU3VjY2Vl
ZGVkIik7CiAgICAgcmV0dXJuIHBvbGxSZXN1bHQodGVzdCwgaWQpIC50aGVuKHJlc3VsdCA9PiB7
CiAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0J10sIDAsICJEaWQgbm90IHJl
Y2VpdmUgQ09SUyBwcmVmbGlnaHQiKQpAQCAtNTEsNyArNzIsNyBAQCBmdW5jdGlvbiBzdHJpbmdU
b0FycmF5QnVmZmVyVmlldyhpbnB1dCkgewogICByZXR1cm4gdmlldzsKIH0KIAotdGVzdENPUlNQ
cmVmbGlnaHRTdWNjZXNzKHN0cmluZ1RvQXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7Cit0ZXN0Q09S
U1ByZWZsaWdodChzdHJpbmdUb0FycmF5QnVmZmVyVmlldygiMTIzIikpOwogICAgIDwvc2NyaXB0
PgogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9i
ZWFjb24vcmVzb3VyY2VzL2JlYWNvbi1wcmVmbGlnaHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi1wcmVmbGlnaHQucHkKaW5kZXggMWQ0OWNmMzkzN2Fj
Y2ZhMDE4YjU3ZmU4NWMyYjUxOTdhYzZiNDYwMS4uMjVlODNmZWJhNTMzY2E0OTYyNGI1M2I4MDM3
NzAwYzhmYTQ3YzQwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3Jl
c291cmNlcy9iZWFjb24tcHJlZmxpZ2h0LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Jl
YWNvbi9yZXNvdXJjZXMvYmVhY29uLXByZWZsaWdodC5weQpAQCAtNDQsMTEgKzQ0LDkgQEAgZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgc3Rhc2hlZF9kYXRhWydiZWFjb25fb3Jp
Z2luJ10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikKICAgICAgIHJlcXVlc3Qu
c2VydmVyLnN0YXNoLnB1dCh0ZXN0X2lkLCBzdGFzaGVkX2RhdGEpCiAgICAgcmV0dXJuIFsoIkNv
bnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiIgotICAKKwogICBpZiBjb21tYW5kID09ICJn
ZXQiOgotICAgIGlmIHN0YXNoZWRfZGF0YSBpcyBub3QgTm9uZToKLSAgICAgIHJldHVybiBbKCJD
b250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2RhdGEpCi0g
ICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiIgorICAgIHJldHVy
biBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2Rh
dGEpCiAKICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQwMCwgIkJhZCBDb21tYW5kIikKICAgcmV0dXJu
IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiRVJST1I6IEJhZCBDb21tYW5kISIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJj
ZXMvbGVuZ3RoeS1wYXNzLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3Jlc291cmNlcy9sZW5ndGh5LXBhc3MucHkKaW5kZXggOTYyYTRkYzcyYjRlYjAyY2JlZjViZjhm
OWY2YWEyMTI0MTdmZGY4ZS4uMDRlZjU3YWU2YjhhOTFhZDkzYzRiYjYyNWFjNTc3NjQ0ZTRhYmQ0
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy9sZW5ndGh5LXBhc3MucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3Jlc291cmNlcy9sZW5ndGh5LXBhc3MucHkKQEAgLTMsNiArMyw3IEBAIGltcG9ydCB0
aW1lCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgZGVsYXkgPSAwLjA1CiAgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKQor
ICAgIHJlc3BvbnNlLmhlYWRlcnMuYXBwZW5kKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4i
LCAiKiIpCiAgICAgcmVzcG9uc2Uud3JpdGVfc3RhdHVzX2hlYWRlcnMoKQogICAgIHRpbWUuc2xl
ZXAoZGVsYXkpOwogICAgIHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJkb2N1bWVudCIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVy
LXRydXN0LWV2YWx1YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYjQ4ZGY0YjgzZDVhOWIzODM3MjM2ZDMzYjdmOGZlZjEzNjY4YjRj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworUEFTUyBTZXR1cCB3b3JrZXIgCitQQVNTIFNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxk
IGZhaWwgCitQQVNTIFNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIHN1Y2NlZWQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3Qt
ZXZhbHVhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhMmYz
M2JmNzM5NTcyYmU2YjcwZGE0MWRiZWI4MjhjZTI1YzYyYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlv
bi5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2Vy
dmljZSBXb3JrZXIgdHJpZ2dlcmluZyBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgcmVn
aXN0cmF0aW9uOwordmFyIGlmcmFtZTsKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci50
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOworICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigo
KSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKCJyZXNvdXJjZXMvIik7Cisg
ICAgaWYgKHJlZ2lzdHJhdGlvbikKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKKyAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3Rlcigic2VydmVyLXRydXN0LXdvcmtlci5qcyIsIHsgc2NvcGUgOiAicmVzb3VyY2VzLyIg
fSk7CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoYWN0
aXZlV29ya2VyKQorICAgICAgICByZXR1cm47CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmc7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
ICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsK
KyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAg
d29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGUoZmFsc2UpOworCisgICAgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoInJl
c291cmNlcy9pZnJhbWUxLmh0bWwiKTsKKyAgICBhc3NlcnRfdHJ1ZShpZnJhbWUuY29udGVudFdp
bmRvdy5kb2N1bWVudC5ib2R5LmlubmVySFRNTC50cmltKCkuaW5kZXhPZigiTG9hZCBmYWlsZWQ6
ICIpICE9PSAtMSk7CisgICAgaWZyYW1lLnJlbW92ZSgpOworfSwgIlNlcnZpY2Ugd29ya2VyIGxv
YWQgc2hvdWxkIGZhaWwiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKworICAgIGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZy
YW1lKCJyZXNvdXJjZXMvaWZyYW1lMi5odG1sIik7CisgICAgYXNzZXJ0X3RydWUoaWZyYW1lLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwudHJpbSgpLmluZGV4T2YoIlBBU1Mi
KSAhPT0gLTEpOworICAgIGlmcmFtZS5yZW1vdmUoKTsKK30sICJTZXJ2aWNlIHdvcmtlciBsb2Fk
IHNob3VsZCBzdWNjZWVkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29y
a2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVz
dC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMwYzg4OWM1M2NiNWZhY2Q2YTY1ZTBkYTM2YWFkN2Q0
MDQxYzAyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzCkBAIC0wLDAgKzEsNSBAQAordmFyIHJlbW90
ZVVybCA9ICdodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL2xlbmd0aHktcGFzcy5weT8nOwordmFyIGNvdW50ZXIgPSAwOworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZl
dGNoKHJlbW90ZVVybCArIGNvdW50ZXIrKykudGhlbihyZXNwb25zZSA9PiBuZXcgUmVzcG9uc2Uo
IlBBU1MiKSkuY2F0Y2goZSA9PiBuZXcgUmVzcG9uc2UoIkxvYWQgZmFpbGVkOiAiICsgZSkpKTsK
K30pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377238</attachid>
            <date>2019-08-26 05:23:41 -0700</date>
            <delta_ts>2019-08-26 06:00:05 -0700</delta_ts>
            <desc>Relanding</desc>
            <filename>bug-196870-20190826142339.patch</filename>
            <type>text/plain</type>
            <size>56438</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkZTQ0OTEzMzA2MDA5YWRi
N2UwYTdmMWE5OGFiMjZiODc1NzFlMzYuLjk4NDg2NGNmZjI0Yzg0MzI1YjZjNDJkYzQzM2E1N2Zl
NGJkOTA2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDgtMjYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBNYWtlIE5ldHdvcmtQcm9jZXNzIHByb3ZpZGUgdGhlIHNlc3Npb24gSUQgZm9y
IGFueSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIEluIGNhc2UgdGhlcmUgaXMg
bm8gYXNzb2NpYXRlZCBwYWdlIGZvciB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIG9yIHRo
aXMgaXMgcmVsYXRlZCB0byBhIHNlcnZpY2Ugd29ya2VyLAorICAgICAgICBhc2sgdGhlIHdlYnNp
dGUgZGF0YSBzdG9yZSB0byB0YWtlIGEgZGVjaXNpb24uCisgICAgICAgIEFkZCB3ZWJzaXRlIGRh
dGEgc3RvcmUgZGVsZWdhdGUgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIG1ha2UgdGhlIGRlY2lz
aW9uLgorICAgICAgICBSZXN0cmljdCB1c2luZyB0aGUgZGVsZWdhdGUgdG8gc2VydmVyIHRydXN0
IGV2YWx1YXRpb24gb25seS4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNh
bWUgbWVjaGFuaXNtLgorCisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMg
YW5kIHVwZGF0ZWQgYmVhY29uIHRlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFzazo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6ZGlk
UmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFu
YWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b25Db2NvYS5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaC4KKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9DbGllbnRD
ZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmguCisgICAgICAgIChXZWJLaXQ6
OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OldlYnNpdGVEYXRhU3Rv
cmVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppc1NlcnZpY2VXb3JrZXJQ
YWdlSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTktMDgtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPUyBXSzJdIE1ha2UgYSBzdHJvbmdseS10eXBlZCBUcmFuc2FjdGlv
bklEIHRvIHJlcGxhY2UgdWludDY0X3QgdHJhbnNhY3Rpb25JRHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmNwcAppbmRleCA0YWRmMWQzMmM0Yzg4Nzk0YTA5ZTc3MGMzYjRhMTc5MjAxZmE0OTQxLi4wNzk4
Nzk5NDc5NDkzOGY0MzUzMDkzMjE5YWE0MjYzOGZmMmMwYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGEKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9u
TWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMu
cGFnZUlELCBtX3BhcmFtZXRlcnMuZnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2Vy
KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5zZXNzaW9u
SUQsIG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBjaGFsbGVuZ2Us
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNw
cAppbmRleCA4YjNiY2U5NmQ3MzY1MWQ1OTk5YjFlNTVhMGMxNmUwMzUxMzExODAyLi43YTI0N2E0
N2ZmZTNkYjJmZmM2OGJlN2FiYjk5Zjk4ZDIxZmZkZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC0xNTAsNCArMTUwLDkgQEAg
U3RyaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVzY3JpcHRpb24oKSBjb25zdAogICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwogfQogCitQQUw6OlNlc3Npb25JRCBOZXR3b3JrRGF0YVRhc2s6OnNlc3Np
b25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmgKaW5kZXggMDllM2FhNjU1MzQ0YmE0OTY1NDJmNjEzMTFlYWNkODA0
NTNiMDNmNS4uOWE5ODRlOGY1MzU2M2Y4NjdjY2NhOGNhYjEyZTI5ZmJlM2UzZTNhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
aW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEzMCw2ICsxMzEsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCisgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrRGF0
YVRhc2soTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBlZTgwYWM2ZWExYTc3OTc3M2EwNzEwZTE3ODg3
MDYzNzY3YzUxMmI5Li5lY2RmNzA1NjIzNTQ0YTA5YjM1MDRkN2JkODcxOTEwNGFhOWZmYjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtMjAx
LDcgKzIwMSw3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIENoYWxsCiAgICAgaWYgKGF1dG8qIHBlbmRp
bmdEb3dubG9hZCA9IG1fdGFzay0+cGVuZGluZ0Rvd25sb2FkKCkpCiAgICAgICAgIG1fbmV0d29y
a1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSgqcGVuZGluZ0Rvd25sb2FkLCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKICAgICBlbHNlCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRp
Y2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhl
bnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Rh
c2stPnNlc3Npb25JRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZv
aWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCmlu
ZGV4IGVjOTRlMTQ2OTUzM2Q3ZDk4NzgxNmJiMjZiMTdkZmIyM2I5NDNmYzEuLjMyNzNiMTIwMTcz
NTVjZDY2N2ZjZjI1ZWM5ODJjZGJjMWVmNjg4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtODQsNiArODQsOCBAQCBwdWJs
aWM6CiAgICAgfQogI2VuZGlmCiAKKyAgICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Mo
KSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzOyB9CisKICAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3N0b3JlZENyZWRl
bnRpYWxzUG9saWN5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAKaW5kZXggZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAxM2FjNS4uNjAyZDM2
YjE3N2NkZTk2MDhiNTAwZjY3ODg3YWRmZTAxYTg5OGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBpbmdMb2Fk
OjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdl
LCBDaGFsbGVuZwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVDaGFs
bGVuZ2UiKTsKICAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZywg
eyB9KTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPm5ldHdvcmtQcm9jZXNzKCkuYXV0
aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1f
cGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMzhhNWJmZjZhZmQyNTcxZDUyZGNl
NGMwOTgwNGFhNzU0NGFiZTRmMC4uNWNhYTFjY2VjYjMwM2UxNjI1ZjJkZTI4MDc1NTQyNzYyZmE3
OGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVj
dG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01h
dGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9
CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CkBAIC0xMTks
NyArMTE5LDcgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWcKICAgICBpZiAoc2hvdWxkQ29hbGVz
Y2VDaGFsbGVuZ2UocGFnZUlELCBjaGFsbGVuZ2VJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShwYWdl
SUQsIGZyYW1lSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCkpOworICAg
IG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2Uoc2Vzc2lvbklELCBwYWdlSUQsIGZyYW1lSUQsIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCkpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2Fn
ZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggMjM3NzMxMmRhMjc5
MmIxYmM2MjkyYmNlZDI5NGE5ZmFkZWVlYmU1Zi4uOGIzZjg2ZWVlMjI2MGZhMTQxNzM3OThhMGVm
Yjg3NjA0NzVjZGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVz
c2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2Nv
YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY0OTI1OGE0YzcxYmIwYzdkZTk5MGI0MmJmNzJjNGYzNmI5Y2MxZWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9j
b2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaApAQCAtMCwwICsx
LDM1IEBACisgIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFNl
c3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb24gdG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbik7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYTQ2NjFjYWM5ZGU3MTg4YmU0ZTZmZDJmM2MyNmU0
NzBiMmExNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0K
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0
b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxs
ZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQoreworICAgIHN3aXRjaCAoZGlzcG9zaXRpb24p
IHsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgorICAg
ICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVu
dGlhbDsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhh
bmRsaW5nOgorICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKKyAgICAgICAgcmV0dXJuIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNlbDsKKyAgICBjYXNlIE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2U6CisgICAgICAgIHJldHVybiBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZTsKKyAgICB9CisgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURp
c3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25dOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiZDk5NWU5NTZmOGVmNmEzZjhiMTIx
YWUwYmViOWJiNGZjZmMyZTQ3Li4wZjYzNzg5NzJmMWJmNjc5Y2M0M2MzYWJmMmFkOGVmMmJmODY5
NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xMzMsNiArMTMzLDcgQEAgU2hhcmVkL2Nm
L0Nvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tCiAKIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5j
cHAKIAorU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb25Db2NvYS5tbQogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlckNvY29hLm1tCiBTaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50
Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggOWEyODMzNDI2ZTExYTRlZDFhMmQ1ODcxYThmNjQzZTY3ODlhZWJiOS4uYWM3ZTQ5YWIw
MjU0Mzc0ZWVlYzNhMzRhMjJiZWNhMjkzZTA1YjJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yNyw5
ICsyNywxMSBAQAogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKIAogI2lt
cG9ydCAiQVBJU3RyaW5nLmgiCisjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uQ29jb2EuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIK
ICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJh
eS5oIgorI2ltcG9ydCAiV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0
ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVJlY29yZEludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAgLTM4LDYgKzQwLDcgQEAKICNpbXBv
cnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViS2l0L1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9y
dCA8d3RmL1VSTC5oPgpAQCAtNDgsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2Vi
c2l0ZURhdGFTdG9yZUNsaWVudChpZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiBkZWxl
Z2F0ZSkKICAgICAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRlKQogICAgICAgICAsIG1faGFzUmVx
dWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IocmVxdWVzdFN0b3JhZ2VTcGFjZTogZnJhbWVPcmlnaW46IHF1b3RhOiBj
dXJyZW50U2l6ZTogc3BhY2VSZXF1aXJlZDogZGVjaXNpb25IYW5kbGVyOildKQorICAgICAgICAs
IG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvcihbbV9kZWxlZ2F0ZS5nZXQoKSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KV0pCiAgICAgewogICAgIH0KIApAQCAtNzMsOCArNzcs
MjggQEAgcHJpdmF0ZToKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCkgcmVx
dWVzdFN0b3JhZ2VTcGFjZTptYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6
cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVk
IGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgIH0KIAorICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKSBmaW5hbAorICAgIHsKKyAgICAgICAg
aWYgKCFtX2hhc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUp
IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0
byBuc1VSTENoYWxsZW5nZSA9IHdyYXBwZXIoY2hhbGxlbmdlKTsKKyAgICAgICAgYXV0byBjaGVj
a2VyID0gV2ViS2l0OjpDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9kZWxl
Z2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSwgQHNlbGVjdG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NoYWxsZW5nZSA9IFdURk1vdmUoY2hhbGxlbmdlKSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNw
b3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxs
ZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBjaGVja2VyLT5kaWRD
YWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIo
KS5jb21wbGV0ZUNoYWxsZW5nZShXZWJLaXQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbihkaXNwb3NpdGlvbiksIFdlYkNvcmU6OkNyZWRlbnRpYWwoY3JlZGVudGlhbCkpOwor
ICAgICAgICB9KTsKKworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bnNVUkxDaGFsbGVuZ2UgY29tcGxldGlvbkhh
bmRsZXI6Y29tcGxldGlvbkhhbmRsZXIuZ2V0KCldOworICAgIH0KKwogICAgIFdlYWtPYmpDUHRy
PGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKICAgICBib29s
IG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB7IGZhbHNlIH07CiB9OwogCiBAaW1w
bGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
LmgKaW5kZXggOWIwZTcxNzEwY2MyYjlhNGViYjRjYWZkMjBlZTM4N2JhNGJhZDc3ZC4uZGM0MTI4
ODExYTJkYmY3NjIxODE5YWU1YzAxNmEwZTExMjQ5Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaApAQCAtMzQsNCArMzQsNiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAKIC0gKHZvaWQpcmVxdWVzdFN0b3JhZ2VTcGFjZToo
TlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6
KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUgc3Bh
Y2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKKy0gKHZv
aWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlh
bCAqY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA1OWY4N2EyYzc0
MjkyMTQ2ZTZkNDFlYzc3NjQ0MDdiMzIyODQxYjAwLi4zNjU2MDNlMmQyNWQ4MTdhM2NhZjAyMTI3
NWE1ZjFjOGQzMDNiMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJBUElVUkwuaCIK
ICNpbXBvcnQgIkFQSVdlYnNpdGVEYXRhU3RvcmUuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlRGlzcG9zaXRpb24uaCIKKyNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3Rl
bmVyLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0
ICJMb2dnaW5nLmgiCkBAIC05NTksMjEgKzk2MCw2IEBAIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpO
YXZpZ2F0aW9uQ2xpZW50OjpzaG91bGRCeXBhc3NDb250ZW50TW9kZVNhZmVndWFyZHMoKSBjb25z
CiAgICAgICAgIHx8IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1Vz
ZXJJbmZvRGVjaXNpb25IYW5kbGVyOwogfQogCi1zdGF0aWMgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQotewotICAgIHN3aXRj
aCAoZGlzcG9zaXRpb24pIHsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VD
cmVkZW50aWFsOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6VXNlQ3JlZGVudGlhbDsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQ
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKLSAgICBjYXNlIE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKLSAgICAg
ICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNlbDsKLSAg
ICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2U6Ci0g
ICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQ
cm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKLSAgICB9Ci0gICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxTZXNzaW9u
QXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25dOwotfQot
ICAgIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBpZiAoIW1fbmF2aWdh
dGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpCkBAIC05ODgsNyArOTc0LDcg
QEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWcKICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRp
b25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgY2hhbGxlbmdlLT5s
aXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKHRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbihkaXNwb3NpdGlvbiksIENyZWRlbnRpYWwoY3JlZGVudGlhbCkpOworICAgICAgICBj
aGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoV2ViS2l0Ojp0b0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oZGlzcG9zaXRpb24pLCBDcmVkZW50aWFsKGNyZWRl
bnRpYWwpKTsKICAgICB9KS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDA1ZDIzZmVl
Y2VlMTlkNzZlNWUwODI0ZmJkYjJiNzk0MjQyNjcxNmIuLjJjMGNhZDFiODY0OWJiMDQ0ODA3MjM3
YzdmZmU1YTY5MTMxZWFkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNp
ZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0LmgiCkBAIC0zMTIsMjAgKzMxNSwzNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2Vu
ZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiB7
Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJv
bVBhZ2VJRChwYWdlSUQpKSB7Ci0gICAgICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
PSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxl
bmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIG51bGxwdHIpOwotICAg
ICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KSk7Ci0gICAgICAgIHJldHVybjsKKyNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisgICAgV2Vha1B0
cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0b3JlOworICAgIGlmIChjb3JlQ2hhbGxl
bmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgewor
ICAgICAgICBpZiAoYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChz
ZXNzaW9uSUQpKSB7CisgICAgICAgICAgICBhdXRvIG5ld1NlY0tleVByb3h5U3RvcmUgPSBTZWNL
ZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHNlY0tleVByb3h5U3RvcmUgPSBt
YWtlV2Vha1B0cihuZXdTZWNLZXlQcm94eVN0b3JlLmdldCgpKTsKKyAgICAgICAgICAgIHN0b3Jl
LT5hZGRTZWNLZXlQcm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOworICAg
ICAgICB9CiAgICAgfQorICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hh
bGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIFdURk1vdmUoc2VjS2V5UHJveHlTdG9y
ZSkpOworI2Vsc2UKKyAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxs
ZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxscHRyKTsKICNlbmRpZgogCi0gICAg
V2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7Ci0g
ICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBudWxscHRy
OworICAgIGlmIChwYWdlSUQgJiYgIW1fcHJvY2Vzc1Bvb2wuaXNTZXJ2aWNlV29ya2VyUGFnZUlE
KHBhZ2VJRCkpCisgICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlE
KTsKKworICAgIGlmICghcGFnZSkgeworICAgICAgICBhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRh
U3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgICAgIGlmICghc3RvcmUgfHwgY29y
ZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVx
dWVzdGVkKSB7CisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+bGlzdGVuZXIo
KS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQ
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzdG9yZS0+Y2xpZW50KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAotICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hhbGxlbmdlSUQs
IG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIHBhZ2UtPnNlY0tleVByb3h5U3RvcmUoY29yZUNoYWxs
ZW5nZSkpOwogICAgIHBhZ2UtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
KGZyYW1lSUQsIFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aAppbmRleCA5MTk0YWU2NjI4MWE1ODVlMWM4MmViMGNkYTRiODE0ZjkwM2QxMWNmLi40MmQ1ZDgz
NzVhYWQyZmExNTJmMWI3NzlmMjhlYTk1ODFhNmJkYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjEzLDcg
KzIxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlk
UmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hh
bGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBB
TDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1
aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBiZmFmOWYwNDk2ZTU2YTliOTMxZWY2ZmY3NzUxYzNhY2Y1ZDEzOWJjLi41Mzk3YWNiMDQ1
ZTMzNTUwY2E2OGNhMjAwNWRmZmZjYjA4N2ExZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyhJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90
IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxl
dGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNzhhN2Mz
ODZjODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhLi45OTAyMWNmOWYxNDBkYTQwZDdiNjgx
MGNiMzgwMDlkZDI3MjE5OWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsMjIgKzkwLDYgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12
b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBS
ZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwotCi0gICAgLy8g
RklYTUU6IEV4cG9zZSBhbiBBUEkgdG8gZGVsZWdhdGUgdGhlIGFjdHVhbCBkZWNpc2lvbiB0byB0
aGUgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgYXV0byYgcHJvdGVjdGlvblNwYWNlID0gY2hhbGxl
bmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCk7Ci0gICAgaWYgKHByb3RlY3Rpb25TcGFjZS5h
dXRoZW50aWNhdGlvblNjaGVtZSgpID09IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkICYmIHByb2Nlc3NQb29s
KCkuYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkpIHsKLSAgICAgICAg
YXV0byBjcmVkZW50aWFsID0gV2ViQ29yZTo6Q3JlZGVudGlhbCgiYWNjZXB0IHNlcnZlciB0cnVz
dCJfcywgZW1wdHlTdHJpbmcoKSwgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7
Ci0gICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCBjcmVkZW50aWFsKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIGNoYWxs
ZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
N2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJiNTUyODA3ZGUyMTg0MS4uZjY5M2FiODg0M2JkOWRj
ODdiZDQxZGNmZTZiNzZmZDIyNmJmMTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsOCArNDEsNiBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3Qg
U3RyaW5nJiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKLQog
ICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6
U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggYTkxYzQwZWIyMDFkYTJlY2QwNTQ2NDg3N2UwYmNlOGQ2MTMxYmJkOC4uZWZhZTZkZjBk
OTRiMzBjNGE2NjhhZWIyZmE4NDU4NDg2MDlmZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MzMzLDE5ICs3MzMzLDYgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0
YXMsIGJvb2wKIAogI2VuZGlmCiAKLVdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVBy
b3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCi17Ci0jaWYgSEFWRShTRUNfS0VZX1BST1hZKQotICAgIGlmIChjaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7
Ci0gICAgICAgIGF1dG8gc2VjS2V5UHJveHlTdG9yZSA9IFNlY0tleVByb3h5U3RvcmU6OmNyZWF0
ZSgpOwotICAgICAgICBhdXRvIHdlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoc2VjS2V5UHJveHlT
dG9yZS5nZXQoKSk7Ci0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YWRkU2VjS2V5UHJveHlT
dG9yZShXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKLSAgICAgICAgcmV0dXJuIHdlYWtQb2lu
dGVyOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBudWxscHRyOwotfQotICAgIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1l
SWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0NzI0
YWFlZjBkZWEzOWUyMDZhZjIxZGJkNWM2ZWNiMDUwMDk4MmQ5Li40NTlhOWQzYTRhODkzZDQyOTRi
MWFjM2JiYTg1MGFiNjBlM2MzN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCkBAIC0yMjMxLDE3ICsyMjMxLDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3RhdGUoTmV0d29ya1Byb2Nlc3NQcm94
eSYKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlG
cm9tUGFnZUlEKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Bv
b2w6OmlzU2VydmljZVdvcmtlclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0CiB7
CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZm
aWNpZW50LgogICAgIGZvciAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3MgOiBtX3NlcnZpY2VX
b3JrZXJQcm9jZXNzZXMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNlcnZpY2VXb3JrZXJQcm9j
ZXNzLT5wYWdlSUQoKSA9PSBwYWdlSUQpCi0gICAgICAgICAgICByZXR1cm4gc2VydmljZVdvcmtl
clByb2Nlc3M7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIG51
bGxwdHI7Ci19CiAjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmFkZFByb2Nlc3NUb09yaWdpbkNhY2hlU2V0KFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cywgY29uc3QgVVJMJiB1cmwpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCA0MGJlYTg2MWEyZTY3MDI4NDYyMjA4N2MwMDNiM2U4OGE2YWNjMDNjLi5hZjE2
Y2VmOGQyOGU2MzlkNzFiNjNjMzYzYzBmNzgyZGMyOTg4ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM3OSw5ICszNzksOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmKTsKIAorICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUGFnZUlEKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9p
ZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIE9wdGlvbmFsPFBB
TDo6U2Vzc2lvbklEPik7Ci0gICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdv
cmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGNvbnN0
OwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkqPiYgc2VydmljZVdvcmtlclByb3hpZXMoKSBjb25zdCB7IHJldHVy
biBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXM7IH0KICAgICB2b2lkIHNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihib29sIGFsbG93cykgeyBtX2FsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yU2VydmljZVdvcmtlciA9IGFsbG93czsgfQogICAgIGJvb2wgYWxsb3dzQW55
U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQu
aAppbmRleCBkMGJiYTU2NGMyNzU4MmQ3ODI2ZTlmMmMyMDYyMjM3MDIyNzI5NTNhLi4xYjU3ZDZi
NzExNjMxMDcyZTY1MTE0ZDhkMWE0NTQxZTE2ZDQxMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVu
dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVu
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDIsNiArNDUsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYm
IGNoYWxsZW5nZSkKKyAgICB7CisgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0
ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVm
YXVsdEhhbmRsaW5nKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYwYzdi
ZTVlZGYyZWE4M2UzOTRiMzhhMmUwNzIxYzJmOTgwNjYxZGYuLjdlNmY5NzQzYjczMmI5NzM5OTg3
NTk2ZjdlZDJmYjc2ODY0ZmY4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE1Nyw2ICszMTU3LDggQEAKIAkJNDE4OTdFRDUxRjQx
NUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFRDYxRjQxNUQ4NjAwMTZGQTQyIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMg
LyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQUM4NjgxMUUwNDJFNTMwMDMwMzA3NCAvKiBXZWJSVENSZXNvbHZlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAwOyBuYW1lID0gV2ViUlRDUmVzb2x2
ZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0gIjxub25lPiI7IH07CiAJCTQxQjI4QjA4MUY4M0FEM0UwMEZCNTJBQyAvKiBS
VENQYWNrZXRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1Bh
Y2tldE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCMjhCMDkxRjgz
QUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MDQzLDYgKzcwNDUsOCBAQAogCQk1N0I0QjQ1QzIwQjUwNDhCMDBENEFE
NzkgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uQ29jb2EuaCAqLywKKwkJCQk0MUE1RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tICovLAogCQkJCTU3QjRCNDVE
MjBCNTA0QUIwMEQ0QUQ3OSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLywKIAkJ
CQk0NEE0ODFDNjIxRjJEMjdCMDBGMkY5MTkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNh
dGlvblhQQ0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTdCNEI0NUUyMEI1MDRBQjAwRDRBRDc5IC8q
IENsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaCAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzhkMTdiYzc3
NGE4YjkzOGQ4NDRiNTg3NzdkNzJhMjgzYTkzY2Y2Li5mMjQzNTEwNjMwOTkwNmVhMTNmYTNmYzJh
ZmE3N2Q4MTY5NTRkNTMyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3RvcmUgZGVsZWdh
dGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90IGNvbWUgZnJv
bSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAg
ICBJbXBsZW1lbnQgdGhlIG5ldyBkZWxlZ2F0ZSBieSByZXNwZWN0aW5nIHRoZSB2YWx1ZSBzZXQg
YnkgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZQorICAgICAgICBBY2NlcHQg
YW55IHNlcnZlciBjZXJ0aWZpY2F0ZSBieSBkZWZhdWx0LgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtU
ZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIHNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6XSk6
CisKIDIwMTktMDgtMjMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEluY3JlYXNlIGxvZyBsZXZlbCBmb3Igd2F0Y2hsaXN0IHJlc3VsdApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1ZmZiNzQzNzM1YTRhZDUyOTVj
ZWQ4NDFiMDJkYjY0ZjAzMmUzYzRmLi43MjYyZjk1MGViMGU2NDlhMzI4NzVlNGFjNjY3MzE0ZDBm
NjZkNzZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MTAzMiw3ICsxMDMyLDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIG1fb3BlblBhbmVsRmlsZVVSTHNNZWRpYUljb24gPSBudWxscHRyOwog
I2VuZGlmCi0gICAgCisKKyAgICBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKwog
ICAgIHN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiAgICAgCiAgICAgY2xlYXJB
ZENsaWNrQXR0cmlidXRpb24oKTsKQEAgLTExODEsMTAgKzExODMsMTMgQEAgY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0KIAorI2lmICFQ
TEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlKGJvb2wgYWxsb3dzKQogeworICAgIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUgPSBh
bGxvd3M7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwogfQorI2VuZGlmCiAKIHN0YXRp
YyBzdGQ6OnN0cmluZyB0ZXN0UGF0aChXS1VSTFJlZiB1cmwpCiB7CkBAIC0yMzI4LDggKzIzMzMs
MTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdLUGFnZVJlZiBwYWdlLCBXS0F1dGhlbnQKIAogICAgICAgICBtX3NlcnZlclRydXN0RXZh
bHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudCsrOwogCi0gICAgICAgIFdLUmV0YWluUHRyPFdLQ3Jl
ZGVudGlhbFJlZj4gY3JlZGVudGlhbCA9IGFkb3B0V0soV0tDcmVkZW50aWFsQ3JlYXRlKHRvV0so
ImFjY2VwdCBzZXJ2ZXIgdHJ1c3QiKS5nZXQoKSwgdG9XSygiIikuZ2V0KCksIGtXS0NyZWRlbnRp
YWxQZXJzaXN0ZW5jZU5vbmUpKTsKLSAgICAgICAgV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXJVc2VDcmVkZW50aWFsKGRlY2lzaW9uTGlzdGVuZXIsIGNyZWRlbnRpYWwuZ2V0KCkpOwor
ICAgICAgICBpZiAobV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSkgeworICAgICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsID0gYWRvcHRXSyhXS0NyZWRlbnRp
YWxDcmVhdGUodG9XSygiYWNjZXB0IHNlcnZlciB0cnVzdCIpLmdldCgpLCB0b1dLKCIiKS5nZXQo
KSwga1dLQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSkpOworICAgICAgICAgICAgV0tBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJVc2VDcmVkZW50aWFsKGRlY2lzaW9uTGlzdGVuZXIsIGNy
ZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVqZWN0UHJvdGVjdGlvblNwYWNlQW5k
Q29udGludWUoZGVjaXNpb25MaXN0ZW5lcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAzNDAwZjRjYjUxYjg4OTUy
MWQ0MDk2MjliYTExYmMyNDYzMDFmNWI3Li5lNTY5YzcyMWVhODQzM2I5YTI5NjI4MzRiOWUyNGRm
OTRhMmMyY2VhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC01
OTEsNiArNTkxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1fc2VydmVyVHJ1c3RFdmFs
dWF0aW9uQ2FsbGJhY2tDYWxsc0NvdW50IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGREaXNtaXNz
SmF2YVNjcmlwdEFsZXJ0c0FzeW5jaHJvbm91c2x5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUgeyB0cnVlIH07CiB9OwogCiBzdHJ1Y3QgVGVzdENvbW1hbmQg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCmluZGV4IDBlYmY3YmZkMDAzOWY0ZWY4MDkzMmMxZWI1MTkyZmY1NGVlM2M0YTMuLjA0
NTk2ODViN2NmNjc2MDkxZDQ4MWNhM2JjZmNiNWI5NDBjNjEyYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTM1LDYg
KzM1LDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8U2Vj
dXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgpAQCAtMzk3
LDYgKzM5OCwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd1N0b3JhZ2VRdW90YUlu
Y3JlYXNlKGJvb2wgdmFsdWUpCiAgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNs
aWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTogdmFsdWVdOwogfQogCit2b2lkIFRlc3RDb250cm9s
bGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKK3sKKyAgICBtX2Fs
bG93c0FueVNTTENlcnRpZmljYXRlID0gYWxsb3dzOworICAgIFdLQ29udGV4dFNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxs
b3dzKTsKKyAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93
QW55U1NMQ2VydGlmaWNhdGU6IGFsbG93c107Cit9CisKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmNh
bkRvU2VydmVyVHJ1c3RFdmFsdWF0aW9uSW5OZXR3b3JrUHJvY2VzcygpIGNvbnN0CiB7CiAjaWYg
SEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxl
Z2F0ZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgKaW5kZXggOTFiOTRmZmVmYzczOWUwZDY0MmQwNjNlNWRkNzZkOTQ2ZDVkNTA5
NC4uZDYzOGU4MmRlYWIyYmYzNmVhNzdjZTk4NWM0N2VjZDFhOWQ2MzUyMCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgKQEAgLTMwLDcgKzMwLDkgQEAKIEBpbnRlcmZhY2UgVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZTogTlNPYmplY3QgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gewog
QHByaXZhdGUKICAgICBCT09MIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKKyAgICBCT09MIF9z
aG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlOwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXQ7CiAt
ICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFpc2luZ1F1b3Rh
OworLSAodm9pZClzZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOihCT09MKXNob3VsZEFsbG93QW55
U1NMQ2VydGlmaWNhdGU7CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KaW5kZXggOGVmNDY3
YWU1YmIzMDJkYmU2NzU4ZjRjOWY3OWNkOWZmZjNjMjcwYy4uZTFmNjhlNDhhZjczODA5NzNlMjk5
OWQ5MDg1NTQ1ZGM1YmYyMWNkYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQpAQCAtNDIsNCAr
NDIsMjMgQEAgLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90YTooQk9PTClzaG91bGRBbGxvd1Jh
aXNpbmdRdW90YQogewogICAgIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IHNob3VsZEFsbG93
UmFpc2luZ1F1b3RhOwogfQorCistICh2b2lkKWRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKiBfTnVsbGFibGUgY3JlZGVudGlhbCkpY29tcGxl
dGlvbkhhbmRsZXIKK3sKKyAgICBOU1N0cmluZyAqbWV0aG9kID0gY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZDsKKyAgICBpZiAoW21ldGhvZCBpc0VxdWFsVG9T
dHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XSkgeworICAgICAgICBp
ZiAoX3Nob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGUpCisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3Jl
ZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2Vy
dmVyVHJ1c3RdKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBu
aWwpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nLCBuaWwpOworfQorCist
ICh2b2lkKXNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6KEJPT0wpc2hvdWxkQWxsb3dBbnlTU0xD
ZXJ0aWZpY2F0ZQoreworICAgIF9zaG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlID0gc2hvdWxk
QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlmMjJiNWM3ZDcyMWQw
MzdlN2M0Y2NlZjYzODM5ZDAzZDQwYjYwOWQuLmE4MDhlNDk5MGU2YzcxMDUzMTI4YTNiZmNkYTZk
ZmE1YTBjMzFlMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wOC0yNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgV2Vic2l0ZURhdGFTdG9y
ZSBkZWxlZ2F0ZSB0byBoYW5kbGUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgdGhhdCBkbyBub3Qg
Y29tZSBmcm9tIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgor
CisgICAgICAgIEFkZCB0ZXN0cyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBkZWxlZ2F0ZSBkZWNpc2lv
biBpcyByZXNwZWN0ZWQgZm9yIGJlYWNvbnMgYW5kIHNlcnZpY2Ugd29ya2VyIGxvYWRzLgorCisg
ICAgICAgICogaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3
LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL2Nv
cnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLXByZWZsaWdodC5weToKKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
bGVuZ3RoeS1wYXNzLnB5OgorICAgICAgICAobWFpbik6CisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1l
dmFsdWF0aW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NzbC9jZXJ0aWZpY2F0ZS12YWxpZGF0aW9uLmh0bWw6IFJlbW92ZSB1bm5lZWRlZCBzZXR0
aW5nIGNhbGwKKyAgICAgICAgc2luY2Ugd2UgZGVueSBzZXJ2ZXIgdHJ1c3QgcmVxdWVzdHMgaWYg
U1NMIGNlcnRpZmljYXRlcyBhcmUgbm90IGFsbCBhbGxvd2VkLgorCiAyMDE5LTA4LTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2UgY3Jhc2hl
cyB1bmRlciBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGYwNzQ5MTkzMGM1N2ZlOWY1NjFjYTNhOTk4ZjMwZjEzMGRjMTIw
ZDYuLmYyZDE4MDhkNjczODc4ZTAyZTk1Mzc3ZjFjOGU0YTAyZmNhZGI2NDMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTI2ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBXZWJzaXRlRGF0YVN0
b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSB0aGF0IGRvIG5v
dCBjb21lIGZyb20gcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Njg3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQ1OTM1NTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2
aWNlLXdvcmtlci5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMTktMDgtMjIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IFN0YXRpY1JhbmdlIGNv
bnN0cnVjdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9jZXJ0aWZp
Y2F0ZS12YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9jZXJ0aWZp
Y2F0ZS12YWxpZGF0aW9uLmh0bWwKaW5kZXggMzBlNjNkMjc2NWVmMjdiYTExZTY4OGIwYjU1NDI2
MDEwNzQ2NjJmZi4uNzRmZTAyMzc1ODAxYTU3NmI1YzEzZmViMjE5ZjJkMDMzYmRlYzIwZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvY2VydGlmaWNhdGUtdmFsaWRhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2NlcnRpZmljYXRlLXZhbGlk
YXRpb24uaHRtbApAQCAtMjQsNyArMjQsNiBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQogICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIuY2FuRG9TZXJ2ZXJUcnVzdEV2YWx1YXRpb25Jbk5ldHdv
cmtQcm9jZXNzKQogICAgICAgICByZXR1cm47CiAKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShmYWxzZSk7CiAgICAgLy8gVGhpcyBzaG91bGQgdHJpZ2dl
ciBuZXR3b3JrIHByb2Nlc3Mgc2VydmVyIHRydXN0IGV2YWx1YXRpb24uCiAgICAgd2luZG93LnRl
c3RSdW5uZXIuc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oZmFsc2UpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdp
bi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVm
bGlnaHQtZXhwZWN0ZWQudHh0CmluZGV4IDE4OTVmYzY1Mjk1ZjM3M2MzNDE1ZDBlYzE1MGI3NWMw
MGEzNGJiMTUuLmUzOTcwZWY0NjVmZGVjMDA5ZjIyNjE3Y2Q0NzM3YTBhYWZlOWZiOGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5
YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGln
aHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAogCitQQVNTIEJlYWNvbiBsb2FkIHNob3Vs
ZCBub3QgYmUgc2VudCBpZiBzZXJ2ZXIgaXMgbm90IHRydXN0ZWQuIAogUEFTUyBTaG91bGQgc2Vu
ZCBiZWFjb24gd2l0aCBubyBDT1JTIHByZWZsaWdodCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXBy
ZWZsaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3Nvcmln
aW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCmluZGV4IGZhNDg2MGI2MzQxNTRl
NDgxNDJlMmM2MDkyMzg2MzRkYzEwZjAxOGUuLjhiNWE4MjAwZDlmNmI0NDkzNTM4NmI2NWVkNzZi
YTQ3ODIxMDkyNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3Jz
L2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXct
bm8tcHJlZmxpZ2h0Lmh0bWwKQEAgLTI2LDEyICsyNiwzMyBAQCBmdW5jdGlvbiBwb2xsUmVzdWx0
KHRlc3QsIGlkKSB7CiAgIH0pOwogfQogCi1mdW5jdGlvbiB0ZXN0Q09SU1ByZWZsaWdodFN1Y2Nl
c3Mod2hhdCkgewotICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9SRU1PVEVf
T1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKLSAgdmFyIGlkID0gc2VsZi50b2tlbigpOwotICB2YXIg
dGVzdFVybCA9IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/YWxsb3dDb3JzPTEmY21k
PXB1dCZpZD0iICsgaWQ7CitmdW5jdGlvbiB0ZXN0Q09SU1ByZWZsaWdodCh3aGF0KSB7CisgIHZh
ciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19SRU1PVEVfT1JJR0lOICsgUkVTT1VS
Q0VTX0RJUjsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odGVzdCkgeworICAgIHZh
ciBpZCA9ICJjYTMzYzA3My0xY2YwLTQxZTUtYmJkNC01NTk2OWZiMWE2YzciOworICAgIHZhciB0
ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9hbGxvd0NvcnM9MSZjbWQ9
cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKKyAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICBhd2FpdCBm
ZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgYXNzZXJ0
X3RydWUobmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdFVybCwgd2hhdCksICJzZW5kQmVhY29uIHN1
Y2NlZWRlZCIpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBvbGxSZXN1bHQodGVzdCwgaWQp
OworICAgIGFzc2VydF9lcXVhbHMocmVzdWx0WydwcmVmbGlnaHQnXSwgMCwgIkRpZCBub3QgcmVj
ZWl2ZSBDT1JTIHByZWZsaWdodCIpCisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ2JlYWNvbidd
LCAwLCAiRGlkIG5vdCByZWNlaXZlIGJlYWNvbiIpCisgIH0sICJCZWFjb24gbG9hZCBzaG91bGQg
bm90IGJlIHNlbnQgaWYgc2VydmVyIGlzIG5vdCB0cnVzdGVkLiIpOworCisgIHByb21pc2VfdGVz
dChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGlkID0gc2VsZi50b2tlbigpOworICAg
IHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9hbGxvd0NvcnM9
MSZjbWQ9cHV0JmlkPSIgKyBpZDsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOworICAg
ICAgd2luZG93LnRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgIGF3
YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CiAKLSAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKICAgICBhc3NlcnRfdHJ1ZShuYXZpZ2F0b3Iuc2Vu
ZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgIlNlbmRCZWFjb24gU3VjY2VlZGVkIik7CiAgICAgcmV0
dXJuIHBvbGxSZXN1bHQodGVzdCwgaWQpIC50aGVuKHJlc3VsdCA9PiB7CiAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0J10sIDAsICJEaWQgbm90IHJlY2VpdmUgQ09SUyBwcmVm
bGlnaHQiKQpAQCAtNTEsNyArNzIsNyBAQCBmdW5jdGlvbiBzdHJpbmdUb0FycmF5QnVmZmVyVmll
dyhpbnB1dCkgewogICByZXR1cm4gdmlldzsKIH0KIAotdGVzdENPUlNQcmVmbGlnaHRTdWNjZXNz
KHN0cmluZ1RvQXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7Cit0ZXN0Q09SU1ByZWZsaWdodChzdHJp
bmdUb0FycmF5QnVmZmVyVmlldygiMTIzIikpOwogICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vcmVzb3VyY2Vz
L2JlYWNvbi1wcmVmbGlnaHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vcmVzb3Vy
Y2VzL2JlYWNvbi1wcmVmbGlnaHQucHkKaW5kZXggMWQ0OWNmMzkzN2FjY2ZhMDE4YjU3ZmU4NWMy
YjUxOTdhYzZiNDYwMS4uMjVlODNmZWJhNTMzY2E0OTYyNGI1M2I4MDM3NzAwYzhmYTQ3YzQwOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3Jlc291cmNlcy9iZWFjb24t
cHJlZmxpZ2h0LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMv
YmVhY29uLXByZWZsaWdodC5weQpAQCAtNDQsMTEgKzQ0LDkgQEAgZGVmIG1haW4ocmVxdWVzdCwg
cmVzcG9uc2UpOgogICAgICAgc3Rhc2hlZF9kYXRhWydiZWFjb25fb3JpZ2luJ10gPSByZXF1ZXN0
LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikKICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1
dCh0ZXN0X2lkLCBzdGFzaGVkX2RhdGEpCiAgICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L3BsYWluIildLCAiIgotICAKKwogICBpZiBjb21tYW5kID09ICJnZXQiOgotICAgIGlmIHN0
YXNoZWRfZGF0YSBpcyBub3QgTm9uZToKLSAgICAgIHJldHVybiBbKCJDb250ZW50LVR5cGUiLCAi
dGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2RhdGEpCi0gICAgcmV0dXJuIFsoIkNv
bnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildLCAiIgorICAgIHJldHVybiBbKCJDb250ZW50LVR5
cGUiLCAidGV4dC9wbGFpbiIpXSwganNvbi5kdW1wcyhzdGFzaGVkX2RhdGEpCiAKICAgcmVzcG9u
c2Uuc2V0X2Vycm9yKDQwMCwgIkJhZCBDb21tYW5kIikKICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlw
ZSIsICJ0ZXh0L3BsYWluIildLCAiRVJST1I6IEJhZCBDb21tYW5kISIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbGVuZ3RoeS1wYXNz
LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9sZW5n
dGh5LXBhc3MucHkKaW5kZXggOTYyYTRkYzcyYjRlYjAyY2JlZjViZjhmOWY2YWEyMTI0MTdmZGY4
ZS4uMDRlZjU3YWU2YjhhOTFhZDkzYzRiYjYyNWFjNTc3NjQ0ZTRhYmQ0YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9sZW5ndGh5LXBh
c3MucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNl
cy9sZW5ndGh5LXBhc3MucHkKQEAgLTMsNiArMyw3IEBAIGltcG9ydCB0aW1lCiBkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgZGVsYXkgPSAwLjA1CiAgICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKQorICAgIHJlc3BvbnNlLmhl
YWRlcnMuYXBwZW5kKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpCiAgICAgcmVz
cG9uc2Uud3JpdGVfc3RhdHVzX2hlYWRlcnMoKQogICAgIHRpbWUuc2xlZXAoZGVsYXkpOwogICAg
IHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJkb2N1bWVudCIpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYjQ4ZGY0YjgzZDVhOWIzODM3MjM2ZDMzYjdmOGZlZjEzNjY4YjRjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1l
dmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBTZXR1
cCB3b3JrZXIgCitQQVNTIFNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwgCitQQVNTIFNl
cnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIHN1Y2NlZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVz
dC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhMmYzM2JmNzM5NTcyYmU2Yjcw
ZGE0MWRiZWI4MjhjZTI1YzYyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVhdGlvbi5odHRwcy5odG1sCkBA
IC0wLDAgKzEsNTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2VydmljZSBXb3JrZXIgdHJp
Z2dlcmluZyBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgcmVnaXN0cmF0aW9uOwordmFy
IGlmcmFtZTsKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcygpOworICAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+
IHsgfSk7CisgICAgfQorCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKCJyZXNvdXJjZXMvIik7CisgICAgaWYgKHJlZ2lzdHJh
dGlvbikKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICByZWdp
c3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic2VydmVy
LXRydXN0LXdvcmtlci5qcyIsIHsgc2NvcGUgOiAicmVzb3VyY2VzLyIgfSk7CisgICAgYWN0aXZl
V29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoYWN0aXZlV29ya2VyKQorICAg
ICAgICByZXR1cm47CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7
CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlm
IChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3By
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFs
c2UpOworCisgICAgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoInJlc291cmNlcy9pZnJhbWUx
Lmh0bWwiKTsKKyAgICBhc3NlcnRfdHJ1ZShpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5i
b2R5LmlubmVySFRNTC50cmltKCkuaW5kZXhPZigiTG9hZCBmYWlsZWQ6ICIpICE9PSAtMSk7Cisg
ICAgaWZyYW1lLnJlbW92ZSgpOworfSwgIlNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIGZhaWwi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZSh0cnVlKTsKKworICAgIGlmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCJyZXNvdXJjZXMv
aWZyYW1lMi5odG1sIik7CisgICAgYXNzZXJ0X3RydWUoaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuYm9keS5pbm5lckhUTUwudHJpbSgpLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpOworICAg
IGlmcmFtZS5yZW1vdmUoKTsKK30sICJTZXJ2aWNlIHdvcmtlciBsb2FkIHNob3VsZCBzdWNjZWVk
Iik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC13b3JrZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzMwYzg4OWM1M2NiNWZhY2Q2YTY1ZTBkYTM2YWFkN2Q0MDQxYzAyYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXIt
dHJ1c3Qtd29ya2VyLmpzCkBAIC0wLDAgKzEsNSBAQAordmFyIHJlbW90ZVVybCA9ICdodHRwczov
LzEyNy4wLjAuMTo5NDQzL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHkt
cGFzcy5weT8nOwordmFyIGNvdW50ZXIgPSAwOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRj
aCcsIChldmVudCkgPT4geworICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKHJlbW90ZVVybCAr
IGNvdW50ZXIrKykudGhlbihyZXNwb25zZSA9PiBuZXcgUmVzcG9uc2UoIlBBU1MiKSkuY2F0Y2go
ZSA9PiBuZXcgUmVzcG9uc2UoIkxvYWQgZmFpbGVkOiAiICsgZSkpKTsKK30pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0LWluLXNlcnZpY2Utd29ya2VyLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtl
ci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjg3ZjIzNWRlN2M1MWU1ZWI4NGI1NGJjNjhkODMw
NDgwYThiZWE4Ny4uOWY3OWUyYTMzNzIyY2JhNjBlZDJiYjZkZmRjMTk2OWI5OGNhN2I3YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0LWluLXNlcnZpY2Utd29ya2VyLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQtaW4tc2Vy
dmljZS13b3JrZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFZl
cmlmeSBXZWJTb2NrZXRzIGNhbiBiZSBjcmVhdGVkIGluIGEgU2VydmljZSBXb3JrZXIgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlBBU1MiIGJ1dCBnb3QgIkZBSUw6IEdvdCBhbiBlcnJvciBldmVu
dCIKK1BBU1MgVmVyaWZ5IFdlYlNvY2tldHMgY2FuIGJlIGNyZWF0ZWQgaW4gYSBTZXJ2aWNlIFdv
cmtlciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377241</attachid>
            <date>2019-08-26 06:00:13 -0700</date>
            <delta_ts>2019-08-26 08:00:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196870-20190826150010.patch</filename>
            <type>text/plain</type>
            <size>56440</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkZTQ0OTEzMzA2MDA5YWRi
N2UwYTdmMWE5OGFiMjZiODc1NzFlMzYuLjk4NDg2NGNmZjI0Yzg0MzI1YjZjNDJkYzQzM2E1N2Zl
NGJkOTA2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDgtMjYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3Rv
cmUgZGVsZWdhdGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90
IGNvbWUgZnJvbSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBNYWtlIE5ldHdvcmtQcm9jZXNzIHByb3ZpZGUgdGhlIHNlc3Npb24gSUQgZm9y
IGFueSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIEluIGNhc2UgdGhlcmUgaXMg
bm8gYXNzb2NpYXRlZCBwYWdlIGZvciB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIG9yIHRo
aXMgaXMgcmVsYXRlZCB0byBhIHNlcnZpY2Ugd29ya2VyLAorICAgICAgICBhc2sgdGhlIHdlYnNp
dGUgZGF0YSBzdG9yZSB0byB0YWtlIGEgZGVjaXNpb24uCisgICAgICAgIEFkZCB3ZWJzaXRlIGRh
dGEgc3RvcmUgZGVsZWdhdGUgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIG1ha2UgdGhlIGRlY2lz
aW9uLgorICAgICAgICBSZXN0cmljdCB1c2luZyB0aGUgZGVsZWdhdGUgdG8gc2VydmVyIHRydXN0
IGV2YWx1YXRpb24gb25seS4KKworICAgICAgICBNYWtlIHBpbmcgbG9hZHMgcmV1c2UgdGhlIHNh
bWUgbWVjaGFuaXNtLgorCisgICAgICAgIENvdmVyZWQgYnkgc2VydmljZSB3b3JrZXIgdGVzdHMg
YW5kIHVwZGF0ZWQgYmVhY29uIHRlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFzazo6c2Vzc2lvbklEIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpuZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6ZGlk
UmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFu
YWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b25Db2NvYS5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaC4KKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9DbGllbnRD
ZXJ0aWZpY2F0ZUF1dGhlbnRpY2F0aW9uWFBDQ29uc3RhbnRzLmguCisgICAgICAgIChXZWJLaXQ6
OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbik6CisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OldlYnNpdGVEYXRhU3Rv
cmVDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppc1NlcnZpY2VXb3JrZXJQ
YWdlSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTktMDgtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPUyBXSzJdIE1ha2UgYSBzdHJvbmdseS10eXBlZCBUcmFuc2FjdGlv
bklEIHRvIHJlcGxhY2UgdWludDY0X3QgdHJhbnNhY3Rpb25JRHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmNwcAppbmRleCA0YWRmMWQzMmM0Yzg4Nzk0YTA5ZTc3MGMzYjRhMTc5MjAxZmE0OTQxLi4wNzk4
Nzk5NDc5NDkzOGY0MzUzMDkzMjE5YWE0MjYzOGZmMmMwYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGEKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9u
TWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMu
cGFnZUlELCBtX3BhcmFtZXRlcnMuZnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YXV0aGVudGljYXRpb25NYW5hZ2Vy
KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5zZXNzaW9u
SUQsIG1fcGFyYW1ldGVycy5wYWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBjaGFsbGVuZ2Us
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNw
cAppbmRleCA4YjNiY2U5NmQ3MzY1MWQ1OTk5YjFlNTVhMGMxNmUwMzUxMzExODAyLi43YTI0N2E0
N2ZmZTNkYjJmZmM2OGJlN2FiYjk5Zjk4ZDIxZmZkZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC0xNTAsNCArMTUwLDkgQEAg
U3RyaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVzY3JpcHRpb24oKSBjb25zdAogICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwogfQogCitQQUw6OlNlc3Npb25JRCBOZXR3b3JrRGF0YVRhc2s6OnNlc3Np
b25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmgKaW5kZXggMDllM2FhNjU1MzQ0YmE0OTY1NDJmNjEzMTFlYWNkODA0
NTNiMDNmNS4uOWE5ODRlOGY1MzU2M2Y4NjdjY2NhOGNhYjEyZTI5ZmJlM2UzZTNhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
aW1lci5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTEzMCw2ICsxMzEsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogCisgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrRGF0
YVRhc2soTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBlZTgwYWM2ZWExYTc3OTc3M2EwNzEwZTE3ODg3
MDYzNzY3YzUxMmI5Li5lY2RmNzA1NjIzNTQ0YTA5YjM1MDRkN2JkODcxOTEwNGFhOWZmYjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtMjAx
LDcgKzIwMSw3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIENoYWxsCiAgICAgaWYgKGF1dG8qIHBlbmRp
bmdEb3dubG9hZCA9IG1fdGFzay0+cGVuZGluZ0Rvd25sb2FkKCkpCiAgICAgICAgIG1fbmV0d29y
a1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSgqcGVuZGluZ0Rvd25sb2FkLCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKICAgICBlbHNlCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRp
Y2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhl
bnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Rh
c2stPnNlc3Npb25JRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZv
aWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCmlu
ZGV4IGVjOTRlMTQ2OTUzM2Q3ZDk4NzgxNmJiMjZiMTdkZmIyM2I5NDNmYzEuLjMyNzNiMTIwMTcz
NTVjZDY2N2ZjZjI1ZWM5ODJjZGJjMWVmNjg4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtODQsNiArODQsOCBAQCBwdWJs
aWM6CiAgICAgfQogI2VuZGlmCiAKKyAgICBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Mo
KSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzOyB9CisKICAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3N0b3JlZENyZWRl
bnRpYWxzUG9saWN5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAKaW5kZXggZmU4ZjAzYWJmOTlkYmNkZGFlZTBkYjJlNTZhMmMyYTczYzAxM2FjNS4uNjAyZDM2
YjE3N2NkZTk2MDhiNTAwZjY3ODg3YWRmZTAxYTg5OGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBpbmdMb2Fk
OjpkaWRSZWNlaXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdl
LCBDaGFsbGVuZwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVDaGFs
bGVuZ2UiKTsKICAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZywg
eyB9KTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPm5ldHdvcmtQcm9jZXNzKCkuYXV0
aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1f
cGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMzhhNWJmZjZhZmQyNTcxZDUyZGNl
NGMwOTgwNGFhNzU0NGFiZTRmMC4uNWNhYTFjY2VjYjMwM2UxNjI1ZjJkZTI4MDc1NTQyNzYyZmE3
OGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVj
dG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01h
dGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9
CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CkBAIC0xMTks
NyArMTE5LDcgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWcKICAgICBpZiAoc2hvdWxkQ29hbGVz
Y2VDaGFsbGVuZ2UocGFnZUlELCBjaGFsbGVuZ2VJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShwYWdl
SUQsIGZyYW1lSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCkpOworICAg
IG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2Uoc2Vzc2lvbklELCBwYWdlSUQsIGZyYW1lSUQsIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCkpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2Fn
ZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggMjM3NzMxMmRhMjc5
MmIxYmM2MjkyYmNlZDI5NGE5ZmFkZWVlYmU1Zi4uOGIzZjg2ZWVlMjI2MGZhMTQxNzM3OThhMGVm
Yjg3NjA0NzVjZGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVz
c2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2Nv
YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY0OTI1OGE0YzcxYmIwYzdkZTk5MGI0MmJmNzJjNGYzNmI5Y2MxZWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9j
b2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaApAQCAtMCwwICsx
LDM1IEBACisgIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFNl
c3Npb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb24gdG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbik7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYTQ2NjFjYWM5ZGU3MTg4YmU0ZTZmZDJmM2MyNmU0
NzBiMmExNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0K
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiB0
b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNVUkxTZXNzaW9uQXV0aENoYWxs
ZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQoreworICAgIHN3aXRjaCAoZGlzcG9zaXRpb24p
IHsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsOgorICAg
ICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVu
dGlhbDsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhh
bmRsaW5nOgorICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKKyAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKKyAgICAgICAgcmV0dXJuIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNlbDsKKyAgICBjYXNlIE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2U6CisgICAgICAgIHJldHVybiBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZTsKKyAgICB9CisgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURp
c3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25dOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBiZDk5NWU5NTZmOGVmNmEzZjhiMTIx
YWUwYmViOWJiNGZjZmMyZTQ3Li4wZjYzNzg5NzJmMWJmNjc5Y2M0M2MzYWJmMmFkOGVmMmJmODY5
NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xMzMsNiArMTMzLDcgQEAgU2hhcmVkL2Nm
L0Nvb2tpZVN0b3JhZ2VVdGlsc0NGLm1tCiAKIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5j
cHAKIAorU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb25Db2NvYS5tbQogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL2NvY29hL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlckNvY29hLm1tCiBTaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQ2xpZW50
Q2VydGlmaWNhdGVBdXRoZW50aWNhdGlvblhQQ0NvbnN0YW50cy5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggOWEyODMzNDI2ZTExYTRlZDFhMmQ1ODcxYThmNjQzZTY3ODlhZWJiOS4uYWM3ZTQ5YWIw
MjU0Mzc0ZWVlYzNhMzRhMjJiZWNhMjkzZTA1YjJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0yNyw5
ICsyNywxMSBAQAogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKIAogI2lt
cG9ydCAiQVBJU3RyaW5nLmgiCisjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uQ29jb2EuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIK
ICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJh
eS5oIgorI2ltcG9ydCAiV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0
ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVJlY29yZEludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAgLTM4LDYgKzQwLDcgQEAKICNpbXBv
cnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViS2l0L1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9y
dCA8d3RmL1VSTC5oPgpAQCAtNDgsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2Vi
c2l0ZURhdGFTdG9yZUNsaWVudChpZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiBkZWxl
Z2F0ZSkKICAgICAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRlKQogICAgICAgICAsIG1faGFzUmVx
dWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yKFttX2RlbGVnYXRlLmdldCgpIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IocmVxdWVzdFN0b3JhZ2VTcGFjZTogZnJhbWVPcmlnaW46IHF1b3RhOiBj
dXJyZW50U2l6ZTogc3BhY2VSZXF1aXJlZDogZGVjaXNpb25IYW5kbGVyOildKQorICAgICAgICAs
IG1faGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvcihbbV9kZWxlZ2F0ZS5nZXQoKSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KV0pCiAgICAgewogICAgIH0KIApAQCAtNzMsOCArNzcs
MjggQEAgcHJpdmF0ZToKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCkgcmVx
dWVzdFN0b3JhZ2VTcGFjZTptYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6
cXVvdGEgY3VycmVudFNpemU6Y3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVk
IGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgIH0KIAorICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKSBmaW5hbAorICAgIHsKKyAgICAgICAg
aWYgKCFtX2hhc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VsZWN0b3IgfHwgIW1fZGVsZWdhdGUp
IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXV0
byBuc1VSTENoYWxsZW5nZSA9IHdyYXBwZXIoY2hhbGxlbmdlKTsKKyAgICAgICAgYXV0byBjaGVj
a2VyID0gV2ViS2l0OjpDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9kZWxl
Z2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSwgQHNlbGVjdG9yKGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTogY29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NoYWxsZW5nZSA9IFdURk1vdmUoY2hhbGxlbmdlKSwg
Y2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNw
b3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxs
ZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBjaGVja2VyLT5kaWRD
YWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIo
KS5jb21wbGV0ZUNoYWxsZW5nZShXZWJLaXQ6OnRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbihkaXNwb3NpdGlvbiksIFdlYkNvcmU6OkNyZWRlbnRpYWwoY3JlZGVudGlhbCkpOwor
ICAgICAgICB9KTsKKworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKSBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6bnNVUkxDaGFsbGVuZ2UgY29tcGxldGlvbkhh
bmRsZXI6Y29tcGxldGlvbkhhbmRsZXIuZ2V0KCldOworICAgIH0KKwogICAgIFdlYWtPYmpDUHRy
PGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKICAgICBib29s
IG1faGFzUmVxdWVzdFN0b3JhZ2VTcGFjZVNlbGVjdG9yIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aGFzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZWxlY3RvciB7IGZhbHNlIH07CiB9OwogCiBAaW1w
bGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
LmgKaW5kZXggOWIwZTcxNzEwY2MyYjlhNGViYjRjYWZkMjBlZTM4N2JhNGJhZDc3ZC4uZGM0MTI4
ODExYTJkYmY3NjIxODE5YWU1YzAxNmEwZTExMjQ5Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
RGVsZWdhdGUuaApAQCAtMzQsNCArMzQsNiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAKIC0gKHZvaWQpcmVxdWVzdFN0b3JhZ2VTcGFjZToo
TlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVPcmlnaW46KE5TVVJMICopZnJhbWVVUkwgcXVvdGE6
KE5TVUludGVnZXIpcXVvdGEgY3VycmVudFNpemU6KE5TVUludGVnZXIpY3VycmVudFNpemUgc3Bh
Y2VSZXF1aXJlZDooTlNVSW50ZWdlcilzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKKy0gKHZv
aWQpZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlh
bCAqY3JlZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXI7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA1OWY4N2EyYzc0
MjkyMTQ2ZTZkNDFlYzc3NjQ0MDdiMzIyODQxYjAwLi4zNjU2MDNlMmQyNWQ4MTdhM2NhZjAyMTI3
NWE1ZjFjOGQzMDNiMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJBUElVUkwuaCIK
ICNpbXBvcnQgIkFQSVdlYnNpdGVEYXRhU3RvcmUuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlRGlzcG9zaXRpb24uaCIKKyNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RGlzcG9zaXRpb25Db2NvYS5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3Rl
bmVyLmgiCiAjaW1wb3J0ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0
ICJMb2dnaW5nLmgiCkBAIC05NTksMjEgKzk2MCw2IEBAIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpO
YXZpZ2F0aW9uQ2xpZW50OjpzaG91bGRCeXBhc3NDb250ZW50TW9kZVNhZmVndWFyZHMoKSBjb25z
CiAgICAgICAgIHx8IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1Vz
ZXJJbmZvRGVjaXNpb25IYW5kbGVyOwogfQogCi1zdGF0aWMgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbiB0b0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKQotewotICAgIHN3aXRj
aCAoZGlzcG9zaXRpb24pIHsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VD
cmVkZW50aWFsOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6VXNlQ3JlZGVudGlhbDsKLSAgICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQ
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nOgotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZzsKLSAgICBjYXNlIE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKLSAgICAg
ICAgcmV0dXJuIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OkNhbmNlbDsKLSAg
ICBjYXNlIE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2U6Ci0g
ICAgICAgIHJldHVybiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQ
cm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZTsKLSAgICB9Ci0gICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkludmFsaWQgTlNVUkxTZXNzaW9u
QXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uICglbGQpIiwgKGxvbmcpZGlzcG9zaXRpb25dOwotfQot
ICAgIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBpZiAoIW1fbmF2aWdh
dGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpCkBAIC05ODgsNyArOTc0LDcg
QEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWcKICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRp
b25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgY2hhbGxlbmdlLT5s
aXN0ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKHRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNw
b3NpdGlvbihkaXNwb3NpdGlvbiksIENyZWRlbnRpYWwoY3JlZGVudGlhbCkpOworICAgICAgICBj
aGFsbGVuZ2UtPmxpc3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoV2ViS2l0Ojp0b0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24oZGlzcG9zaXRpb24pLCBDcmVkZW50aWFsKGNyZWRl
bnRpYWwpKTsKICAgICB9KS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDA1ZDIzZmVl
Y2VlMTlkNzZlNWUwODI0ZmJkYjJiNzk0MjQyNjcxNmIuLjJjMGNhZDFiODY0OWJiMDQ0ODA3MjM3
YzdmZmU1YTY5MTMxZWFkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNp
ZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisjaW5jbHVkZSAiU2VjS2V5UHJveHlTdG9yZS5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0LmgiCkBAIC0zMTIsMjAgKzMxNSwzNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2Vu
ZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiB7
Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJv
bVBhZ2VJRChwYWdlSUQpKSB7Ci0gICAgICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
PSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxl
bmdlKSwgY2hhbGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIG51bGxwdHIpOwotICAg
ICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KSk7Ci0gICAgICAgIHJldHVybjsKKyNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCisgICAgV2Vha1B0
cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0b3JlOworICAgIGlmIChjb3JlQ2hhbGxl
bmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgewor
ICAgICAgICBpZiAoYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChz
ZXNzaW9uSUQpKSB7CisgICAgICAgICAgICBhdXRvIG5ld1NlY0tleVByb3h5U3RvcmUgPSBTZWNL
ZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHNlY0tleVByb3h5U3RvcmUgPSBt
YWtlV2Vha1B0cihuZXdTZWNLZXlQcm94eVN0b3JlLmdldCgpKTsKKyAgICAgICAgICAgIHN0b3Jl
LT5hZGRTZWNLZXlQcm94eVN0b3JlKFdURk1vdmUobmV3U2VjS2V5UHJveHlTdG9yZSkpOworICAg
ICAgICB9CiAgICAgfQorICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hh
bGxlbmdlSUQsIG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIFdURk1vdmUoc2VjS2V5UHJveHlTdG9y
ZSkpOworI2Vsc2UKKyAgICBhdXRvIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29yZUNoYWxsZW5nZSksIGNoYWxs
ZW5nZUlELCBtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBudWxscHRyKTsKICNlbmRpZgogCi0gICAg
V2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7Ci0g
ICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBudWxscHRy
OworICAgIGlmIChwYWdlSUQgJiYgIW1fcHJvY2Vzc1Bvb2wuaXNTZXJ2aWNlV29ya2VyUGFnZUlE
KHBhZ2VJRCkpCisgICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlE
KTsKKworICAgIGlmICghcGFnZSkgeworICAgICAgICBhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRh
U3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgICAgIGlmICghc3RvcmUgfHwgY29y
ZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVx
dWVzdGVkKSB7CisgICAgICAgICAgICBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+bGlzdGVuZXIo
KS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQ
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBzdG9yZS0+Y2xpZW50KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAotICAgIGF1dG8gYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5OjpjcmVhdGUoV1RGTW92ZShjb3JlQ2hhbGxlbmdlKSwgY2hhbGxlbmdlSUQs
IG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIHBhZ2UtPnNlY0tleVByb3h5U3RvcmUoY29yZUNoYWxs
ZW5nZSkpOwogICAgIHBhZ2UtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
KGZyYW1lSUQsIFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aAppbmRleCA5MTk0YWU2NjI4MWE1ODVlMWM4MmViMGNkYTRiODE0ZjkwM2QxMWNmLi40MmQ1ZDgz
NzVhYWQyZmExNTJmMWI3NzlmMjhlYTk1ODFhNmJkYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjEzLDcg
KzIxMyw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlk
UmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hh
bGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBB
TDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1
aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBiZmFmOWYwNDk2ZTU2YTliOTMxZWY2ZmY3NzUxYzNhY2Y1ZDEzOWJjLi41Mzk3YWNiMDQ1
ZTMzNTUwY2E2OGNhMjAwNWRmZmZjYjA4N2ExZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyhJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90
IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxl
dGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNzhhN2Mz
ODZjODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhLi45OTAyMWNmOWYxNDBkYTQwZDdiNjgx
MGNiMzgwMDlkZDI3MjE5OWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsMjIgKzkwLDYgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12
b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBS
ZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKHBhZ2VJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwotCi0gICAgLy8g
RklYTUU6IEV4cG9zZSBhbiBBUEkgdG8gZGVsZWdhdGUgdGhlIGFjdHVhbCBkZWNpc2lvbiB0byB0
aGUgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgYXV0byYgcHJvdGVjdGlvblNwYWNlID0gY2hhbGxl
bmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCk7Ci0gICAgaWYgKHByb3RlY3Rpb25TcGFjZS5h
dXRoZW50aWNhdGlvblNjaGVtZSgpID09IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkICYmIHByb2Nlc3NQb29s
KCkuYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkpIHsKLSAgICAgICAg
YXV0byBjcmVkZW50aWFsID0gV2ViQ29yZTo6Q3JlZGVudGlhbCgiYWNjZXB0IHNlcnZlciB0cnVz
dCJfcywgZW1wdHlTdHJpbmcoKSwgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7
Ci0gICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCBjcmVkZW50aWFsKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIGNoYWxs
ZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
N2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJiNTUyODA3ZGUyMTg0MS4uZjY5M2FiODg0M2JkOWRj
ODdiZDQxZGNmZTZiNzZmZDIyNmJmMTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsOCArNDEsNiBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3Qg
U3RyaW5nJiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKLQog
ICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6
U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggYTkxYzQwZWIyMDFkYTJlY2QwNTQ2NDg3N2UwYmNlOGQ2MTMxYmJkOC4uZWZhZTZkZjBk
OTRiMzBjNGE2NjhhZWIyZmE4NDU4NDg2MDlmZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MzMzLDE5ICs3MzMzLDYgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0
YXMsIGJvb2wKIAogI2VuZGlmCiAKLVdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVBy
b3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCi17Ci0jaWYgSEFWRShTRUNfS0VZX1BST1hZKQotICAgIGlmIChjaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7
Ci0gICAgICAgIGF1dG8gc2VjS2V5UHJveHlTdG9yZSA9IFNlY0tleVByb3h5U3RvcmU6OmNyZWF0
ZSgpOwotICAgICAgICBhdXRvIHdlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoc2VjS2V5UHJveHlT
dG9yZS5nZXQoKSk7Ci0gICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YWRkU2VjS2V5UHJveHlT
dG9yZShXVEZNb3ZlKHNlY0tleVByb3h5U3RvcmUpKTsKLSAgICAgICAgcmV0dXJuIHdlYWtQb2lu
dGVyOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBudWxscHRyOwotfQotICAgIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1l
SWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0NzI0
YWFlZjBkZWEzOWUyMDZhZjIxZGJkNWM2ZWNiMDUwMDk4MmQ5Li40NTlhOWQzYTRhODkzZDQyOTRi
MWFjM2JiYTg1MGFiNjBlM2MzN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCkBAIC0yMjMxLDE3ICsyMjMxLDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3RhdGUoTmV0d29ya1Byb2Nlc3NQcm94
eSYKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eSogV2ViUHJvY2Vzc1Bvb2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHlG
cm9tUGFnZUlEKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Bv
b2w6OmlzU2VydmljZVdvcmtlclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0CiB7
CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZm
aWNpZW50LgogICAgIGZvciAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3MgOiBtX3NlcnZpY2VX
b3JrZXJQcm9jZXNzZXMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNlcnZpY2VXb3JrZXJQcm9j
ZXNzLT5wYWdlSUQoKSA9PSBwYWdlSUQpCi0gICAgICAgICAgICByZXR1cm4gc2VydmljZVdvcmtl
clByb2Nlc3M7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIG51
bGxwdHI7Ci19CiAjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmFkZFByb2Nlc3NUb09yaWdpbkNhY2hlU2V0KFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cywgY29uc3QgVVJMJiB1cmwpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCA0MGJlYTg2MWEyZTY3MDI4NDYyMjA4N2MwMDNiM2U4OGE2YWNjMDNjLi5hZjE2
Y2VmOGQyOGU2MzlkNzFiNjNjMzYzYzBmNzgyZGMyOTg4ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM3OSw5ICszNzksOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseSYmKTsKIAorICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUGFnZUlEKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9p
ZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIE9wdGlvbmFsPFBB
TDo6U2Vzc2lvbklEPik7Ci0gICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSogc2VydmljZVdv
cmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpIGNvbnN0
OwogICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkqPiYgc2VydmljZVdvcmtlclByb3hpZXMoKSBjb25zdCB7IHJldHVy
biBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXM7IH0KICAgICB2b2lkIHNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihib29sIGFsbG93cykgeyBtX2FsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yU2VydmljZVdvcmtlciA9IGFsbG93czsgfQogICAgIGJvb2wgYWxsb3dzQW55
U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDbGllbnQu
aAppbmRleCBkMGJiYTU2NGMyNzU4MmQ3ODI2ZTlmMmMyMDYyMjM3MDIyNzI5NTNhLi4xYjU3ZDZi
NzExNjMxMDcyZTY1MTE0ZDhkMWE0NTQxZTE2ZDQxMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNsaWVu
dC5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVu
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDIsNiArNDUsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYm
IGNoYWxsZW5nZSkKKyAgICB7CisgICAgICAgIGNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21wbGV0
ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3JtRGVm
YXVsdEhhbmRsaW5nKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYwYzdi
ZTVlZGYyZWE4M2UzOTRiMzhhMmUwNzIxYzJmOTgwNjYxZGYuLjdlNmY5NzQzYjczMmI5NzM5OTg3
NTk2ZjdlZDJmYjc2ODY0ZmY4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE1Nyw2ICszMTU3LDggQEAKIAkJNDE4OTdFRDUxRjQx
NUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFRDYxRjQxNUQ4NjAwMTZGQTQyIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMg
LyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQUM4NjgxMUUwNDJFNTMwMDMwMzA3NCAvKiBXZWJSVENSZXNvbHZlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IGxpbmVFbmRpbmcgPSAwOyBuYW1lID0gV2ViUlRDUmVzb2x2
ZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0gIjxub25lPiI7IH07CiAJCTQxQjI4QjA4MUY4M0FEM0UwMEZCNTJBQyAvKiBS
VENQYWNrZXRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1Bh
Y2tldE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCMjhCMDkxRjgz
QUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUlRDUGFja2V0T3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MDQzLDYgKzcwNDUsOCBAQAogCQk1N0I0QjQ1QzIwQjUwNDhCMDBENEFE
NzkgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTQxQTVGN0I5MjI2RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURp
c3Bvc2l0aW9uQ29jb2EuaCAqLywKKwkJCQk0MUE1RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29hLm1tICovLAogCQkJCTU3QjRCNDVE
MjBCNTA0QUIwMEQ0QUQ3OSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLywKIAkJ
CQk0NEE0ODFDNjIxRjJEMjdCMDBGMkY5MTkgLyogQ2xpZW50Q2VydGlmaWNhdGVBdXRoZW50aWNh
dGlvblhQQ0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTdCNEI0NUUyMEI1MDRBQjAwRDRBRDc5IC8q
IENsaWVudENlcnRpZmljYXRlQXV0aGVudGljYXRpb25YUENDb25zdGFudHMuaCAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzhkMTdiYzc3
NGE4YjkzOGQ4NDRiNTg3NzdkNzJhMjgzYTkzY2Y2Li5mMjQzNTEwNjMwOTkwNmVhMTNmYTNmYzJh
ZmE3N2Q4MTY5NTRkNTMyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDgtMjYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFdlYnNpdGVEYXRhU3RvcmUgZGVsZWdh
dGUgdG8gaGFuZGxlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHRoYXQgZG8gbm90IGNvbWUgZnJv
bSBwYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAg
ICBJbXBsZW1lbnQgdGhlIG5ldyBkZWxlZ2F0ZSBieSByZXNwZWN0aW5nIHRoZSB2YWx1ZSBzZXQg
YnkgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZQorICAgICAgICBBY2NlcHQg
YW55IHNlcnZlciBjZXJ0aWZpY2F0ZSBieSBkZWZhdWx0LgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtU
ZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIHNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6XSk6
CisKIDIwMTktMDgtMjMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEluY3JlYXNlIGxvZyBsZXZlbCBmb3Igd2F0Y2hsaXN0IHJlc3VsdApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1ZmZiNzQzNzM1YTRhZDUyOTVj
ZWQ4NDFiMDJkYjY0ZjAzMmUzYzRmLi43MjYyZjk1MGViMGU2NDlhMzI4NzVlNGFjNjY3MzE0ZDBm
NjZkNzZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MTAzMiw3ICsxMDMyLDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIG1fb3BlblBhbmVsRmlsZVVSTHNNZWRpYUljb24gPSBudWxscHRyOwog
I2VuZGlmCi0gICAgCisKKyAgICBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKKwog
ICAgIHN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiAgICAgCiAgICAgY2xlYXJB
ZENsaWNrQXR0cmlidXRpb24oKTsKQEAgLTExODEsMTAgKzExODMsMTMgQEAgY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzTmFtZSgpCiAjZW5kaWYKIH0KIAorI2lmICFQ
TEFURk9STShDT0NPQSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlKGJvb2wgYWxsb3dzKQogeworICAgIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUgPSBh
bGxvd3M7CiAgICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3MpOwogfQorI2VuZGlmCiAKIHN0YXRp
YyBzdGQ6OnN0cmluZyB0ZXN0UGF0aChXS1VSTFJlZiB1cmwpCiB7CkBAIC0yMzI4LDggKzIzMzMs
MTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdLUGFnZVJlZiBwYWdlLCBXS0F1dGhlbnQKIAogICAgICAgICBtX3NlcnZlclRydXN0RXZh
bHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudCsrOwogCi0gICAgICAgIFdLUmV0YWluUHRyPFdLQ3Jl
ZGVudGlhbFJlZj4gY3JlZGVudGlhbCA9IGFkb3B0V0soV0tDcmVkZW50aWFsQ3JlYXRlKHRvV0so
ImFjY2VwdCBzZXJ2ZXIgdHJ1c3QiKS5nZXQoKSwgdG9XSygiIikuZ2V0KCksIGtXS0NyZWRlbnRp
YWxQZXJzaXN0ZW5jZU5vbmUpKTsKLSAgICAgICAgV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXJVc2VDcmVkZW50aWFsKGRlY2lzaW9uTGlzdGVuZXIsIGNyZWRlbnRpYWwuZ2V0KCkpOwor
ICAgICAgICBpZiAobV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSkgeworICAgICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tDcmVkZW50aWFsUmVmPiBjcmVkZW50aWFsID0gYWRvcHRXSyhXS0NyZWRlbnRp
YWxDcmVhdGUodG9XSygiYWNjZXB0IHNlcnZlciB0cnVzdCIpLmdldCgpLCB0b1dLKCIiKS5nZXQo
KSwga1dLQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSkpOworICAgICAgICAgICAgV0tBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJVc2VDcmVkZW50aWFsKGRlY2lzaW9uTGlzdGVuZXIsIGNy
ZWRlbnRpYWwuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVqZWN0UHJvdGVjdGlvblNwYWNlQW5k
Q29udGludWUoZGVjaXNpb25MaXN0ZW5lcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAzNDAwZjRjYjUxYjg4OTUy
MWQ0MDk2MjliYTExYmMyNDYzMDFmNWI3Li5lNTY5YzcyMWVhODQzM2I5YTI5NjI4MzRiOWUyNGRm
OTRhMmMyY2VhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC01
OTEsNiArNTkxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1fc2VydmVyVHJ1c3RFdmFs
dWF0aW9uQ2FsbGJhY2tDYWxsc0NvdW50IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGREaXNtaXNz
SmF2YVNjcmlwdEFsZXJ0c0FzeW5jaHJvbm91c2x5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUgeyB0cnVlIH07CiB9OwogCiBzdHJ1Y3QgVGVzdENvbW1hbmQg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCmluZGV4IDBlYmY3YmZkMDAzOWY0ZWY4MDkzMmMxZWI1MTkyZmY1NGVlM2M0YTMuLjA0
NTk2ODViN2NmNjc2MDkxZDQ4MWNhM2JjZmNiNWI5NDBjNjEyYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTM1LDYg
KzM1LDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8U2Vj
dXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tDb29raWVNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgpAQCAtMzk3
LDYgKzM5OCwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd1N0b3JhZ2VRdW90YUlu
Y3JlYXNlKGJvb2wgdmFsdWUpCiAgICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNs
aWVudCBzZXRBbGxvd1JhaXNpbmdRdW90YTogdmFsdWVdOwogfQogCit2b2lkIFRlc3RDb250cm9s
bGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93cykKK3sKKyAgICBtX2Fs
bG93c0FueVNTTENlcnRpZmljYXRlID0gYWxsb3dzOworICAgIFdLQ29udGV4dFNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxs
b3dzKTsKKyAgICBbZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93
QW55U1NMQ2VydGlmaWNhdGU6IGFsbG93c107Cit9CisKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmNh
bkRvU2VydmVyVHJ1c3RFdmFsdWF0aW9uSW5OZXR3b3JrUHJvY2VzcygpIGNvbnN0CiB7CiAjaWYg
SEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxl
Z2F0ZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgKaW5kZXggOTFiOTRmZmVmYzczOWUwZDY0MmQwNjNlNWRkNzZkOTQ2ZDVkNTA5
NC4uZDYzOGU4MmRlYWIyYmYzNmVhNzdjZTk4NWM0N2VjZDFhOWQ2MzUyMCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlLmgKQEAgLTMwLDcgKzMwLDkgQEAKIEBpbnRlcmZhY2UgVGVzdFdlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZTogTlNPYmplY3QgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4gewog
QHByaXZhdGUKICAgICBCT09MIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YTsKKyAgICBCT09MIF9z
aG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlOwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXQ7CiAt
ICh2b2lkKXNldEFsbG93UmFpc2luZ1F1b3RhOihCT09MKXNob3VsZEFsbG93UmFpc2luZ1F1b3Rh
OworLSAodm9pZClzZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOihCT09MKXNob3VsZEFsbG93QW55
U1NMQ2VydGlmaWNhdGU7CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0KaW5kZXggOGVmNDY3
YWU1YmIzMDJkYmU2NzU4ZjRjOWY3OWNkOWZmZjNjMjcwYy4uZTFmNjhlNDhhZjczODA5NzNlMjk5
OWQ5MDg1NTQ1ZGM1YmYyMWNkYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbQpAQCAtNDIsNCAr
NDIsMjMgQEAgLSAodm9pZClzZXRBbGxvd1JhaXNpbmdRdW90YTooQk9PTClzaG91bGRBbGxvd1Jh
aXNpbmdRdW90YQogewogICAgIF9zaG91bGRBbGxvd1JhaXNpbmdRdW90YSA9IHNob3VsZEFsbG93
UmFpc2luZ1F1b3RhOwogfQorCistICh2b2lkKWRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKiBfTnVsbGFibGUgY3JlZGVudGlhbCkpY29tcGxl
dGlvbkhhbmRsZXIKK3sKKyAgICBOU1N0cmluZyAqbWV0aG9kID0gY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZDsKKyAgICBpZiAoW21ldGhvZCBpc0VxdWFsVG9T
dHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XSkgeworICAgICAgICBp
ZiAoX3Nob3VsZEFsbG93QW55U1NMQ2VydGlmaWNhdGUpCisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3Jl
ZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2Vy
dmVyVHJ1c3RdKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZUNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBu
aWwpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJM
U2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nLCBuaWwpOworfQorCist
ICh2b2lkKXNldEFsbG93QW55U1NMQ2VydGlmaWNhdGU6KEJPT0wpc2hvdWxkQWxsb3dBbnlTU0xD
ZXJ0aWZpY2F0ZQoreworICAgIF9zaG91bGRBbGxvd0FueVNTTENlcnRpZmljYXRlID0gc2hvdWxk
QWxsb3dBbnlTU0xDZXJ0aWZpY2F0ZTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlmMjJiNWM3ZDcyMWQw
MzdlN2M0Y2NlZjYzODM5ZDAzZDQwYjYwOWQuLmE4MDhlNDk5MGU2YzcxMDUzMTI4YTNiZmNkYTZk
ZmE1YTBjMzFlMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wOC0yNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgV2Vic2l0ZURhdGFTdG9y
ZSBkZWxlZ2F0ZSB0byBoYW5kbGUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgdGhhdCBkbyBub3Qg
Y29tZSBmcm9tIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgor
CisgICAgICAgIEFkZCB0ZXN0cyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBkZWxlZ2F0ZSBkZWNpc2lv
biBpcyByZXNwZWN0ZWQgZm9yIGJlYWNvbnMgYW5kIHNlcnZpY2Ugd29ya2VyIGxvYWRzLgorCisg
ICAgICAgICogaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3
LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL2Nv
cnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLXByZWZsaWdodC5weToKKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
bGVuZ3RoeS1wYXNzLnB5OgorICAgICAgICAobWFpbik6CisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1l
dmFsdWF0aW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9zZXJ2ZXItdHJ1c3Qtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NzbC9jZXJ0aWZpY2F0ZS12YWxpZGF0aW9uLmh0bWw6IFJlbW92ZSB1bm5lZWRlZCBzZXR0
aW5nIGNhbGwKKyAgICAgICAgc2luY2Ugd2UgZGVueSBzZXJ2ZXIgdHJ1c3QgcmVxdWVzdHMgaWYg
U1NMIGNlcnRpZmljYXRlcyBhcmUgbm90IGFsbCBhbGxvd2VkLgorCiAyMDE5LTA4LTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2UgY3Jhc2hl
cyB1bmRlciBDR1BhdGhBZGRVbmV2ZW5Db3JuZXJzUm91bmRlZFJlY3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGYwNzQ5MTkzMGM1N2ZlOWY1NjFjYTNhOTk4ZjMwZjEzMGRjMTIw
ZDYuLjBiOTM0YWNkZTU0NzcxNjI0NjZlMzY5MTNmNjE0NjBhNjM5NTk5ZDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTA4LTI2ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBXZWJzaXRlRGF0YVN0
b3JlIGRlbGVnYXRlIHRvIGhhbmRsZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSB0aGF0IGRvIG5v
dCBjb21lIGZyb20gcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Njg3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQ1OTM1NTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0LWluLXNl
cnZpY2Utd29ya2VyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wOC0yMiAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgU3RhdGljUmFuZ2Ug
Y29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2NlcnRp
ZmljYXRlLXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2NlcnRp
ZmljYXRlLXZhbGlkYXRpb24uaHRtbAppbmRleCAzMGU2M2QyNzY1ZWYyN2JhMTFlNjg4YjBiNTU0
MjYwMTA3NDY2MmZmLi43NGZlMDIzNzU4MDFhNTc2YjVjMTNmZWIyMTlmMmQwMzNiZGVjMjBlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9jZXJ0aWZpY2F0ZS12YWxpZGF0
aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvY2VydGlmaWNhdGUtdmFs
aWRhdGlvbi5odG1sCkBAIC0yNCw3ICsyNCw2IEBAIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCiAg
ICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lci5jYW5Eb1NlcnZlclRydXN0RXZhbHVhdGlvbkluTmV0
d29ya1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdpbmRvdy50ZXN0UnVubmVyLnNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKICAgICAvLyBUaGlzIHNob3VsZCB0cmln
Z2VyIG5ldHdvcmsgcHJvY2VzcyBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbi4KICAgICB3aW5kb3cu
dGVzdFJ1bm5lci5zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihmYWxzZSk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3Jp
Z2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXBy
ZWZsaWdodC1leHBlY3RlZC50eHQKaW5kZXggMTg5NWZjNjUyOTVmMzczYzM0MTVkMGVjMTUwYjc1
YzAwYTM0YmIxNS4uZTM5NzBlZjQ2NWZkZWMwMDlmMjI2MTdjZDQ3MzdhMGFhZmU5ZmI4YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJy
YXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZs
aWdodC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiAKK1BBU1MgQmVhY29uIGxvYWQgc2hv
dWxkIG5vdCBiZSBzZW50IGlmIHNlcnZlciBpcyBub3QgdHJ1c3RlZC4gCiBQQVNTIFNob3VsZCBz
ZW5kIGJlYWNvbiB3aXRoIG5vIENPUlMgcHJlZmxpZ2h0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8t
cHJlZmxpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29y
aWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKaW5kZXggZmE0ODYwYjYzNDE1
NGU0ODE0MmUyYzYwOTIzODYzNGRjMTBmMDE4ZS4uOGI1YTgyMDBkOWY2YjQ0OTM1Mzg2YjY1ZWQ3
NmJhNDc4MjEwOTI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2Nv
cnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmll
dy1uby1wcmVmbGlnaHQuaHRtbApAQCAtMjYsMTIgKzI2LDMzIEBAIGZ1bmN0aW9uIHBvbGxSZXN1
bHQodGVzdCwgaWQpIHsKICAgfSk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RDT1JTUHJlZmxpZ2h0U3Vj
Y2Vzcyh3aGF0KSB7Ci0gIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9U
RV9PUklHSU4gKyBSRVNPVVJDRVNfRElSOwotICB2YXIgaWQgPSBzZWxmLnRva2VuKCk7Ci0gIHZh
ciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9hbGxvd0NvcnM9MSZj
bWQ9cHV0JmlkPSIgKyBpZDsKK2Z1bmN0aW9uIHRlc3RDT1JTUHJlZmxpZ2h0KHdoYXQpIHsKKyAg
dmFyIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX1JFTU9URV9PUklHSU4gKyBSRVNP
VVJDRVNfRElSOworCisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0ZXN0KSB7CisgICAg
dmFyIGlkID0gImNhMzNjMDczLTFjZjAtNDFlNS1iYmQ0LTU1OTY5ZmIxYTZjNyI7CisgICAgdmFy
IHRlc3RVcmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93Q29ycz0xJmNt
ZD1wdXQmaWQ9IiArIGlkOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOworICAgICAg
d2luZG93LnRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgIGF3YWl0
IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAgICBhc3Nl
cnRfdHJ1ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgInNlbmRCZWFjb24g
c3VjY2VlZGVkIik7CisgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcG9sbFJlc3VsdCh0ZXN0LCBp
ZCk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ3ByZWZsaWdodCddLCAwLCAiRGlkIG5vdCBy
ZWNlaXZlIENPUlMgcHJlZmxpZ2h0IikKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsnYmVhY29u
J10sIDAsICJEaWQgbm90IHJlY2VpdmUgYmVhY29uIikKKyAgfSwgIkJlYWNvbiBsb2FkIHNob3Vs
ZCBub3QgYmUgc2VudCBpZiBzZXJ2ZXIgaXMgbm90IHRydXN0ZWQuIik7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgaWQgPSBzZWxmLnRva2VuKCk7Cisg
ICAgdmFyIHRlc3RVcmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93Q29y
cz0xJmNtZD1wdXQmaWQ9IiArIGlkOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgd2luZG93LnRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7Cisg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOworICAgICAg
YXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KIAotICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewogICAgIGFzc2VydF90cnVlKG5hdmlnYXRvci5z
ZW5kQmVhY29uKHRlc3RVcmwsIHdoYXQpLCAiU2VuZEJlYWNvbiBTdWNjZWVkZWQiKTsKICAgICBy
ZXR1cm4gcG9sbFJlc3VsdCh0ZXN0LCBpZCkgLnRoZW4ocmVzdWx0ID0+IHsKICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVzdWx0WydwcmVmbGlnaHQnXSwgMCwgIkRpZCBub3QgcmVjZWl2ZSBDT1JTIHBy
ZWZsaWdodCIpCkBAIC01MSw3ICs3Miw3IEBAIGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXJW
aWV3KGlucHV0KSB7CiAgIHJldHVybiB2aWV3OwogfQogCi10ZXN0Q09SU1ByZWZsaWdodFN1Y2Nl
c3Moc3RyaW5nVG9BcnJheUJ1ZmZlclZpZXcoIjEyMyIpKTsKK3Rlc3RDT1JTUHJlZmxpZ2h0KHN0
cmluZ1RvQXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9yZXNvdXJj
ZXMvYmVhY29uLXByZWZsaWdodC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9yZXNv
dXJjZXMvYmVhY29uLXByZWZsaWdodC5weQppbmRleCAxZDQ5Y2YzOTM3YWNjZmEwMThiNTdmZTg1
YzJiNTE5N2FjNmI0NjAxLi4yNWU4M2ZlYmE1MzNjYTQ5NjI0YjUzYjgwMzc3MDBjOGZhNDdjNDA5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vcmVzb3VyY2VzL2JlYWNv
bi1wcmVmbGlnaHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3Jlc291cmNl
cy9iZWFjb24tcHJlZmxpZ2h0LnB5CkBAIC00NCwxMSArNDQsOSBAQCBkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CiAgICAgICBzdGFzaGVkX2RhdGFbJ2JlYWNvbl9vcmlnaW4nXSA9IHJlcXVl
c3QuaGVhZGVycy5nZXQoIk9yaWdpbiIsICIiKQogICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gu
cHV0KHRlc3RfaWQsIHN0YXNoZWRfZGF0YSkKICAgICByZXR1cm4gWygiQ29udGVudC1UeXBlIiwg
InRleHQvcGxhaW4iKV0sICIiCi0gIAorCiAgIGlmIGNvbW1hbmQgPT0gImdldCI6Ci0gICAgaWYg
c3Rhc2hlZF9kYXRhIGlzIG5vdCBOb25lOgotICAgICAgcmV0dXJuIFsoIkNvbnRlbnQtVHlwZSIs
ICJ0ZXh0L3BsYWluIildLCBqc29uLmR1bXBzKHN0YXNoZWRfZGF0YSkKLSAgICByZXR1cm4gWygi
Q29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKV0sICIiCisgICAgcmV0dXJuIFsoIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L3BsYWluIildLCBqc29uLmR1bXBzKHN0YXNoZWRfZGF0YSkKIAogICByZXNw
b25zZS5zZXRfZXJyb3IoNDAwLCAiQmFkIENvbW1hbmQiKQogICByZXR1cm4gWygiQ29udGVudC1U
eXBlIiwgInRleHQvcGxhaW4iKV0sICJFUlJPUjogQmFkIENvbW1hbmQhIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9sZW5ndGh5LXBh
c3MucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xl
bmd0aHktcGFzcy5weQppbmRleCA5NjJhNGRjNzJiNGViMDJjYmVmNWJmOGY5ZjZhYTIxMjQxN2Zk
ZjhlLi4wNGVmNTdhZTZiOGE5MWFkOTNjNGJiNjI1YWM1Nzc2NDRlNGFiZDRhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2xlbmd0aHkt
cGFzcy5weQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL2xlbmd0aHktcGFzcy5weQpAQCAtMyw2ICszLDcgQEAgaW1wb3J0IHRpbWUKIGRlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBkZWxheSA9IDAuMDUKICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldCgiQ29udGVudC10eXBlIiwgInRleHQvamF2YXNjcmlwdCIpCisgICAgcmVzcG9uc2Uu
aGVhZGVycy5hcHBlbmQoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikKICAgICBy
ZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCiAgICAgdGltZS5zbGVlcChkZWxheSk7CiAg
ICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoImRvY3VtZW50IikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2ZXItdHJ1c3QtZXZhbHVh
dGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBiNDhkZjRiODNkNWE5YjM4MzcyMzZkMzNiN2Y4ZmVmMTM2NjhiNGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0
LWV2YWx1YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIFNl
dHVwIHdvcmtlciAKK1BBU1MgU2VydmljZSB3b3JrZXIgbG9hZCBzaG91bGQgZmFpbCAKK1BBU1Mg
U2VydmljZSB3b3JrZXIgbG9hZCBzaG91bGQgc3VjY2VlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRy
dXN0LWV2YWx1YXRpb24uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmEyZjMzYmY3Mzk1NzJiZTZi
NzBkYTQxZGJlYjgyOGNlMjVjNjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSw1MyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlciB0
cmlnZ2VyaW5nIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciByZWdpc3RyYXRpb247Cit2
YXIgaWZyYW1lOworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdv
cmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkg
PT4geyB9KTsKKyAgICB9CisKKyAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oInJlc291cmNlcy8iKTsKKyAgICBpZiAocmVnaXN0
cmF0aW9uKQorICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgIHJl
Z2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzZXJ2
ZXItdHJ1c3Qtd29ya2VyLmpzIiwgeyBzY29wZSA6ICJyZXNvdXJjZXMvIiB9KTsKKyAgICBhY3Rp
dmVXb3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisg
ICAgICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZzsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29y
a2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAg
aWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShm
YWxzZSk7CisKKyAgICBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSgicmVzb3VyY2VzL2lmcmFt
ZTEuaHRtbCIpOworICAgIGFzc2VydF90cnVlKGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50
LmJvZHkuaW5uZXJIVE1MLnRyaW0oKS5pbmRleE9mKCJMb2FkIGZhaWxlZDogIikgIT09IC0xKTsK
KyAgICBpZnJhbWUucmVtb3ZlKCk7Cit9LCAiU2VydmljZSB3b3JrZXIgbG9hZCBzaG91bGQgZmFp
bCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlKHRydWUpOworCisgICAgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoInJlc291cmNl
cy9pZnJhbWUyLmh0bWwiKTsKKyAgICBhc3NlcnRfdHJ1ZShpZnJhbWUuY29udGVudFdpbmRvdy5k
b2N1bWVudC5ib2R5LmlubmVySFRNTC50cmltKCkuaW5kZXhPZigiUEFTUyIpICE9PSAtMSk7Cisg
ICAgaWZyYW1lLnJlbW92ZSgpOworfSwgIlNlcnZpY2Ugd29ya2VyIGxvYWQgc2hvdWxkIHN1Y2Nl
ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZlci10cnVzdC13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LXdvcmtlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zMzBjODg5YzUzY2I1ZmFjZDZhNjVlMGRhMzZhYWQ3ZDQwNDFjMDJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZl
ci10cnVzdC13b3JrZXIuanMKQEAgLTAsMCArMSw1IEBACit2YXIgcmVtb3RlVXJsID0gJ2h0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbGVuZ3Ro
eS1wYXNzLnB5Pyc7Cit2YXIgY291bnRlciA9IDA7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2Zl
dGNoJywgKGV2ZW50KSA9PiB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2gocmVtb3RlVXJs
ICsgY291bnRlcisrKS50aGVuKHJlc3BvbnNlID0+IG5ldyBSZXNwb25zZSgiUEFTUyIpKS5jYXRj
aChlID0+IG5ldyBSZXNwb25zZSgiTG9hZCBmYWlsZWQ6ICIgKyBlKSkpOworfSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQtaW4tc2VydmljZS13b3JrZXIuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2Vic29ja2V0LWluLXNlcnZpY2Utd29y
a2VyLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyODdmMjM1ZGU3YzUxZTVlYjg0YjU0YmM2OGQ4
MzA0ODBhOGJlYTg3Li45Zjc5ZTJhMzM3MjJjYmE2MGVkMmJiNmRmZGMxOTY5Yjk4Y2E3YjdjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQtaW4tc2VydmljZS13b3JrZXIu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1z
ZXJ2aWNlLXdvcmtlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
VmVyaWZ5IFdlYlNvY2tldHMgY2FuIGJlIGNyZWF0ZWQgaW4gYSBTZXJ2aWNlIFdvcmtlciBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUEFTUyIgYnV0IGdvdCAiRkFJTDogR290IGFuIGVycm9yIGV2
ZW50IgorUEFTUyBWZXJpZnkgV2ViU29ja2V0cyBjYW4gYmUgY3JlYXRlZCBpbiBhIFNlcnZpY2Ug
V29ya2VyIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>